翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSSupport-TroubleshootELBHealthChecks
説明
AWSSupport-TroubleshootELBHealthChecks ランブックは、関連する Amazon CloudWatch (CloudWatch) メトリクスを分析し、ネットワーク接続を検証し、ターゲットインスタンスで診断コマンドを実行することで、 AWS Elastic Load Balancing (Elastic Load Balancing) のヘルスチェック問題のトラブルシューティングに役立ちます。
このランブックでは、次のユースケースに対処します。
ロードバランサーまたはターゲットグループのターゲットインスタンス内に異常なインスタンスがあります。
異常なインスタンスはありませんが、CloudWatch メトリクスは のデータポイントを示します。
UnHealthyHostCounts
重要
重要な考慮事項:
自動化は、インスタンスタイプのターゲットのトラブルシューティングに焦点を当てています。
トラブルシューティングに使用できるインスタンスの最大数は 50 です。
インスタンスレベルで診断コマンドを実行できるようにするには、ターゲットインスタンスを Systems Manager で管理する必要があります。
S3BucketNameパラメータはオプションですが、特定の診断結果が指定された Amazon S3 バケットに直接アップロードされ、自動化出力に表示されません。IPv6 ネットワーク接続のトラブルシューティングはサポートされていません。
ドキュメントタイプ
オートメーション
[所有者]
Amazon
[Platforms] (プラットフォーム)
/
必要な IAM アクセス許可
AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
elasticloadbalancing:DescribeLoadBalancerselasticloadbalancing:DescribeTargetGroupselasticloadbalancing:DescribeTargetHealthelasticloadbalancing:DescribeInstanceHealthec2:DescribeInstancesec2:DescribeNetworkInterfacesec2:DescribeSecurityGroupsec2:DescribeSubnetscloudwatch:GetMetricStatisticsssm:SendCommandssm:GetCommandInvocationssm:DescribeInstanceInformations3:GetBucketLocations3:GetBucketAcls3:PutObject
ポリシーの例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:DescribeInstanceHealth", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "cloudwatch:GetMetricStatistics", "ssm:SendCommand", "ssm:GetCommandInvocation", "ssm:DescribeInstanceInformation", "s3:GetBucketLocation", "s3:GetBucketAcl", "s3:PutObject" ], "Resource": "*" } ] }
指示
次の手順に従って自動化を設定します。
-
ドキュメントの Systems Manager
AWSSupport-TroubleshootELBHealthChecksで に移動します。 -
[Execute automation] (オートメーションを実行) を選択します。
-
入力パラメータには、次のように入力します。
-
AutomationAssumeRole(オプション):
-
説明: (オプション) SSM Automation が AWS Identity and Access Management ユーザーに代わってアクションを実行できるようにする (IAM) ロールの Amazon リソースネーム (ARN)。ロールが指定されていない場合、SSM Automation はこのランブックを開始するユーザーのアクセス許可を使用します。
-
型:
AWS::IAM::Role::Arn
-
-
LoadBalancerOrTargetGroupName (必須):
説明: (必須) Classic Load Balancer の名前、または Application Load Balancer または Network Load Balancer に関連付けられたターゲットグループの名前。
型:
String-
許可されたパターン:
^[a-zA-Z0-9-]+$
-
ExecutionMode (必須):
説明: (必須) オートメーション実行モードを制御します。
Completeは、Amazon EC2 インスタンスで runCommands を含むすべてのステップを実行します。 は、インスタンスでコマンドを実行することを除くすべてのステップSkipRunCommandsを実行します。型:
String-
使用できる値:
[Complete, SkipRunCommands]
-
S3BucketName (オプション):
説明: (オプション) トラブルシューティングログをアップロードするアカウントの Amazon S3 バケットの名前。
型:
String-
デフォルト:
""
-
-
[実行] を選択します。
-
自動化が開始されます。
-
ドキュメントは以下のステップを実行します。
-
getBucketPublicStatus:
ターゲット Amazon S3 バケットがオブジェクトへの読み取りまたは書き込みパブリックアクセスを許可する可能性があるかどうかを確認します。
-
getLoadBalancerDetails:
ロードバランサータイプを識別し、統合ロードバランサーの詳細オブジェクトを返します。
-
checkLoadBalancerType:
ロードバランサーが存在するかどうかを確認します。
-
getTargets:
さまざまなタイプのロードバランサーに基づいて、クエリAPIs を記述し、正常なターゲットと異常なターゲットの詳細のマップを返します。
-
checkCloudWatchMetrics:
CloudWatch メトリクス
UnHealthyHostCountsをチェックHealthyHostCountsし、CloudWatch リンクを生成します。 -
checkUnhealthyReasons:
異常な理由をチェックし、ターゲットをフィルタリングします。
-
checkConnectivity:
ロードバランサーとそのインスタンス間の接続をチェックします。
-
runCommands:
インスタンスでトラブルシューティングコマンドを実行し、バケット名が指定されている場合は出力をアップロードします。
-
generateReport:
前のステップの出力に基づいて最終レポートを生成し、指定されている場合はレポートを Amazon S3 バケットにアップロードします。
-
-
完了したら、出力セクションで実行の詳細な結果を確認します。
診断コマンド
ランブックは、インスタンスで次の診断コマンドを実行します。
Linux シェル: top、free、ss、curl、iptables、tcpdump
Windows PowerShell: Get-CimInstance、Get-NetFirewallProfile、Get-NetFirewallRule、Invoke-WebRequest、netstat、netsh、pktmon
リファレンス
Systems Manager Automation