Yusuke Ebihara's website
Dotfiles Blog RSS

ECSでマイクラサーバーを立てる サーバーコマンド実行編

2023/12/05
minecraft docker ecs

目次

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

コメント

Github Issue と連動しています。