Slide 1

Slide 1 text

[JAWS-UG コンテナ支部 入門編 #7] ECS Exec を使った ECS の トラブルシューティング アイレット株式会社 堂原 竜希

Slide 2

Slide 2 text

自己紹介 名前 : 堂原 竜希(ドウハラ リュウキ) 所属 : アイレット株式会社    インフラエンジニア 入社 : 2021 年(新卒) Twitter : @ryu_dohara 2

Slide 3

Slide 3 text

クラウドのコンテナはローカル検証が難しい 一年間新卒として過ごし、初の ECS 絡みのインフラ構築 3 クラウドのコンテナならではの要件 ● ECS 間通信管理に App Mesh 使用 ● ECS 外のサービスへのアクセス ● AWS API を叩く …

Slide 4

Slide 4 text

クラウドのコンテナはローカル検証が難しい クラウドならではの要件 → クラウドならではの設定 ● セキュリティグループ ● IAM ロール / ポリシー ● VPC エンドポイント 4 データベースにアクセスできないのは? ● 記述ミス? ● psql などのツールでもアクセスできない? API を叩けないのは? ● 記述ミス? ● 名前解決はできてる? ● 権限がある? エラー発生 コンテナの外から見ただけでは切り分けが難しい

Slide 5

Slide 5 text

Docker なら docker exec が 使えるのに・・・ 5 ECS でもできます!

Slide 6

Slide 6 text

ECS Exec ECS で実行されているコンテナで以下が可能に ● コマンドの実行 ● シェルへのアクセス まさに Docker の docker exec と同様のことができます! 6

Slide 7

Slide 7 text

ECS Exec 使用例 7 $ aws ecs execute-command --cluster cluster-name \ --task task-id \ --container container-name \ --interactive \ --command "/bin/sh" The Session Manager plugin was installed successfully. Use the AWS CLI to start a session. Starting session with SessionId: ecs-execute-command-xxx #

Slide 8

Slide 8 text

ECS Exec の便利な点 8 コンテナイメージを変更する必要がない コンテナへの特定のツールのインストール不要 セキュリティグループで特定のポートを開放する必要なし AWS System Manager (SSM) のセッションマネージャーを用いてるため ログ記録 コマンド及び出力結果は CloudWatch Logs へ ECS Exec の使用履歴は CloudTrail へ IAM ベースでの権限管理

Slide 9

Slide 9 text

色々と説明 9 SSM のセッションマネージャーが使われています そのため、タスクロールで SSM アクセス権限を付与する必要があります また、プライベートなサブネットに配置している場合、 VPC エンドポイントが必要です マネージドコンソールから、 ECS Exec の有効化及び使用はできません

Slide 10

Slide 10 text

ECS Exec を有効化するには? 10 ざっくりまとめると、ECS に対して以下の設定が必要です ● タスクロールに必要な権限付与 ● (推奨)タスク定義において、 initProcessEnabled を有効化 ● ECS サービスにおいて、ECS Exec (enableExecuteCommand) を有効化 また、次の設定も必要です ● (プライベートサブネットの場合 ) VPC エンドポイント作成 ● ECS Exec の実行アカウントに IAM ポリシー付与 (ここまでで思った方もいるかもしれませんが ) 設定内容が多く、初めてだとハマりやすいです・・・ そこで・・・

Slide 11

Slide 11 text

Amazon ECS Exec チェッカー 11 ECS Exec を使用するにあたり、 ECS やその他 AWS リソースが正しく設定されているかの確認をしてくれます フリーツールとして、 GitHub で展開 例) タスクロールの権限が未設定 引用元 : https://github.com/aws-containers/amazon-ecs-exec-checker

Slide 12

Slide 12 text

まとめ トラブルシューティングのお供として、 ECS Exec を有効活用しましょう! ECS Exec 自体の設定にハマってしまったら Amazon ECS Exec チェッカーを活用 12 参考 ● https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/ecs-exec.html ● https://github.com/aws-containers/amazon-ecs-exec-checker