ECSでマイクラサーバーを立てる サーバーコマンド実行編
2023/12/05
目次
「ECSでマイクラサーバーを立てる データ永続化編」のつづき。
op権限を付与するために、コンテナの中でサーバーコマンドを実行したい。
Sending commands - Minecraft Server on Docker (Java Edition) を参考にすると、docker execができればよい。今回はECS Execを使ってFaragateコンテナ内で実行する。
aws cli・session mangager pluginを入れる
aws cliを入れておく。
session manager pluginを入れる
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb"
sudo dpkg -i session-manager-plugin.deb
ecsにIAMポリシーを付与する。
以下のIAMポリシーを付与したロールを、ECSタスク定義のタスクロールに付与する。
タスク実行ロール ではなく タスクロール なので注意。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
]
}
作成したポリシー
作成したロール
ロールをECSのタスク定義に割り当て。
コマンドを実行する。
aws ecs execute-command --region ap-northeast-1 --cluster <クラスター名> --task <タスク定義id> --container minecraft --interactive --command rcon-cli
→これを実行するとシェルに入ることができる。
References
- ECS Execを使って Fargateのコンテナにアクセスする #AWS - Qiita
- FARGATEのコンテナにdocker execする【既にECSを使用している方向け】 #AWS - Qiita
- デバッグ用にAmazon ECS Exec を使用 - Amazon ECS
- Sending commands - Minecraft Server on Docker (Java Edition)
- RCON - wiki.vg
コメント
Github Issue と連動しています。