Elastic Beanstalk でログファイルをカスタマイズするにはどうすればよいですか?

最終更新日: 2019 年 10 月 30 日

AWS Elastic Beanstalk でログファイルをカスタマイズし、確実にカスタムアプリケーションログを含めて、Amazon CloudWatch にストリーミングされるようにしたいと考えています。

簡単な説明

Elastic Beanstalk が収集するデフォルトのログファイルとストリームがアプリケーションまたはユースケースのニーズを満たさない場合は、次のオプションを検討して、ログファイルの収集とストリーミングをカスタマイズします。

  • ログバンドルにカスタムログを含める
  • ログをローテーションする
  • (オプション) ログを CloudWatch にストリーミングする

注意: カスタムログファイルがある場合や、ログの 1 つがデフォルトログにない場合は、ログ設定をさらにカスタマイズできます。

解決方法

ログバンドルにカスタムログを含める

Elastic Beanstalk からログをリクエストすると、Elastic Beanstalk は環境内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからデフォルトのログファイルを返します。ただし、アプリケーションに一意のログの場所がある場合、これらのデフォルトのログファイルを受信できないことがあります。

Elastic Beanstalk が一意のログの場所からログファイルを返すようにするには、 デフォルトのログタスク設定を拡張します。

ログをローテーションする

アプリケーションのログファイルが大量のディスク容量を占有したり、ディスク容量を使い切ったりするのを防ぐには、ログローテーションを使用して古いログファイルをローテーションします。

ログをローテーションすることで、古いログが環境の EC2 インスタンスから自動的に削除されます。古いログを保持する場合は、インスタンスからログが削除される前に、ローテーションされたログを Amazon Simple Storage Service (Amazon S3) にアップロードできます。

(オプション) ログを CloudWatch にストリーミングする

本番稼働アプリケーションでは、CloudWatch などのリモートストレージソリューションにログをストリーミングするのがベストプラクティスです。Elastic Beanstalk でログストリーミングを有効にする方法については、Amazon CloudWatch Logs へのログファイルのストリーミングまたは Amazon CloudWatch Logs での Elastic Beanstalk の使用を参照してください。

カスタムログの場所をストリーミングする場合は、設定ファイルを使用したインスタンスログのストリーミングを参照してください。

ログを CloudWatch にストリーミングすると、データの保護に役立ちます。例えば、Elastic Beanstalk 環境で終了する EC2 インスタンスに問題がある場合でも、CloudWatch からログを復元できます。また、ログローテーションを使用して、データ損失から保護することもできます。