View a markdown version of this page

AWSSupport-TroubleshootALB5XXErrors - AWS Systems Manager オートメーションランブックリファレンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 の料金」および「Amazon Simple Storage Service の料金」を参照してください。

仕組み

ランブックは、以下の検証および分析ステップを実行します。

  • 指定された 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:ListBucket

  • s3:GetObject

  • s3:GetBucketPolicyStatus

  • s3:GetBucketPublicAccessBlock

  • s3:ListAllMyBuckets

  • elasticloadbalancing:DescribeTargetGroups

  • elasticloadbalancing:DescribeTargetHealth

  • elasticloadbalancing:DescribeLoadBalancers

  • elasticloadbalancing:DescribeTargetGroupAttributes

  • elasticloadbalancing:DescribeLoadBalancerAttributes

  • elasticloadbalancing:DescribeListeners

  • elasticloadbalancing:DescribeRules

  • ec2:DescribeSubnets

  • ec2:DescribeInstances

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkAcls

  • ec2:DescribeRouteTables

  • cloudwatch:GetMetricData

  • cloudtrail:LookupEvents

  • wafv2:ListWebACLs

  • wafv2:ListResourcesForWebACL

  • lambda: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": "*" } ] }
指示

次の手順に従って自動化を設定します。

  1. Systems Manager のドキュメントで AWSSupport-TroubleshootALB5XXErrors を開きます。

  2. [Execute automation (自動化の実行)] を選択してください。

  3. 入力パラメータには、次のように入力します。

    • 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

  4. [実行] を選択してください。

  5. 自動化が開始されます。

  6. ドキュメントは以下のステップを実行します。

    • 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:

      ホットスポットステータス、単一のアベイラビリティーゾーンの異常、エラー診断、推奨事項など、前のステップの結果から統合レポートを生成します。

  7. 完了したら、出力セクションで実行の詳細な結果を確認します。

リファレンス

Systems Manager Automation