メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

Elastic Beanstalk 環境の Amazon EC2 インスタンスからのログの表示

Elastic Beanstalk 環境の EC2 インスタンスが、アプリケーションまたは設定ファイルに関する問題を解決する際に表示できるログを生成します。ウェブサーバー、アプリケーションサーバー、Elastic Beanstalk プラットフォームスクリプトおよび AWS CloudFormation によって作成されたログは、個々のインスタンス上でローカルに保管され、環境管理コンソールまたは EB CLI を使用して簡単に取得することができます。Amazon CloudWatch Logs へログをリアルタイムでストリーミングするよう環境を設定することもできます。

ログ末尾は、最もよく使われるログファイル – Elastic Beanstalk 運用ログおよびウェブサーバーやアプリケーション サーバーのログの最後の 100 行です。環境管理コンソールで、または eb logs を使用してログ末尾をリクエストすると、環境のインスタンスが最新のログエントリを単一のテキストファイルに連結して、それを Amazon S3 にアップロードします。

バンドルログは、yum および cron のログおよび AWS CloudFormation の複数のログを含むさまざまなログファイルのフルログです。バンドルログをリクエストすると、環境のインスタンスはフルログファイルを ZIP のアーカイブにパッケージ化して、それを Amazon S3 にアップロードします。

注記

Elastic Beanstalk Windows Server プラットフォームは、バンドルログをサポートしません。

環境マネジメントコンソールでログを取得するには、[Logs] に移動し、[Request Logs(ログのリクエスト)] を選択して、取得するログの種類を選択します。ログ末尾を取得するには、[Last 100 Lines(最新 100 行)] を選択します。バンドルログを取得するには、[Full Logs] を選択します。

Elastic Beanstalk がログの取得を完了したら、[Download(ダウンロード)] を選択します。

ログ末尾およびバンドルログは、作成の 15 分後に Amazon S3 から削除されます。ログを保持するために、ログがローテーションされると自動的に Amazon S3 に対してログを発行するように環境を設定できます。

Amazon S3 へのログのローテーションを有効にするには、環境管理コンソールの [Configuration(設定)] ページの [Software Configuration(ソフトウェア設定)] セクションに移動します。[Log Options(ログオプション)] で、[Enable log file rotation to Amazon S3] を選択してから、[Apply(適用)] を選択します。環境のインスタンスは 1 時間に一度ローテーションされるログをアップロードしようと試みます。

ローテーションされたログを Amazon S3 にアップロードするには、環境のインスタンスに Elastic Beanstalk Amazon S3 バケットに書き込むためのアクセス許可をもつインスタンスプロファイルが必要です。これらのアクセス許可は Elastic Beanstalk コンソールで初めて環境を起動する際に Elastic Beanstalk によって作成するよう求められる、デフォルトのインスタンスプロファイルに含まれています。

アプリケーションが、環境のプラットフォームのデフォルトの設定の一部ではない場所にあるログを生成する場合、設定ファイル (.ebextensions) を使用してデフォルトの設定を拡張できます。アプリケーションのログファイルをログ末尾、バンドルログ、またはログローテーションに追加できます。

リアルタイムのログストリーミングや長期ストレージを行う場合は、Amazon CloudWatch Logs にログをストリーミングするよう環境を設定します。

インスタンス上のログの場所

ログは、環境内の EC2 インスタンスで標準の場所に保存されます。Elastic Beanstalk は、以下のログを生成します。

Linux

  • /var/log/eb-activity.log

  • /var/log/eb-commandprocessor.log

  • /var/log/eb-version-deployment.log

Windows Server

  • C:\Program Files\Amazon\ElasticBeanstalk\logs\

これらのログには、設定ファイルに関するメッセージなど、デプロイメントアクティビティに関するメッセージが含まれます(.ebextensions)。

各アプリケーションとウェブサーバーは、固有フォルダーにログを保存します。

  • Apache/var/log/httpd/

  • IISC:\inetpub\wwwroot\

  • Node.js – /var/log/nodejs/

  • nginx/var/log/nginx/

  • Passenger/var/app/support/logs/

  • Puma/var/log/puma/

  • Python – /opt/python/log/

  • Tomcat/var/log/tomcat8/

S3 のログの場所

環境のログ末尾またはバンドルログをリクエストしたり、インスタンスがローテーションされたログをアップロードすると、それらは Amazon S3 の Elastic Beanstalk バケットに格納されます。Elastic Beanstalk は環境を作成するリージョンごとに elasticbeanstalk-region-account-id という名前のバケットを作成します。このバケット内では、ログはパス resources/environments/logs/logtype/environment-id/instance-id 内に保存されます。

たとえば、アカウントが 0123456789012 であり、リージョン us-west-2 にある Elastic Beanstalk 環境 e-mpcwnwheky のインスタンス i-0a1fd158 のログは、次の場所に保存されます。

  • ログ末尾

    s3://elasticbeanstalk-us-west-2-0123456789012/resources/environments/logs/tail/e-mpcwnwheky/i-0a1fd158

  • バンドルログ

    s3://elasticbeanstalk-us-west-2-0123456789012/resources/environments/logs/bundle/e-mpcwnwheky/i-0a1fd158

  • ローテーションされたログ

    s3://elasticbeanstalk-us-west-2-0123456789012/resources/environments/logs/publish/e-mpcwnwheky/i-0a1fd158

注記

環境 IDは、環境管理コンソールに表示されます。

Elastic Beanstalk は、ログ末尾とバンドルログを作成から 15 分後に自動的に Amazon S3 から削除します。ローテーションされたログは、削除するか Amazon Glacier に移動するまで保持されます。

デフォルトのログタスク設定の拡張

Elastic Beanstalk は EC2 インスタンス上の /opt/elasticbeanstalk/tasks (Linux) または C:/Program Files/Amazon/ElasticBeanstalk/config (Windows Server) のサブフォルダにあるファイルを使用して、ログ末尾、バンドルログおよびログローテーションを設定します。

Linux

  • ログ末尾

    /opt/elasticbeanstalk/tasks/taillogs.d/

  • バンドルログ

    /opt/elasticbeanstalk/tasks/bundlelogs.d/

  • ローテーションされたログ

    /opt/elasticbeanstalk/tasks/publishlogs.d/

Windows Server

  • ログ末尾

    c:/Program Files/Amazon/ElasticBeanstalk/config/taillogs.d/

  • ローテーションされたログ

    c:/Program Files/Amazon/ElasticBeanstalk/config/publogs.d/

たとえば、ファイル eb-activity.conf が 2 つのログファイルを末尾ログのタスクに追加します。

/opt/elasticbeanstalk/tasks/taillogs.d/eb-activity.conf

/var/log/eb-commandprocessor.log
/var/log/eb-activity.log

設定ファイル (.ebextensions) を使用して .conf ファイルをこれらのフォルダに追加し、アプリケーションに固有のログファイルをそれらのタスクに追加できます。

files キーを使用して、変更するタスクに設定ファイルを追加します。たとえば、次の設定ファイルは /var/log/cloud-init.log をログ末尾に追加する config を環境の各インスタンスに追加します。

files:
  "/opt/elasticbeanstalk/tasks/taillogs.d/cloud-init.conf" :
    mode: "000755"
    owner: root
    group: root
    content: |
      /var/log/cloud-init.log

このテキストを .config 拡張子をもつファイルに追加して .ebextensions という名前のフォルダ内のソースバンドルに追加します。

~/workspace/my-app
|-- .ebextensions
|   `-- tail-logs.config
|-- index.php
`-- styles.css

ログのタスク設定でワイルドカードを使用することもできます。この設定ファイルは .log 拡張子をもつすべてのファイルをアプリケーションのルートにある log フォルダからバンドルログに追加します。

files: 
  "/opt/elasticbeanstalk/tasks/bundlelogs.d/applogs.conf" :
    mode: "000755"
    owner: root
    group: root
    content: |
      /var/app/current/log/*.log

設定ファイルの使用の詳細については、「設定ファイル (.ebextensions) による高度な環境のカスタマイズ」を参照してください。

ローカルインスタンスログのローテーションの設定

Linux プラットフォームで、Elastic Beanstalk は logrotate を使用して定期的にログのローテーションを行います。ログがローカルでローテーションされた場合、そのログはローテーションタスクにより選択され、設定されている場合は Amazon S3 にアップロードされます。ローカルにローテーションされたログは、ログの末尾またはバンドルログにはデフォルトで表示されません。

logrotate の Elastic Beanstalk の設定ファイルは /etc/logrotate.elasticbeanstalk.hourly/ にあります。特定のローテーション設定はプラットフォームに固有で、今後のプラットフォームのバージョンで変更される場合があります。使用できる設定の設定と例の詳細については、man logrotate を実行してください。

設定ファイルは、/etc/cron.hourly/ の cron ジョブで呼び出されます。cron の詳細については、man cron を実行してください。

Amazon CloudWatch Logs

AWS マネジメントコンソールで Amazon CloudWatch Logs にログをストリーミングするよう環境を設定するか、設定オプションで設定できます。CloudWatch Logs では、環境の各インスタンスがロググループにログをストリーミングします。ロググループは、環境の終了後も数週間または数年間保持するよう設定できます。

ストリーミングされるログのセットは環境によって異なりますが、アプリケーションの前面で実行される nginx または Apache プロキシサーバーからの eb-activity.log とアクセスログが常に含まれます。

次のスクリーンショットに示すように、ソフトウェアの設定ページで環境の作成中に AWS マネジメントコンソールでログストリーミングを設定できます。これにより、環境が終了した場合でも最大 60 日間ログが保存されます。

 CloudWatch ログの設定

次の設定ファイルでは、環境が終了した場合でも 180 日間はログストリーミングが可能になります。

例 .ebextensions/log-streaming.config

option_settings:
  aws:elasticbeanstalk:cloudwatch:logs:
    StreamLogs: true
    DeleteOnTerminate: false
    RetentionInDays: 180