1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:ECS Exec を活用してコンテナに即アクセスするために、タスク ID を取得し、接続してみた

Posted at

はじめに

ECS Exec を活用すると、ECS のデプロイを変更することなく、手動でコンテナにアクセスし、さまざまな管理作業を実行できます。

本記事では、その手順を具体的に解説します。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

書こうと思ったきっかけ

最近、ECS で運用されているアプリケーションのデバッグ作業を行う機会がありました。

その際、ECS Exec を利用すればデプロイの手順を変更せずにコンテナ内に入れることを知り、非常に便利だと感じました。

この経験を基に、ECS Exec を使ったコンテナ内での操作方法を共有したいと思い、本記事を執筆しました。

ECS Exec を使ったコンテナ内での操作方法

1. 実行中の ECS タスク ID を取得

まず、現在実行中の ECS タスク ID を取得します。以下のコマンドを実行してください。

aws ecs list-tasks --cluster my-ecs-cluster

実行すると、以下のような JSON 形式のレスポンスが返ってきます。

{
  "taskArns": [
    "arn:aws:ecs:ap-northeast-1:xxx"
  ]
}

この taskArns の値のうち、最後の部分にある task-id(例:b75dd1e821c54fa3b25159d2d206e4c9)を使用します。

2. コンテナ内に接続

次に、aws ecs execute-command を使用して ECS コンテナに接続します。

aws ecs execute-command \
  --cluster my-ecs-cluster \
  --task b75dd1e821c54fa3b25159d2d206e4c9 \
  --container my-app-repo \
  --interactive \
  --command "/bin/sh"

補足

  • --container my-app-repo:接続するコンテナ名(containerName の値)を指定します。
  • --command "/bin/sh":シェルを開くためのコマンドです。

このコマンドを実行すると、ECS コンテナのシェルに入ることができ、プロンプトが以下のように変わります。

sh-4.2#

これで、コンテナ内での操作が可能になります。

まとめ

ECS Exec を利用すると、デプロイを変更することなく、簡単に ECS コンテナへアクセスし、直接操作することが可能になります。

本記事で紹介した手順を参考にすれば、トラブルシューティングやメンテナンス作業を効率的に行うことができます。

特に、緊急時のデバッグやデータベースの直接操作が必要な場合に役立つので、ぜひ活用してみてください。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?