ecs exec コマンドを使う

aws

※プロモーションページが含まれる場合があります

fargateの調査中に便利だったecs execの紹介。

awsのfargateというコンテナを立ち上げるやつ。

サーバーレスで便利という事で使ってみたがコンテナの中身に入らないと中がどうなってるかわかりづらいのでコンテナの中に入れるツール「ecs ecec」というものがあった。

いろいろ導入に苦労したので私がやったやり方を紹介します

まずはaws cliのバージョン確認

aws cli version

aws-cli/2.7.27 Python/3.9.11 Windows/10 exe/AMD64 prompt/off

「amazon-ecs-exec-checker」でecs execが使える状態かチェック。(チェックするツールがある)

下記コマンドで使用可能(特に何かインストールする必要なさそう)

bash <( curl -Ls https://raw.githubusercontent.com/aws-containers/amazon-ecs-exec-checker/main/check-ecs-exec.sh ) <クラスター名> <タスクID>

赤マークが消えたら使用可能。だいたい赤出てる。

こんなやつ詳細

GitHub - aws-containers/amazon-ecs-exec-checker: 🚀 Pre-flight checks for ECS Exec
🚀 Pre-flight checks for ECS Exec. Contribute to aws-containers/amazon-ecs-exec-checker development by creating an account on GitHub.

チェックでだいたい直すところの改善方法を↓に記載しておきます~

Session Manager プラグインのインストール方法

だいたいsession managerのインストールできてないで赤が出てることが多いのでinstall方法乗せておく。なお環境はubuntuなのでご了承ください

ERROR: The request could not be satisfied

“enableExecuteCommand”: false の解消

下記コマンドを実行したときにfalseになる場合

aws ecs describe-services --cluster test-tokunaga-cluster --services test-nginx | grep enableExecuteCommand

下記コマンド実行 を実行

aws ecs update-service --cluster <クラスター名> --service <サービス名> --enable-execute-command

もう一回さっきのコマンドを実行するとtrueになってる

※”enableExecuteCommand”: falseになってる場合は立ち上げてるサービスを強制デプロイで更新するとアクセスできるようになる

チェックを全部クリアできたらようやくfargateのコンテナに接続♬

チェック項目が全部okになったら下記コマンドでコンテナに接続

aws ecs execute-command --cluster <クラスター名> --task <タスクID> --container <コンテナ名> --interactive --command "/bin/sh"

参考サイト

Amazon ECS Execを使ってコンテナ内部でコマンド実行してみた [amazon-ecs-exec-checker] | クラウド・AWSのIT技術者向けブログ SKYARCH BROADCASTING

コメント

タイトルとURLをコピーしました