翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSSupport-TroubleshootALB5XXErrors
説明
AWSSupport-TroubleshootALB5XXErrors ランブックは、Application Load Balancer の HTTP 5XX エラーを診断およびトラブルシューティングします。Amazon CloudWatch (CloudWatch) メトリクスと Application Load Balancer アクセスログを分析して根本原因を特定し、実用的な推奨事項を提供します。ランブックでは、次の機能について説明します。
トラフィックパターン分析: CloudWatch メトリクスを使用して、アベイラビリティーゾーン間で不均一なトラフィック分散を検出することで、ホットスポットと単一のアベイラビリティーゾーンの異常を特定します。
アクセスログ診断: 設定された Amazon S3 バケットからログファイルを取得して Application Load Balancer アクセスログを処理し、詳細なトラブルシューティングのための特定のエラーパターン、エラー理由、詳細な診断情報を抽出します。
エラー固有の分析: 各 HTTP 5XX エラータイプのターゲット診断を提供します。
HTTP 500: 認証の失敗、WAF 接続の問題、IDP エンドポイントの問題。
HTTP 502: ターゲット接続の問題、 AWS Lambda (Lambda) 関数のエラー、TLS ネゴシエーションの失敗、ターゲットの登録解除のシナリオ。
HTTP 503: ターゲットグループとターゲット登録の問題が空です。
HTTP 504: 接続タイムアウト、ベースライン比較履歴によるターゲット応答時間の異常、包括的なネットワーク接続評価。
その他の 5XX エラー: 標準エラーカテゴリでカバーされていないまれな 5XX ステータスコードとエッジケースの包括的な分析。
ネットワーク接続の詳細: HTTP 504 エラーの場合、 は、同じ AWS リージョンとアカウントの Application Load Balancer とそのターゲット間のセキュリティグループルール、ネットワーク ACLs、ルートテーブル設定を評価します。
アダプティブデータソースの選択: 詳細なエラー診断に使用できる場合はアクセスログ分析を優先し、ログが使用できない場合や不完全な場合は CloudWatch メトリクスに自動的にフォールバックします。
制限事項
このランブックには以下の制限があります。
接続チェックの制限: ネットワーク接続の評価は、Application Load Balancer と同じ AWS リージョンとアカウントのターゲットに対してのみ実行されます。クロスアカウントターゲットまたはオンプレミスターゲットは、一般的な接続ガイダンスを受け取ります。
アクセスログ処理時間の制限: アクセスログ分析は 9 分間の処理ウィンドウに制限されます。超過した場合、分析は停止し、これまでに処理されたログに基づいて結果を提供します。完全なログ分析の時間枠を短縮します。
Amazon S3 バケットのセキュリティと場所の要件: アクセスログ処理では、Amazon S3 バケットがセキュリティと場所の基準を満たす必要があります。Amazon S3 バケットがパブリックにアクセスできる場合、ランブックはアクセスログ処理をスキップします。パブリックバケットのステータスは、バケットポリシーまたはパブリックアクセスブロック設定によって決まります。また、Amazon S3 バケットが Application Load Balancer と同じ AWS アカウントとリージョンにない場合、ランブックは処理をスキップします。これらのチェックが失敗すると、ランブックは自動的に CloudWatch メトリクスベースの分析にフォールバックします。
フォールバックとしてのメトリクス: アクセスログが有効になっていないか、ログ処理が失敗または不完全な場合、ランブックは自動的に CloudWatch メトリクスベースの分析にフォールバックし、詳細な診断情報も少なくなります。アクセスログがないと、根本原因検出の精度に影響する可能性があります。
履歴データの依存関係: HTTP 504 レスポンスタイムの異常検出には、ベースライン比較に 7 日間の履歴データが必要です。履歴データが限られていると、検出精度に影響する可能性があります。
追加料金
このランブックを実行すると、Amazon CloudWatch からメトリクスがクエリされ、アクセスログが有効になると、 は Amazon S3 からオブジェクトを取得します。分析中にクエリされたデータに対して、標準の CloudWatch および Amazon S3 料金が AWS アカウントに適用される場合があります。料金の詳細については、Amazon CloudWatch の料金
仕組み
ランブックは、以下の検証および分析ステップを実行します。
指定された Application Load Balancer が存在することを確認し、アイドルタイムアウトやアクセスログ設定などの Application Load Balancer 属性を収集します。
CloudWatch メトリクスを使用して、ホットスポットと単一のアベイラビリティーゾーンエラーの異常を検出します。
アクセスログが有効で、バケットがセキュリティと場所の要件を満たしている場合、設定された Amazon S3 バケットから Application Load Balancer アクセスログを取得して処理します。
利用可能な場合はアクセスログエントリを使用するか、CloudWatch メトリクスをフォールバックとして使用して、各 HTTP 5XX エラーコード (500、502、503、504 など) を診断します。
HTTP 504 エラーの場合、 は Application Load Balancer とそのターゲット間のセキュリティグループルール、ネットワーク ACLs、ルートテーブル設定を評価します。
結果をレコメンデーションおよび関連するリファレンスを含むレポートに統合します。
ドキュメントタイプ
オートメーション
[所有者]
Amazon
[Platforms] (プラットフォーム)
/
必要な IAM アクセス許可
AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
s3:ListBuckets3:GetObjects3:GetBucketPolicyStatuss3:GetBucketPublicAccessBlocks3:ListAllMyBucketselasticloadbalancing:DescribeTargetGroupselasticloadbalancing:DescribeTargetHealthelasticloadbalancing:DescribeLoadBalancerselasticloadbalancing:DescribeTargetGroupAttributeselasticloadbalancing:DescribeLoadBalancerAttributeselasticloadbalancing:DescribeListenerselasticloadbalancing:DescribeRulesec2:DescribeSubnetsec2:DescribeInstancesec2:DescribeNetworkInterfacesec2:DescribeSecurityGroupsec2:DescribeNetworkAclsec2:DescribeRouteTablescloudwatch:GetMetricDatacloudtrail:LookupEventswafv2:ListWebACLswafv2:ListResourcesForWebACLlambda:GetFunctionConfiguration
IAM ポリシーの例:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ReadAccess", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "ELBReadAccess", "Effect": "Allow", "Action": [ "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetGroupAttributes", "elasticloadbalancing:DescribeLoadBalancerAttributes", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeRules" ], "Resource": "*" }, { "Sid": "EC2ReadAccess", "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkAcls", "ec2:DescribeRouteTables" ], "Resource": "*" }, { "Sid": "MonitoringReadAccess", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData", "cloudtrail:LookupEvents" ], "Resource": "*" }, { "Sid": "WAFReadAccess", "Effect": "Allow", "Action": [ "wafv2:ListWebACLs", "wafv2:ListResourcesForWebACL" ], "Resource": "*" }, { "Sid": "LambdaReadAccess", "Effect": "Allow", "Action": [ "lambda:GetFunctionConfiguration" ], "Resource": "*" } ] }
指示
次の手順に従って自動化を設定します。
-
Systems Manager のドキュメントで AWSSupport-TroubleshootALB5XXErrors
を開きます。 -
[Execute automation (自動化の実行)] を選択してください。
-
入力パラメータには、次のように入力します。
-
AutomationAssumeRole (必須):
Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。ロールを指定しない場合、Systems Manager Automation はこのランブックを開始するユーザーのアクセス許可を使用します。
-
ALBArn (必須):
調査する Application Load Balancer の ARN。例えば、
arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/my-alb/50dc6c495c0c9188。 -
IssueStartTime (必須):
UTC での問題の開始時刻。ISO 8601 タイムスタンプ形式 () を使用します
YYYY-MM-DDTHH:MM:SSZ。例えば、1970-01-01T00:00:00Z。 -
IssueEndTime (必須):
UTC での問題の終了時刻。ISO 8601 タイムスタンプ形式 () を使用します
YYYY-MM-DDTHH:MM:SSZ。例えば、1970-01-01T00:00:00Z。
-
-
[実行] を選択してください。
-
自動化が開始されます。
-
ドキュメントは以下のステップを実行します。
-
RunInitialChecks:Application Load Balancer で初期チェックを実行します。初期チェックには、Application Load Balancer の存在の確認、ホットスポットと単一のアベイラビリティーゾーンエラーの検出、HTTP エラーの詳細の収集、アクセスログ設定の確認が含まれます。
-
ProcessAccessLogs:Amazon S3 バケットから関連する Application Load Balancer アクセスログファイルを取得し、それらを処理して一意のエラーの理由とコードを特定します。アクセスログファイルのサブセットのみが、識別された時間範囲で処理されます。処理時間が 9 分の制限を超えると、残りのログは処理されません。
-
HTTP500ErrorIdentification:利用可能な場合は、CloudWatch メトリクスまたは解析されたアクセスログを使用して、Application Load Balancer が生成した HTTP 500 エラーのエラー理由を特定します。
-
HTTP502ErrorIdentification:利用可能な場合は、CloudWatch メトリクスまたは解析されたアクセスログを使用して、Application Load Balancer が生成した HTTP 502 エラーのエラー理由を特定します。
-
HTTP503ErrorIdentification:CloudWatch メトリクスを使用して、Application Load Balancer が生成した HTTP 503 エラーのエラー理由を特定します。
-
HTTP504ErrorIdentification:利用可能な場合は、CloudWatch メトリクスまたは解析されたアクセスログを使用して、Application Load Balancer が生成した HTTP 504 エラーのエラー理由を特定します。HTTP 504 エラーの場合、このステップでは、Application Load Balancer とそのターゲット間のセキュリティグループルール、ネットワーク ACLs、ルートテーブル設定も評価されます。
-
OtherHTTPErrorIdentification:CloudWatch メトリクスまたは解析されたアクセスログのいずれかを使用して、Application Load Balancer によって生成された分類されていない HTTP エラーのエラー理由を特定します。
-
GenerateReport:ホットスポットステータス、単一のアベイラビリティーゾーンの異常、エラー診断、推奨事項など、前のステップの結果から統合レポートを生成します。
-
-
完了したら、出力セクションで実行の詳細な結果を確認します。
リファレンス
Systems Manager Automation