📝

今から始める Elastic Beanstalk 入門 #8

に公開

今から始める Elastic Beanstalk 入門シリーズの 8 回目です。
各回については以下のリンクからご覧ください。

  1. 今から始める Elastic Beanstalk 入門 #1
  2. 今から始める Elastic Beanstalk 入門 #2
  3. 今から始める Elastic Beanstalk 入門 #3
  4. 今から始める Elastic Beanstalk 入門 #4
  5. 今から始める Elastic Beanstalk 入門 #5
  6. 今から始める Elastic Beanstalk 入門 #6
  7. 今から始める Elastic Beanstalk 入門 #7

前回は AWSSupport-TroubleshootElasticBeanstalk ランブックでトラブルシューティングする方法を紹介しました。
今回は環境のイベントやログを確認するトラブルシューティングを紹介します。

環境のイベントについて

Viewing an Elastic Beanstalk environment's event stream - AWS Elastic Beanstalk
環境のイベントではデプロイのイベントなどについて確認できます。
イベントは以下の方法で確認可能です。

環境のイベントの例

簡便に確認する方法として、今回は Elastic Beanstalk コンソールから確認してみます。
サンプルアプリケーションで環境を作成し、「イベント」タブを開きます。
イベントタブに表示される内容が環境のイベントです。

今回は環境の作成に関する以下のようなイベントが出力されていることがわかります。

  • 環境の作成を開始するメッセージ
  • セキュリティグループや EC2 インスタンスを作成する旨のメッセージ
  • EC2 インスタンスへのデプロイが成功した旨のメッセージ
  • 環境の作成が成功した旨のメッセージ

デプロイ中にエラーが発生した場合には「タイプ」に ERROR が記録されます。

ログについて

Viewing logs from Amazon EC2 instances in your Elastic Beanstalk environment - AWS Elastic Beanstalk
Elastic Beanstalk では EC2 インスタンスにアプリケーションがデプロイされるため、ログは EC2 内に生成されます。
上述の環境のイベントでは詳細なログを確認できないケースもあるため、より詳細な調査を行うには EC2 インスタンス内部のログを確認する必要があります。

ログは以下の方法で確認可能です。

  • Elastic Beanstalk コンソールからのダウンロード
  • EB CLI の eb logs コマンドでの確認
  • CloudWatch Logs にストリーミングされたログを確認
  • EC2 インスタンスにログインして確認

ログの例

簡便に確認する方法として、今回は Elastic Beanstalk コンソールからダウンロードする方法を紹介します。
Elastic Beanstalk 環境の「ログ」タブを開き、「リクエストログ」からフルログまたは最後の 100 行のいずれかを選択します。
今回はフルログを選択しました。

ログのリクエストが完了するとダウンロードリンクが表示されるのでダウンロードします。

ダウンロードしたログは zip ファイルにまとめられており、バンドルログとも呼ばれます。
Linux 環境の場合には以下のような構造になっています。

BundleLogs-1755833690685.var.log/
├── healthd/
├── nginx/
├── cfn-hup.log
├── cfn-init-cmd.log
├── cfn-init.log
├── cfn-wire.log
├── cloud-init-output.log
├── cloud-init.log
├── cron
├── eb-cfn-init-call.log
├── eb-cfn-init.log
├── eb-engine.log
├── eb-hooks.log
├── eb-publish.log
├── messages
└── web.stdout.log

環境のイベントに比べてログの量は多いですが、主に ERRORFAIL などの文字列で検索することでエラー箇所を抽出できます。
どのようなエラーが発生するかは一概に紹介できませんが、以下のようなケースでエラーが発生する可能性があります。

  • 権限不足
  • CPU 使用率やメモリ使用率の高騰
  • デプロイ中のコマンドの失敗
  • EC2 インスタンスのシステムステータスのチェックの失敗

ログ確認後のトラブルシューティングについてはエラーメッセージをもとに調査することになります。
一般的なトラブルシューティングの方法は以下の通りです。

まとめ

今回は今から始める Elastic Beanstalk 入門シリーズの 8 回目として、環境のイベントやログを確認するトラブルシューティングについて紹介しました。
次回はモニタリングについて紹介します。

参考資料

Discussion