翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSSupport-TroubleshootGlueConnection
説明
AWSSupport-TroubleshootGlueConnections ランブックは、 AWS Glue 接続の問題のトラブルシューティングに役立ちます。テストされた接続のターゲットは JDBC 接続を介して到達する必要があり、Amazon Relational Database Service (Amazon RDS) クラスター/インスタンス、Amazon Redshift クラスター、または JDBC を介してアクセス可能なその他のターゲットのいずれかになります。最初の 2 つのケースでは、Reachability Analyzer ツールを使用して、ソース (AWS Glue) とターゲット (Amazon RDS または Amazon Redshift) 間の接続が付与されているかどうかを判断します。
接続のターゲットが Amazon RDS でも Amazon Redshift でもない場合、接続と同じサブネット (ネットワークプレゼンスポイント) に AWS Lambda 関数を作成し、ターゲット名が解決可能かどうか、ターゲットポートで到達可能かどうかをチェックすることで、 AWS Glue 接続がテストされます。
重要
Reachability Analyzer チェックを実行するために、Elastic Network Interface は接続の各データソースサブネットに作成されます。これらのサブネットに十分な空き IPs があり、この自動化を実行する前に 1 つの IP の消費がワークロードに影響を与えないことを確認してください。
重要
この自動化によって作成されたすべてのリソースにはタグが付けられ、簡単に見つけることができます。使用されるタグは次のとおりです。
-
AWSSupport-TroubleshootGlueConnection: true -
AutomationExecutionId:Amazon EC2 Systems Manager 実行 ID
動作の仕組み
ランブックは次のステップを実行します。
-
AWS Glue 接続チェックのソース情報 (サブネットとセキュリティグループ) を取得するための接続について説明します。
-
JDBC URL で参照されるデータソース、または存在する場合は および
DatasourceSubnetsパラメータから、ターゲット情報 (サブネットDatasourceSecurityGroupsとセキュリティグループ) を取得します。 -
JDBC URL に存在するデータソースが Amazon RDS インスタンスまたはクラスター、または Amazon Redshift クラスターである場合、この自動化は、前のステップで収集されたソース情報とターゲット情報の両方を使用して ENIs を作成し、Reachability Analyzer を使用してそれらの間の接続チェックを実行します。
-
Lambda 関数 (この自動化のコンテキストではネットワークのプレゼンスポイント) を使用して、L4 接続と名前解決のチェックを実行します。
-
同じ Lambda 関数を使用して、Amazon S3 エンドポイントに対してチェックを実行します。
-
Policy Simulator は、接続で使用される IAM ロールに必要なアクセス許可があるかどうかを判断するために使用されます。
-
自動化は、接続で使用されるセキュリティグループが想定された設定になっているかどうかを確認します。
-
テスト接続オペレーションの失敗の考えられる原因、および/または実行された成功したテストを含むレポートが生成されます。
ドキュメントタイプ
オートメーション
[所有者]
Amazon
[Platforms] (プラットフォーム)
/
必要な IAM アクセス許可
AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
-
cloudformation:CreateStack -
cloudformation:DeleteStack -
ec2:CreateNetworkInsightsPath -
ec2:CreateNetworkInterface -
ec2:CreateTags -
ec2:DeleteNetworkInsightsAnalysis -
ec2:DeleteNetworkInsightsPath -
ec2:DeleteNetworkInterface -
ec2:StartNetworkInsightsAnalysis -
iam:AttachRolePolicy -
iam:CreateRole -
iam:DeleteRole -
iam:DeleteRolePolicy -
iam:DetachRolePolicy -
iam:PutRolePolicy -
iam:TagRole -
lambda:CreateFunction -
lambda:DeleteFunction -
lambda:TagResource -
logs:CreateLogGroup -
logs:DeleteLogGroup -
logs:PutRetentionPolicy -
logs:TagResource -
glue:GetConnection -
glue:GetDataCatalogEncryptionSettings -
cloudformation:DescribeStacks -
cloudformation:DescribeStackEvents -
ec2:DescribeDhcpOptions -
ec2:DescribeNetworkInsightsPaths -
ec2:DescribeNetworkInsightsAnalyses -
ec2:DescribeSecurityGroupRules -
ec2:DescribeSecurityGroups -
ec2:DescribeSubnets -
ec2:DescribeVpcs -
ec2:DescribeVpcAttribute -
iam:GetRole -
iam:ListAttachedRolePolicies -
iam:SimulatePrincipalPolicy -
kms:DescribeKey -
lambda:InvokeFunction -
lambda:GetFunction -
s3:GetEncryptionConfiguration -
iam:PassRole
重要
上記のアクションに加えて、 は AmazonVPCReachabilityAnalyzerFullAccessPolicy をアタッチされた管理ポリシーとして使用して、Reachability Analyzer テストが正常に実行されるようにAutomationAssumeRoleする必要があります。
に付与できるポリシーの例を次に示しますAutomationAssumeRole。
指示
次の手順に従って自動化を設定します。
-
ドキュメントの Systems Manager
AWSSupport-TroubleshootGlueConnectionで に移動します。 -
[Execute automation] (オートメーションを実行) を選択します。
-
入力パラメータには、次のように入力します。
-
AutomationAssumeRole(オプション):
Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。ロールが指定されていない場合、Systems Manager Automation は、このランブックを開始するユーザーのアクセス許可を使用します。
-
TestConnectionRole (必須)
接続テスト中に使用される IAM ロールの Amazon リソースネーム (ARN)。
-
ConnectionName (必須)
AWS Glue トラブルシューティングするテスト接続名が失敗しました。
-
PersistReachabilityAnalyzerResults (オプション)
Reachability Analyzer の実行結果を保持するかどうかを通知するフラグ。デフォルト:
false. -
PointOfPresenceLogRetentionPeriod (オプション)
Lambda のプレゼンスポイントのログが保存される日数。デフォルト:
7。 -
DatasourceSubnets (オプション)
元のデータソースが使用できない場合は、このパラメータを使用して、接続テストがまだ実行されるように使用したサブネットを指定します。で使用する必要があります
DatasourceSecurityGroups。例えば、subnet-1,subnet-2などです。 -
DatasourceSecurityGroups (オプション)
元のデータソースが利用できない場合は、このパラメータを使用して、接続テストがまだ実行されるように、使用したセキュリティグループを指定します。で使用する必要があります
DatasourceSubnets。例えば、sg-1,sg-2などです。
-
-
[実行] を選択します。
-
自動化が開始されます。
-
自動化ランブックは以下のステップを実行します。
-
ParseInputs:
このステップでは、入力の組み合わせを検証します。
DatasourceSecurityGroupsと の両方DatasourceSubnetsが指定されている場合、それらは有効であり、そのまま返されます。何も指定しない場合、2 つの空のリストが返されます。そのうちの 1 つだけが指定されている場合、ステップは を生成しますValueException。 -
GetConnectionDetails:
このステップは、提供された AWS Glue 接続の詳細を返します。
-
ParseSecurityGroupList:
このステップは、この自動化
SecurityGroupIdListで将来使用するために のStringを連結するために使用されます。 -
GetConnectionData:
JDBC URL に基づいて、、
RedShift、RdsInstanceRdsCluster間の接続のタイプを決定しますOther。さらに、 は JDBC 接続で使用されるドメインとポート、接続の Amazon VPC とそのドメインネームサーバーを返します。 -
GetNetworkDetails:
Amazon RDS または Amazon Redshift ターゲットからサブネットとセキュリティグループ情報を取得します。
-
CreateENITemplate:
接続のテストに使用されるネットワークインターフェイスの作成に使用される AWS CloudFormation テンプレートを生成します。これは、Reachability Analyzer ツールを実行するために必要です。
-
CreateENIStack:
前のステップで作成したテンプレートから CloudFormation スタックを作成します。
-
GetStackDetails:
前の CloudFormation スタックで作成されたスタックを記述し
SourceNetworkInterface、TargetNetworkInterfaces情報を取得します。 -
RunSourceToTargetCheck:
Reachability Analyzer ツールを使用して、前のステップで作成したソース ENIs の間でチェックを実行します。
-
DeleteENIStack:
ネットワークインターフェイスを作成する CloudFormation スタックを削除します
-
CreateNetworkPointOfPresence:
CloudFormation は、ネットワークプレゼンスポイントとして使用される Lambda 関数を作成します。
-
GetFunctionName:
describe CloudFormation スタック API コールを実行して、前のステップで作成した Lambda 関数の名前を取得します。
-
RunEndpointChecks:
ネットワークプレゼンスポイントを使用して、JDBC 接続に存在するエンドポイントが解決可能であり、宣言されたポートで到達可能かどうかを判断します。
-
CheckS3Connectivity:
Amazon S3 サービス AWS Glue への接続からのネットワーク接続を確認します。
-
DeletePointOfPresence:
ネットワークポイントオブプレゼンス Lambda を作成する CloudFormation スタックを削除します。
-
TestIAMRolePermissions:
テストに使用される IAM ロールに、テストの実行に必要なアクセス許可があるかどうかを確認します。
-
CheckConnectionSecurityGroupReferencingRule:
AWS Glue 接続で使用されるセキュリティグループが、それ自体からのすべての進入トラフィックを許可しているかどうかを確認します。このルールがない場合、セキュリティグループのリストが返されます。
-
GenerateReport:
検出結果のリスト (接続テストの失敗の考えられる理由) と次のステップ (接続テストの失敗の解決を試みる) を含むレポートを生成します。
-
-
完了したら、出力セクションで実行の詳細な結果を確認します。
-
自動化の結果
このセクションでは、テスト接続オペレーションが失敗する原因 (検出結果) とその修正方法 (次のステップ) を説明するシナリオを示します。自動化によってテスト失敗の原因が見つからない場合は、このセクションにも通知されます。
-
成功したテスト
このセクションでは、この自動化によって正常にテストされた内容を示すシナリオを示します。テストが成功すると、自動化がテスト接続の失敗の原因を特定できない場合に便利です。これは、問題の原因となっていない原因を通知することで、調査の範囲が狭まるためです。
-
自動化エラー
このセクションでは、自動化中に発生した問題を説明するシナリオを示します。これにより、自動化が実行できるテストの数が制限された可能性があります。シナリオの説明は、失敗したステップを通知します。
-
リファレンス
Systems Manager Automation