翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Application Load Balancer のヘルスチェックログを有効にする
ロードバランサーのヘルスチェックログを有効にするときは、ロードバランサーがログを保存する S3 バケットの名前を指定する必要があります。このバケットは、バケットにアクセスログを書き込む許可を Elastic Load Balancing に付与するバケットポリシーが必要です。
タスク
ステップ 1: S3 バケットを作成する
ヘルスチェックログを有効にする場合は、ヘルスチェックログの S3 バケットを指定する必要があります。既存のバケットを使用するか、ヘルスチェックログ専用のバケットを作成できます。バケットは、次の要件を満たしている必要があります。
要件
-
バケットは、ロードバランサーと同じリージョンに配置されている必要があります。バケットとロードバランサーは、異なるアカウントにより所有できます。
-
サポートされている唯一のサーバー側の暗号化オプションは、Amazon S3 マネージドキー (SSE-S3) です。詳細については、 「 Amazon S3 マネージド暗号化キー (SSE-S3)」を参照してください。
Amazon S3 コンソールを使用して S3 バケットを作成するには
-
Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
[バケットを作成] を選択します。
-
[バケットを作成] ページで、次の操作を実行します。
-
[バケット名] にバケットの名前を入力します。この名前は、Amazon S3 内で既存の、すべてのバケット名の中で一意である必要があります。リージョンによっては、バケット名にその他の制限が設けられていることがあります。詳細については、Amazon S3 ユーザーガイドの「バケットの制約と制限」を参照してください。
-
[AWS リージョン] で、ロードバランサーを作成したリージョンを選択します。
-
[デフォルトの暗号化] には、[Amazon S3 マネージドキー (SSE-S3)] を選択します。
-
[バケットを作成] を選択します。
-
ステップ 2: S3 バケットにポリシーをアタッチする
S3 バケットには、ヘルスチェックログをバケットに書き込むアクセス許可を Elastic Load Balancing に付与するバケットポリシーが必要です。バケットポリシーは、バケットのアクセス許可を定義するためにアクセスポリシー言語で記述された JSON ステートメントのコレクションです。各ステートメントには 1 つのアクセス許可に関する情報が含まれ、一連のエレメントが使用されます。
既にポリシーがアタッチされている既存のバケットを使用している場合は、Elastic Load Balancing ヘルスチェックログの ステートメントをポリシーに追加できます。その場合、生成されたアクセス許可のセットを評価して、ヘルスチェックログのバケットへのアクセスを必要とするユーザーに適していることを確認することをお勧めします。
このポリシーは、指定されたログ配信サービスに許可を付与します。
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logdelivery.elasticloadbalancing.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*" } ] }
Resource に、ポリシー例に示す形式を使用して、アクセスログの場所の ARN を入力します。S3 バケット ARN のリソースパスには、ロードバランサーを持つアカウントのアカウント ID を必ず含めてください。これにより、指定されたアカウントのロードバランサーのみが S3 バケットにアクセスログを書き込むことができます。
指定する ARN は、ステップ 3 でアクセスログを有効にするときにプレフィックスを含めるかどうかによって変わってきます。
プレフィックスを含む S3 バケット ARN の例
S3 バケット名は amzn-s3-demo-logging-bucket で、プレフィックスは logging-prefix です。
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*AWS GovCloud (US) – 次の例では、 AWS GovCloud (US) Regionsの ARN 構文を使用します。
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
プレフィックスを持たない S3 バケット ARN の例
S3 バケット名は amzn-s3-demo-logging-bucket です。S3 バケット ARN にプレフィックス部分はありません。
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*AWS GovCloud (US) – 次の例では、 AWS GovCloud (US) Regionsの ARN 構文を使用します。
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*以前は、2022 年 8 月より前に利用可能であったリージョンでは、リージョンに固有の Elastic Load Balancing アカウントにアクセス許可を付与するポリシーが必要でした。このレガシーポリシーは引き続きサポートされていますが、上記の新しいポリシーに置き換えることをお勧めします。レガシーポリシー (ここには示されていません) を引き続き使用してもかまいません。
参考までに、レガシーポリシーの Principal で指定する Elastic Load Balancing アカウントの ID を次に示します。このリストに含まれていないリージョンは、レガシーポリシーをサポートしていないことに注意してください。
-
米国東部 (バージニア北部) – 127311923021
-
米国東部 (オハイオ) — 033677994240
-
米国西部 (北カリフォルニア) – 027434742980
-
米国西部 (オレゴン) — 797873946194
-
アフリカ (ケープタウン) - 098369216593
-
アジアパシフィック (香港) - 754344448648
-
アジアパシフィック (ジャカルタ) – 589379963580
-
アジアパシフィック (ムンバイ) – 718504428378
-
アジアパシフィック (大阪) – 383597477331
-
アジアパシフィック (ソウル) – 600734575887
-
アジアパシフィック (シンガポール) – 114774131450
-
アジアパシフィック (シドニー) — 783225319266
-
アジアパシフィック (東京) — 582318560864
-
カナダ (中部) – 985666609251
-
欧州 (フランクフルト) – 054676820928
-
欧州 (アイルランド) – 156460612806
-
欧州 (ロンドン) – 652711504416
-
ヨーロッパ (ミラノ) - 635631232127
-
欧州 (パリ) – 009996457667
-
欧州 (ストックホルム) – 897822967062
-
中東 (バーレーン) — 076674570225
-
南米 (サンパウロ) – 507241528517
-
AWS GovCloud (米国東部) – 190560391635
-
AWS GovCloud (米国西部) – 048591011584
次のポリシーを使用して、指定されたログ配信サービスに許可を付与します。Outposts ゾーンのロードバランサーにはこのポリシーを使用します。
{ "Effect": "Allow", "Principal": { "Service": "logdelivery.elb.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*" "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }
Resource には、アクセスログの場所の ARN を入力します。S3 バケット ARN のリソースパスには、ロードバランサーを持つアカウントのアカウント ID を必ず含めてください。これにより、指定されたアカウントのロードバランサーのみが S3 バケットにアクセスログを書き込むことができます。
指定する ARN は、ステップ 3 でアクセスログを有効にするときにプレフィックスを含めるかどうかによって変わってきます。
プレフィックスを含む S3 バケット ARN の例
S3 バケット名は amzn-s3-demo-logging-bucket で、プレフィックスは logging-prefix です。
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
プレフィックスを持たない S3 バケット ARN の例
S3 バケット名は amzn-s3-demo-logging-bucket です。S3 バケット ARN にプレフィックス部分はありません。
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*セキュリティを強化するには、正確な S3 バケット ARN を使用します。
-
S3 バケット ARN だけでなく、完全なリソースパスを使用します。
-
S3 バケット ARN のアカウント ID 部分を含めます。
-
S3 バケット ARN のアカウント ID 部分にワイルドカード (*) を使用しないでください。
バケットポリシーを作成したら、Amazon S3 コンソールや AWS CLI コマンドなどの Amazon S3 インターフェイスを使用して、バケットポリシーを S3 バケットにアタッチします。
ステップ 3: ヘルスチェックログを設定する
次の手順を使用して、ログファイルをキャプチャして S3 バケットに配信するようにヘルスチェックログを設定します。
要件
バケットはステップ 1 で説明した要件を満たしている必要があり、ステップ 2 で説明したようにバケットポリシーをアタッチする必要があります。プレフィックスを指定する場合、「AWSLogs」を含めることはできません。
ヘルスチェックログの S3 バケットを管理するには
ヘルスチェックログ用に設定したバケットを削除する前に、ヘルスチェックログを必ず無効にしてください。そうしないと、同じ名前と必要なバケットポリシーを持つ新しいバケットがあり、所有していない AWS アカウント に作成されている場合、Elastic Load Balancing はロードバランサーのヘルスチェックログをこの新しいバケットに書き込む可能性があります。
ステップ 4: バケット許可を確認
ロードバランサーのヘルスチェックログを有効にすると、Elastic Load Balancing は S3 バケットを検証し、テストファイルを作成して、バケットポリシーで必要なアクセス許可が指定されていることを確認します。Amazon S3 コンソールを使用して、テストファイルが作成されたことを確認できます。テストファイルは実際のヘルスチェックログファイルではなく、レコードの例は含まれていません。
Elastic Load Balancing が S3 バケットにテストファイルを作成したことを確認するには
Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
ヘルスチェックログに指定したバケットの名前を選択します。
-
テストファイル「
ELBHealthCheckLogTestFile」に移動します。場所は、プレフィックスを使用しているかどうかによって異なります。-
プレフィックスが付いた場所:
amzn-s3-demo-logging-bucket/prefix/AWSLogs/123456789012/ELBHealthCheckLogTestFile -
プレフィックスのない場所:
amzn-s3-demo-logging-bucket/AWSLogs/123456789012/ELBHealthCheckLogTestFile
-
トラブルシューティング
アクセス拒否エラーが表示される場合は、以下の原因が考えられます。
-
バケットポリシーは、バケットにヘルスチェックログを書き込むアクセス許可を Elastic Load Balancing に付与しません。そのリージョンに対して正しいバケットポリシーを使用していることを確認してください。リソース ARN が、ヘルスチェックログを有効にしたときに指定したのと同じバケット名を使用していることを確認します。ヘルスチェックログを有効にしたときにプレフィックスを指定しなかった場合は、リソース ARN にプレフィックスが含まれていないことを確認します。
-
バケットが、サポートされていないサーバー側の暗号化オプションを使用している。バケットは、Amazon S3 マネージドキー (SSE-S3) を使用する必要があります。