翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
環境の拡張ヘルスルールの設定
AWS Elastic Beanstalk 拡張ヘルスレポートは、環境のヘルスを判断するための一連のルールに依存しています。これらのルールの一部は、特定のアプリケーションに適していない場合があります。一般的な例をいくつか以下に示します。
-
クライアント側のテストツールを使用する。この場合、HTTP クライアント (4xx) エラーが頻発することが予想されます。
-
AWS WAF を環境の Application Load Balancer と併用して不要な着信トラフィックをブロックします。この場合、Application Load Balancer は着信メッセージを拒否するたびに HTTP 403 を返します。
デフォルトでは、Elastic Beanstalk はアプリケーションのすべての HTTP 4xx エラーを反映して環境のヘルスを判断します。これにより、環境のヘルスステータスが [OK] から [Warning] (警告)、[Degraded] (低下)、または [Severe] (重大) へと、エラー率に応じて変更されます。上のような例に正しく対処するために、Elastic Beanstalk ではいくつかの拡張ヘルスルールを設定できます。環境のインスタンスでアプリケーションの HTTP 4xx エラーを無視するか、環境のロードバランサーから返された HTTP 4xx エラーを無視するかを選択できます。このトピックでは、これらの設定変更を行う方法について説明します。
注記
現在利用できる拡張ヘルスルールのカスタマイズは以上のみです。4xx 以外の HTTP エラーを無視するように拡張ヘルスを設定することはできません。
Elastic Beanstalk コンソールを使用した拡張ヘルスレポートの設定
Elastic Beanstalk コンソールを使用して環境で拡張ヘルスルールを設定できます。
Elastic Beanstalk コンソールを使用して HTTP 4xx ステータスコードのチェックを設定するには
Elastic Beanstalk コンソール
を開き、[Regions] (リージョン) リストで AWS リージョンを選択します。 -
ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。
注記
環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。
ナビゲーションペインで、[設定] を選択します。
-
[モニタリング] 設定カテゴリで、[編集] を選択します。
-
[Health monitoring rule customization] で、該当する [Ignore] オプションを有効または無効にします。
-
ページの最下部で [適用] を選択し変更を保存します。
EB CLI を使用して拡張ヘルスルールを設定する
EB CLI を使用すると、環境の設定をローカルに保存し、拡張ヘルスルールを設定するエントリを追加してから、その設定を Elastic Beanstalk にアップロードすることによって、拡張ヘルスルールを設定できます。保存した設定は、環境を作成する前または作成した後に環境に適用できます。
EB CLI および保存済みの設定を使用して HTTP 4xx ステータスコードのチェックを設定するには
-
eb init でプロジェクトフォルダを初期化します。
-
eb create コマンドを実行して、環境を作成します。
-
eb config save コマンドを実行して、設定テンプレートをローカルに保存します。次の例では、
--cfg
オプションを使用して、設定の名前が指定されています。$
eb config save --cfg
Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml01-base-state
-
保存した設定ファイルをテキストエディタで開きます。
-
OptionSettings
>aws:elasticbeanstalk:healthreporting:system:
で、設定する各拡張ヘルスルールを一覧表示するConfigDocument
キーを追加します。次のConfigDocument
では、ロードバランサーの HTTP 4xx コードのチェックを有効にしたままで、アプリケーションの HTTP 4xx ステータスコードのチェックを無効にします。OptionSettings: ... aws:elasticbeanstalk:healthreporting:system:
ConfigDocument: Rules: Environment: Application: ApplicationRequests4xx: Enabled: false ELB: ELBRequests4xx: Enabled: true Version: 1
SystemType: enhanced ...注記
同じ
ConfigDocument
オプション設定で、Rules
とCloudWatchMetrics
を組み合わせることができます。CloudWatchMetrics
については、「環境の Amazon CloudWatch カスタムメトリクスの発行」で説明しています。以前に
CloudWatchMetrics
を有効にしている場合、eb config save コマンドを使用して取得した設定ファイルには、すでにConfigDocument
キーがCloudWatchMetrics
セクションにあります。削除しないでください。同じConfigDocument
オプション値にRules
セクションを追加します。 -
設定ファイルを保存し、テキストエディタを閉じます。この例では、更新した設定ファイルは、ダウンロードした設定ファイルとは異なる名前 (
02-cloudwatch-enabled.cfg.yml
) で保存されています。このファイルがアップロードされると、別の保存済み設定が作成されます。ダウンロードしたファイル同じ名前を使用すると、新しいキーペアを作成せずに既存の設定を上書きできます。 -
eb config put コマンドを使用して、更新した設定ファイルを Elastic Beanstalk にアップロードします。
$
eb config put
02-cloudwatch-enabled
保存した設定に対して eb config
get
コマンドとput
コマンドを使用するときは、ファイル名の拡張子を含めないでください。 -
実行中の環境に、保存済みの設定を適用します。
$
eb config --cfg
02-cloudwatch-enabled
--cfg
オプションは、環境に適用される名前付き設定ファイルを指定します。設定ファイルはローカルまたは Elastic Beanstalk に保存できます。指定した名前を持つ設定ファイルが両方の場所に存在する場合、EB CLI はローカルファイルを使用します。
設定ドキュメントを使用して拡張ヘルスルールを設定する
拡張ヘルスルールの設定 (config) ドキュメントは、設定するルールを一覧表示した JSON ドキュメントです。
次の例に示す設定ドキュメントでは、アプリケーションの HTTP 4xx ステータスコードのチェックを無効にし、ロードバランサーの HTTP 4xx ステータスコードのチェックを有効にします。
{
"Rules": {
"Environment": {
"Application": {
"ApplicationRequests4xx": {
"Enabled": false
}
},
"ELB": {
"ELBRequests4xx": {
"Enabled": true
}
}
}
},
"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 } }, \"ELB\": { \"ELBRequests4xx\": {\"Enabled\": true } } } }, \"Version\": 1 }"
}
]'
YAML の .ebextensions
設定ファイルの場合は、JSON ドキュメントをそのまま提供できます。
option_settings:
- namespace: aws:elasticbeanstalk:healthreporting:system
option_name: ConfigDocument
value: {
"Rules": {
"Environment": {
"Application": {
"ApplicationRequests4xx": {
"Enabled": false
}
},
"ELB": {
"ELBRequests4xx": {
"Enabled": true
}
}
}
},
"Version": 1
}