EC2を使用してAWS ECSでコンテナーを実行している場合、実行中のコンテナーにアクセスして、任意のコマンドを実行できます。
すなわち。 docker exec -it <containerid> <command>
Fargateを使用して、実行中のコンテナーでコマンドを実行したり、AWS ECSのコンテナーにアクセスするにはどうすればよいですか?
Fargateでは、基盤となるインフラストラクチャにアクセスできないため、docker exec
は不可能のようです。ドキュメントではこれについて明示的に言及されていませんが、スライド19で言及されているAmazonによる Deep Dive into AWS Fargate presentation で言及されています。
いくつかの注意事項:コンテナーに実行できない、または基盤となるホストにアクセスできない(これも良いことです)
ECS CLI githubプロジェクトでは、これについて 未解決の問題 についての議論もあります。
コンテナー内でSSHサーバーを実行してアクセスを試みることもできますが、私は試したことがありません。また、それは良いアプローチのように思われないので、そこに制限されています。
AWS Fargateはマネージドサービスであり、コンテナーへのアクセスを許可しないことは理にかなっています。コンテナのトラブルシューティングが必要な場合は、コンテナで実行しているアプリのログレベルをいつでも上げることができます。コンテナの操作に関するベストプラクティスによると
「Dockerコンテナは実際には不変です。つまり、更新する必要がある場合、アプリケーションの更新バージョンで新しいコンテナを作成し、古いコンテナを削除することをお勧めします。
それが役に立てば幸い。