dockerをECSで動かした時のdebug方法について

はじめに

dockerコンテナを動かしていると、何らかの原因で起動シェルが止まってしまうことがある。今回はその調査方法の一つ、ECS用にAWSからオフィシャルのログ収集ツール ECSログコレクター が提供されているので、今回はそれを紹介。

インストール方法

AWS公式サイトにある通り、ツールを取得する

その後、sudoをつけてシェルを実行する

しばらくすると、諸々ログが取れる

無事完了すると、correctというディレクトリが作られ、ログが集約される。

dockerの状態を確認するには、correct、インスタンスid、配下のdockerディレクトリにログとして出力される。

ざっと見てみると、

終了したときの状態がわかる。

OOMKilledがtrueになっており、このコンテナはメモリを使い果たし、OOMKillerが発動、コンテナがkillされたのではと推測が立つ。

linuxのimageをbaseに使っていると、当然メモリーを使い切った際にはOOM killerなどは発生する。その際の原因調査をする上では、サーバレスのfargateよりは、まだホストにログインできるECSの方が原因調査はやりやすい。

それ以外にも非常に細かい状態を確認することができる。

詳細はこちら。

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ecs-logs-collector.html

では、今日はこの辺で。