AWS Elastic Beanstalk
開発者ガイド

環境の拡張ヘルスルールの設定

Elastic Beanstalk 拡張ヘルスレポートは、環境のヘルスチェックの状態を判断する一連のルールに依存しています。これらのルールの一部は、特定のアプリケーションに適していない場合があります。HTTP クライアント (4xx) エラーが予想される場合に一般的なケースは、クライアント側でテストツールを使用した結果としての場合などです。

デフォルトでは、Elastic Beanstalk は、環境の状態を判断するときに、すべてのアプリケーションの HTTP 4xx エラーを含めます。そのため、環境ヘルスステータスは、エラーレートに応じて、OK から警告パフォーマンス低下、または重大へと変化します。このケースを正しく処理するために、Elastic Beanstalk ではこのルールを正しく設定して、環境のインスタンスのアプリケーション HTTP 4xx エラーを無視するように設定できます。このトピックでは、この設定の変更方法について説明します。

注記

現在のところ、これは拡張ヘルスルールのカスタマイズにのみ使用できます。環境のロードバランサーによって返される HTTP エラー、または 4xx に加えて他の HTTP エラーを無視するように拡張ヘルスを設定することはできません。

Elastic Beanstalk コンソール を使用して拡張ヘルスルールを設定する

Elastic Beanstalk コンソール を使用して環境で拡張ヘルスルールを設定できます。

AWS マネジメントコンソール を使用してアプリケーション HTTP 4xx ステータスコードを無視するには

  1. Elastic Beanstalk コンソール を開きます。

  2. お客様の環境の管理ページに移動します。

  3. [Configuration] を選択します。

  4. [モニタリング] 設定カテゴリで、[変更] を選択します。

  5. [Health monitoring rule customization (ヘルスモニタリングルールのカスタマイズ)] で、[Ignore HTTP 4xx (HTTP 4xx を無視)] オプションを有効にします。

    
            Elastic Beanstalk コンソールのモニタリング設定ページのヘルスモニタリングルールのカスタマイズセクション
  6. [Apply] を選択します。

EB CLI を使用して拡張ヘルスルールを設定する

EB CLI を使用すると、環境の設定をローカルに保存し、拡張ヘルスルールを設定するエントリを追加してから、その設定を Elastic Beanstalk にアップロードすることによって、拡張ヘルスルールを設定できます。保存した設定は、環境を作成する前または作成した後に環境に適用できます。

EB CLI および保存した設定を使用してアプリケーション HTTP 4xx ステータスコードを無視するには

  1. eb init でプロジェクトフォルダを初期化します。

  2. eb create コマンドを実行して、環境を作成します。

  3. eb config save コマンドを実行して、設定テンプレートをローカルに保存します。次の例では、--cfg オプションを使用して、設定の名前が指定されています。

    $ eb config save --cfg 01-base-state Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
  4. 保存した設定ファイルをテキストエディタで開きます。

  5. OptionSettings > aws:elasticbeanstalk:healthreporting:system: で、設定する各拡張ヘルスルールを一覧表示する ConfigDocument キーを追加します。次の ConfigDocument は、アプリケーション HTTP 4xx ステータスコード (カスタマイズのために現在利用できるルールのみ) を無効にします。

    OptionSettings: ... aws:elasticbeanstalk:healthreporting:system: ConfigDocument: Rules: Environment: Application: ApplicationRequests4xx: Enabled: false Version: 1 SystemType: enhanced ...

    注記

    同じ ConfigDocument オプション設定で、RulesCloudWatchMetrics を組み合わせることができます。CloudWatchMetrics については、環境の Amazon CloudWatch カスタムメトリクスのパブリッシュ で説明しています。

    以前に CloudWatchMetrics を有効にしている場合、eb config save コマンドを使用して取得される設定ファイルには、既に ConfigDocument セクションに CloudWatchMetrics キーがあります。削除しないでください。同じ ConfigDocument オプション値に Rules セクションを追加します。

  6. 設定ファイルを保存し、テキストエディタを閉じます。この例では、更新した設定ファイルは、ダウンロードした設定ファイルとは異なる名前 (02-cloudwatch-enabled.cfg.yml) で保存されています。このファイルがアップロードされると、別の保存済み設定が作成されます。ダウンロードしたファイル同じ名前を使用すると、新しいキーペアを作成せずに既存の設定を上書きできます。

  7. eb config put コマンドを使用して、更新した設定ファイルを Elastic Beanstalk にアップロードします。

    $ eb config put 02-cloudwatch-enabled

    保存した設定に対して eb config get コマンドと put コマンドを使用するときは、ファイル名の拡張子を含めないでください。

  8. 実行中の環境に、保存済みの設定を適用します。

    $ eb config --cfg 02-cloudwatch-enabled

    --cfg オプションは、環境に適用される名前付き設定ファイルを指定します。設定ファイルはローカルまたは Elastic Beanstalk に保存できます。指定した名前を持つ設定ファイルが両方の場所に存在する場合、EB CLI はローカルファイルを使用します。

設定ドキュメントを使用して拡張ヘルスルールを設定する

拡張ヘルスルールの設定 (config) ドキュメントは、設定するルールを一覧表示した JSON ドキュメントです。次の例は、アプリケーション HTTP 4xx ステータスコード (カスタマイズのために現在利用できるルールのみ) を無効にする設定ドキュメントを示しています。

{ "Rules": { "Environment": { "Application": { "ApplicationRequests4xx": { "Enabled": false } } } }, "Version": 1 }

AWS CLI では、JSON オブジェクトであるオプション設定引数の Value キーの値としてドキュメントを渡します。この場合、埋め込まれているドキュメントの引用符はエスケープする必要があります。次のコマンドは、設定が有効であるかどうかを確認します。

$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[ { "Namespace": "aws:elasticbeanstalk:healthreporting:system", "OptionName": "ConfigDocument", "Value": "{\"Rules\": { \"Environment\": { \"Application\": { \"ApplicationRequests4xx\": { \"Enabled\": false } } } }, \"Version\": 1 }" } ]'

YAML の .ebextensions 設定ファイルの場合は、JSON ドキュメントをそのまま提供できます。

option_settings: - namespace: aws:elasticbeanstalk:healthreporting:system option_name: ConfigDocument value: { "Rules": { "Environment": { "Application": { "ApplicationRequests4xx": { "Enabled": false } } } }, "Version": 1 }