shotaromatsuya / minecraft-server-automation Goto Github PK
View Code? Open in Web Editor NEWBuilding minecraft server on ecs fargate via terraform
Building minecraft server on ecs fargate via terraform
参加ユーザーがゲームオーバーになったログ、実績解除したログなどをslackに通知したい
no-applyラベルをつくる
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These problems occurred while renovating this repository. View logs.
These updates are currently rate-limited. Click on a checkbox below to force their creation now.
@secretlint/secretlint-rule-preset-recommend
, secretlint
)These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
docker-compose.yml
docker/fluentbit/Dockerfile
amazon/aws-for-fluent-bit sha256:f89e4ab5ef51eead950717b99932414ffb1ca01aeb18084ec4314f9c32382b64
docker/fluentbit/Dockerfile.local
amazon/aws-for-fluent-bit sha256:f89e4ab5ef51eead950717b99932414ffb1ca01aeb18084ec4314f9c32382b64
docker/minecraft/Dockerfile
itzg/minecraft-server sha256:9d3d3d2bf46c7dcbb31001078407b4555f7759869f3d35eda4cfe36d660899ce
docker/minecraft/Dockerfile.local
itzg/minecraft-server sha256:9d3d3d2bf46c7dcbb31001078407b4555f7759869f3d35eda4cfe36d660899ce
docker/minecraft/Dockerfile.restore
itzg/minecraft-server sha256:9d3d3d2bf46c7dcbb31001078407b4555f7759869f3d35eda4cfe36d660899ce
.github/workflows/action_lint.yml
actions/checkout v4
.github/workflows/apply.yml
actions/checkout v4
aws-actions/configure-aws-credentials v4
hashicorp/setup-terraform v3
.github/workflows/auto-approve.yml
hmarr/auto-approve-action v3
.github/workflows/auto-assign-author.yml
technote-space/assign-author v1
.github/workflows/backup.yml
actions/checkout v4
aws-actions/configure-aws-credentials v4
.github/workflows/build_image.yml
actions/checkout v4
aws-actions/configure-aws-credentials v4
actions/setup-go v5
docker/setup-buildx-action v3
technote-space/get-diff-action v6.1.2
actions/github-script v7
aws-actions/amazon-ecr-login v2
.github/workflows/drift.yml
actions/checkout v4
aws-actions/configure-aws-credentials v4
hashicorp/setup-terraform v3
rtCamp/action-slack-notify v2
rtCamp/action-slack-notify v2
.github/workflows/release-drafter.yml
release-drafter/release-drafter v5
.github/workflows/release-to-branch.yml
actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
.github/workflows/retore-and-set-recoverypoint.yml
actions/checkout v4
aws-actions/configure-aws-credentials v4
hashicorp/setup-terraform v3
rtCamp/action-slack-notify v2
rtCamp/action-slack-notify v2
.github/workflows/schedule_job.yml
actions/checkout v4
aws-actions/configure-aws-credentials v4
hashicorp/setup-terraform v3
rtCamp/action-slack-notify v2
rtCamp/action-slack-notify v2
.github/workflows/secret_lint.yml
actions/checkout v4
actions/setup-node v4
.github/workflows/terraform_ci.yml
actions/checkout v4
technote-space/get-diff-action v6.1.2
aws-actions/configure-aws-credentials v4
hashicorp/setup-terraform v3
actions/github-script v7
actions/github-script v7
actions/github-script v7.0.1
aquasecurity/tfsec-pr-commenter-action v1.3.1
aquasecurity/tfsec-sarif-action v0.1.4
github/codeql-action v3
actions/github-script v7
docker/minecraft/plugins.txt
package.json
@secretlint/secretlint-rule-preset-recommend ^8.0.0
secretlint ^8.0.0
terraform/modules/slash_command/fixtures/python3.9/requirements.txt
urllib3 <2
terraform/keeping/main.tf
terraform/keeping/versions.tf
aws 5.41.0
null 3.2.2
hashicorp/terraform ~> 1.2
terraform/modules/chatbot/chatbot.tf
waveaccounting/chatbot-slack-configuration/aws 1.1.0
terraform/modules/lambda/lambda.tf
terraform-aws-modules/lambda/aws 6.5.0
terraform/modules/nlb/nlb.tf
terraform-aws-modules/alb/aws 8.7.0
terraform/modules/slash_command/lambda.tf
terraform-aws-modules/lambda/aws 6.5.0
terraform/modules/vpc/security_group.tf
terraform-aws-modules/security-group/aws 5.1.0
terraform-aws-modules/security-group/aws 5.1.0
terraform/modules/vpc/vpc.tf
terraform-aws-modules/vpc/aws 5.5.2
terraform/scheduling/main.tf
terraform/scheduling/versions.tf
aws 5.41.0
null 3.2.2
hashicorp/terraform ~> 1.2
Execute backup from github action
参照リンク
{"date":"2023-09-30T14:01:53.152023Z","jst_time":"2023-09-30T23:01:53.152023Z","log":"delete failed: s3://minecraft-backend/backups/2023-09-30/minecraft-20230930130807.tar.gz An error occurred (AccessDenied) when calling the DeleteObject operation: Access Denied","tag":"minecraft","source":"stderr","container_name":"minecraft"}
バックアップジョブがfailしていたので権限の修正が必要と思われる
ログ詳細
assumed-role/AWSServiceRoleForBackup/AWSBackup-AWSServiceRoleForBackup is not authorized to perform: elasticfilesystem:DescribeTags on the specified resource
現状は最新のworldのbackupをrestoreをするようにEntrypointで指定しているが、最新以外のbackup(特定の日時のもの)を指定してEntrypointから復元できるようにしたい。
.github/workflows/build_image.yml:84:9: shellcheck reported issue in this script: SC2001:style:3:17: See if you can use ${variable//search/replace} instead [shellcheck]
|
84 | run: |
| ^~~~
Error: Process completed with exit code 1.
persistするリソースとrecreateするリソースを分離し、それぞれ別のstateで管理する
S3には出力されているが、cloudwatch log groupにminecraft由来のログがroutingされていない。
そのためsubscription filterが作成できない。
fluentbit streamのタグ付与を再度見直す必要ありそう
cron式でeventbridegeトリガーを定義し、codebuildプロジェクトを呼び出す
codebuildプロジェクトでは、ecs task definitionの更新やs3バケットへのworld dataのバックアップ、リストアjobを定義する (terraformコマンドを実行する)
アーティファクト用s3とecrレジストリはterraformの管理下には含めない(誤ってdestoryされないようにするため予め手動作成する)
現状Dockerfileのbuildは手動で行われており、ベースイメージがローカルのキャッシュを使っている場合もあり、最新であることが保証されていない。CIの中にdockerfileイメージpushのプロセスを追加し、ベースイメージを最新に保つ必要がある。
targetラベルをつくる
コストの観点からEFSを使うのではなく、Cluster起動時にS3から最新のbackupをrestoreし、Cluster停止時に現在のworldデータをbackupする機構に変更し、EFSを使わない方針にした
Worldデータがマウントされているコンテナイメージを軽量化するために、worldデータはs3に保持し、コンテナには持たせない
保守性の観点からjsonencodeが必要な定義ファイルを部分的にyamlファイルから参照するように変更
ライフサイクルポリシーあたりをIaC管理したい
新ワールド作成時1人検証で、1vCPUコアを軽く使い果たしているので、既存ワールドで複数人の使用を検討すると2倍以上のスペックは必要そう
既存ワールドを構築しベンチマーク取ってみる
/mc backup
/mc restore <timestamp>
/mc start
/mc stop
/mc help
/mc url
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.