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

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

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

イベント「JAWS-UGコンテナ支部 入門編 #7 初心者大歓迎LT大会」での登壇資料です。

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

Ryuki Dohara

August 09, 2022
Tweet

More Decks by Ryuki Dohara

Other Decks in Technology

Transcript

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

    インフラエンジニア 入社 : 2021 年(新卒) Twitter : @ryu_dohara 2
  2. クラウドのコンテナはローカル検証が難しい クラウドならではの要件 → クラウドならではの設定 • セキュリティグループ • IAM ロール /

    ポリシー • VPC エンドポイント 4 データベースにアクセスできないのは? • 記述ミス? • psql などのツールでもアクセスできない? API を叩けないのは? • 記述ミス? • 名前解決はできてる? • 権限がある? エラー発生 コンテナの外から見ただけでは切り分けが難しい
  3. 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 #
  4. ECS Exec の便利な点 8 コンテナイメージを変更する必要がない コンテナへの特定のツールのインストール不要 セキュリティグループで特定のポートを開放する必要なし AWS System Manager

    (SSM) のセッションマネージャーを用いてるため ログ記録 コマンド及び出力結果は CloudWatch Logs へ ECS Exec の使用履歴は CloudTrail へ IAM ベースでの権限管理
  5. ECS Exec を有効化するには? 10 ざっくりまとめると、ECS に対して以下の設定が必要です • タスクロールに必要な権限付与 • (推奨)タスク定義において、

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

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