LoginSignup
1
0

More than 1 year has passed since last update.

ECS Execを用いてコンテナにログインする

Posted at

ECSで起動したコンテナに対して、docker execのようにコンテナの中にログインして操作する機能を試したので、そのメモです。私が試したのはFargateになります。

事前準備

ECS Execするクライアント端末にツールをインストールすると共に、IAMロールを設定します。

  1. クライアントで session-manager-plugin を実行し、結果を確認する。
  2. 未インストールの場合、Session Manager プラグインをインストールする。
  3. 以下のIAMポリシーを作成し、ECSタスクを実行するIAMロールにアタッチする。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*"
        }
    ]
}

ECSの設定

ECS側の設定を行います。一部の手順はAWS CLIで実施します。

  1. ECSタスクに上記のIAMロールを設定する。
    • すでに設定されているロールにポリシーを追加した場合は、ポリシーの適用にタスクの再デプロイが必要。ただし後の手順でも再デプロイする。
  2. AWS CLIで aws ecs update-service --cluster <CLUSTER_NAME> --service <SERVICE_NAME> --enable-execute-command を実行する。
  3. タスクを(再)デプロイする。
  4. AWS CLIで aws ecs execute-command --cluster <CLUSTER_NAME> --task <TASK ID> --container <CONTAINER NAME> --interactive --command "/bin/sh" を実行する。

これでコンテナにログインして、Shellでログの参照や状態の確認をすることができるようになります。

ちなみに私はWindows 10で試しましたが、GitについてきたBashから実行したところエラーが発生し、PowerShellから実行したらログインできました。原因は追求していません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0