4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Docker Compose for Amazon ECSでAmazon ECS Execをする

Posted at

経緯

Docker Compose for Amazon ECSをつかってコンテナを立ち上げたはいいものの、作り直しのたびにコンソールやコマンドでECS Execの設定をしていくのは面倒くさい!最初から設定された状態で立ち上げたい!

結論から

docker-compose.ymlの主要な箇所だけ取り出すとこんな感じです。
serverという名前でサービスを作っています。

docker-compose.yml
services:
  server:
    # image指定とかは略
    x-aws-role:
      Version: '2012-10-17'
      Statement:
      - Effect: Allow
        Action:
          - ssmmessages:CreateControlChannel
          - ssmmessages:CreateDataChannel
          - ssmmessages:OpenControlChannel
          - ssmmessages:OpenDataChannel
        Resource: '*'
x-aws-cloudformation:
  Resources:
    ServerService:
      Properties:
        EnableExecuteCommand: true

説明

ECS Execを利用するには2つ準備が必要です。

  • ECSタスクにSSMセッションマネージャー関連のIAMロールを与える
  • ECSサービスでのenableExecuteCommandの設定をtrueにする

ECSタスクへのIAMロールに関してはx-aws-roleに書くと付与できます。

enableExecuteCommandについてはx-aws-cloudformationの箇所に設定を書けば、docuer compose up時に自動で変換されるCloudFormationのテンプレートのそこの部分だけ上書きされます。

おわりに

これでコンテナに入り放題!

ECS全然よくわからないで使っているので、用語の間違いとかあったらご指摘ください。

参考

ECS Exec

Docker Compose for Amazon ECS

「IAM ロール」の項目と、その下の「CloudFormation テンプレートの調整」が詳しかったです。

4
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?