AWS Elastic Beanstalk でログファイルをカスタマイズし、カスタムアプリケーションログを Amazon CloudWatch にストリーミングしたいと考えています。
ログファイルをカスタマイズするには、次の手順を実行します。
**注:**カスタムログファイルがある場合、またはログの 1 つがデフォルトログにない場合は、ログ構成をさらにカスタマイズできます。
Elastic Beanstalk からログをリクエストすると、Elastic Beanstalk は環境内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからデフォルトのログファイルを返します。ただし、アプリケーションに一意のログの場所がある場合、これらのデフォルトのログファイルを受信できないことがあります。
Elastic Beanstalk が一意のログの場所からログファイルを返すようにするには、デフォルトのログタスク設定を拡張します。
アプリケーションのログファイルがディスク容量を使い切ったり、大量のディスク容量を占有したりするのを防ぐには、ログローテーションを使用して古いログファイルをローテーションします。ログをローテーションすることで、古いログが環境の EC2 インスタンスから自動的に削除されます。古いログを保存する場合は、インスタンスからログが削除される前に、ローテーションされたログを Amazon Simple Storage Service (Amazon S3) にアップロードできます。
本番稼働アプリケーションでは、CloudWatch などのリモートストレージソリューションにログをストリーミングするのがベストプラクティスです。Elastic Beanstalk でログストリーミングを有効にするには、「Amazon CloudWatch Logs ログへのログファイルのストリーミング」または「Amazon CloudWatch Logs での Elastic Beanstalk の使用」を参照してください。
カスタムログの場所をストリーミングする場合は、「設定ファイルを使用したインスタンスログのストリーミング」を参照してください。
ログを CloudWatch にストリーミングすると、データが保護されます。たとえば、Elastic Beanstalk 環境で、終了する EC2 インスタンスに問題がある場合でも、CloudWatch からログを復元できます。ログローテーションを使用してデータ損失を防ぐこともできます。
Amazon CloudWatch ログとは
CloudWatch ログ統合のトラブルシューティング
Amazon CloudWatch Logs への Elastic Beanstalk 環境ヘルス情報のストリーミング