翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
環境の拡張ヘルスルールの設定
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 コンソール
を開き、リージョンリストで を選択します 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 --cfgConfiguration 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: 1SystemType: 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 put02-cloudwatch-enabled保存した設定に対して eb config
getコマンドとputコマンドを使用するときは、ファイル名の拡張子を含めないでください。 -
実行中の環境に、保存済みの設定を適用します。
$eb config --cfg02-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、 ドキュメントをオプション設定引数のValueキーの値として渡します。これは、それ自体が JSON オブジェクトです。この場合、埋め込まれているドキュメントの引用符はエスケープする必要があります。次のコマンドは、設定が有効であるかどうかを確認します。
$ 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
}