Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ECS Exec を使った ECS の トラブルシューティング

ECS Exec を使った ECS の トラブルシューティング

業務でECS Execを使った時の経験をベースに、ECS Execの使い方や便利な点を紹介

イベント : JAWS-UGコンテナ支部 入門編 #7 初心者大歓迎LT大会

Ryuki Dohara

August 09, 2022
Tweet

More Decks by Ryuki Dohara

Other Decks in Technology

Transcript

  1. [JAWS-UG コンテナ支部 入門編 #7] ECS Exec を使った ECS の トラブルシューティング

    アイレット株式会社 堂原 竜希
  2. 自己紹介 名前 : 堂原 竜希(ドウハラ リュウキ) 所属 : アイレット株式会社   

    インフラエンジニア 入社 : 2021 年(新卒) Twitter : @ryu_dohara 2
  3. クラウドのコンテナはローカル検証が難しい 一年間新卒として過ごし、初の ECS 絡みのインフラ構築 3 クラウドのコンテナならではの要件 • ECS 間通信管理に App

    Mesh 使用 • ECS 外のサービスへのアクセス • AWS API を叩く …
  4. クラウドのコンテナはローカル検証が難しい クラウドならではの要件 → クラウドならではの設定 • セキュリティグループ • IAM ロール /

    ポリシー • VPC エンドポイント 4 データベースにアクセスできないのは? • 記述ミス? • psql などのツールでもアクセスできない? API を叩けないのは? • 記述ミス? • 名前解決はできてる? • 権限がある? エラー発生 コンテナの外から見ただけでは切り分けが難しい
  5. Docker なら docker exec が 使えるのに・・・ 5 ECS でもできます!

  6. ECS Exec ECS で実行されているコンテナで以下が可能に • コマンドの実行 • シェルへのアクセス まさに Docker

    の docker exec と同様のことができます! 6
  7. 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 #
  8. ECS Exec の便利な点 8 コンテナイメージを変更する必要がない コンテナへの特定のツールのインストール不要 セキュリティグループで特定のポートを開放する必要なし AWS System Manager

    (SSM) のセッションマネージャーを用いてるため ログ記録 コマンド及び出力結果は CloudWatch Logs へ ECS Exec の使用履歴は CloudTrail へ IAM ベースでの権限管理
  9. 色々と説明 9 SSM のセッションマネージャーが使われています そのため、タスクロールで SSM アクセス権限を付与する必要があります また、プライベートなサブネットに配置している場合、 VPC エンドポイントが必要です

    マネージドコンソールから、 ECS Exec の有効化及び使用はできません
  10. ECS Exec を有効化するには? 10 ざっくりまとめると、ECS に対して以下の設定が必要です • タスクロールに必要な権限付与 • (推奨)タスク定義において、

    initProcessEnabled を有効化 • ECS サービスにおいて、ECS Exec (enableExecuteCommand) を有効化 また、次の設定も必要です • (プライベートサブネットの場合 ) VPC エンドポイント作成 • ECS Exec の実行アカウントに IAM ポリシー付与 (ここまでで思った方もいるかもしれませんが ) 設定内容が多く、初めてだとハマりやすいです・・・ そこで・・・
  11. Amazon ECS Exec チェッカー 11 ECS Exec を使用するにあたり、 ECS やその他

    AWS リソースが正しく設定されているかの確認をしてくれます フリーツールとして、 GitHub で展開 例) タスクロールの権限が未設定 引用元 : https://github.com/aws-containers/amazon-ecs-exec-checker
  12. まとめ トラブルシューティングのお供として、 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