翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSSupport-TroubleshootDMSEndpointConnection
説明
AWSSupport-TroubleshootDMSEndpointConnection ランブックは、 AWS Database Migration Service レプリケーションインスタンスと AWS DMS エンドポイント間の接続の問題の診断とトラブルシューティングに役立ちます。この自動化では、Reachability Analyzer チェックを使用してネットワーク接続をテストし、ネットワーク設定を分析して、 AWS DMS 移行の成功を妨げる可能性のある接続の問題を特定します。
重要
このランブックを実行する前に、 AWS DMS コンソールまたは API を使用してレ AWS DMS プリケーションインスタンスとエンドポイント間の接続をテストしておく必要があります。接続をテストしていない場合は、最初にテストしてください。テストしていない場合は、このランブックを再実行する必要があります。正確な接続テストを行うには、 AWS DMS レプリケーションインスタンスとエンドポイントの両方が使用可能な状態である必要があります。
重要
このランブックは、Lambda 料金が発生する AWS Lambda 関数を作成して呼び出します。Reachability Analyzer 分析の実行ごとに料金も発生します。料金の詳細については、「ネットワーク分析」タブの「Amazon VPC
動作の仕組み
ランブックは、以下のフェーズを通じて AWS DMS 接続の体系的な分析を実行します。
フェーズ 1: リソースの検証と前提条件
-
エンドポイントの検証: AWS DMS エンドポイントが存在することを確認し、その設定 (サーバー名、ポート、エンジンタイプ) を取得し、データベースエンジンがトラブルシューティングでサポートされていることを確認します。
-
接続テストステータス: API を使用して AWS DMS
DescribeConnections、レプリケーションインスタンスとエンドポイント間の現在の接続テストステータスを取得します。これには、前回のテスト試行からの失敗メッセージが含まれます。 -
レプリケーションインスタンス分析: Amazon VPC ID、サブネット IDs、セキュリティグループ IDs などのネットワーク設定の詳細を収集し、レプリケーションインスタンスの関連する Elastic Network Interface (ENI) を識別します。
フェーズ 2: DNS 解決とネットワークパス検出
-
Amazon VPC ベースの DNS 解決: レプリケーションインスタンスと同じ Amazon VPC 内に一時的な Lambda 関数を作成して、Amazon VPC コンテキスト内からエンドポイントホスト名を IP アドレスに解決し、正確なプライベート DNS 解決を確保します。
-
ターゲット識別: エンドポイントが同じ Amazon VPC 内 (ENI を使用) か外部 (解決済み IP アドレスを使用) かに基づいて、Reachability Analyzer の適切なターゲットを決定します。
-
IPv6 互換性チェック: Reachability Analyzer は IPv6 アドレスをサポートしていないため、解決されたアドレスが IPv4 であることを検証します。 IPv6
フェーズ 3: 包括的なネットワークパス分析
-
Reachability Analyzer の実行: レプリケーションインスタンス ENI からターゲット (エンドポイント ENI または IP アドレス) への Network Insights パスを作成し、包括的な分析を実行して、指定されたポートで TCP 接続をテストします。
-
多層ネットワーク分析: ルートテーブル、セキュリティグループ、ネットワーク ACLs、インターネットゲートウェイ、NAT ゲートウェイ、Amazon VPC ピアリング接続、トランジットゲートウェイを含む完全なネットワークパスを調べて、接続の障壁を特定します。
-
詳細な説明の生成: 接続に失敗した場合、 は、正確なルール番号、CIDR ブロック、ポート範囲、プロトコル制限など、トラフィックをブロックするネットワークコンポーネントごとに具体的な説明を提供します。
フェーズ 4: レポートの生成とリソースのクリーンアップ
-
包括的なレポート: 接続テストの概要、ネットワークパス分析結果、修復ガイダンスを含む特定の障害の説明を含む詳細なレポートを生成します。
-
リソース管理: PersistReachabilityAnalyzerResults パラメータがさらなる調査のために分析結果を保持するように設定されていない限り、作成されたリソース (Lambda 関数、IAM ロール、Network Insights パス) を自動的にクリーンアップします。
-
エラー処理: サポートされていないデータベースエンジン、リソースの不足、DNS 解決の失敗、アクセス許可の問題など、さまざまな障害シナリオに関する特定のエラーレポートを提供します。
ランブックは、Amazon Aurora、Amazon DocumentDB、Amazon DynamoDB、Amazon Neptune、Amazon Redshift、Amazon S3、Azure SQL Database、DB2、MySQL、Oracle、PostgreSQL、SQL Server など、複数のデータベースエンジンの接続のトラブルシューティングをサポートしています。
ドキュメントタイプ
オートメーション
[所有者]
Amazon
[Platforms] (プラットフォーム)
/
必要な IAM アクセス許可
AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
-
cloudformation:CreateStack -
cloudformation:DeleteStack -
cloudformation:DescribeStacks -
cloudformation:DescribeStackEvents -
dms:DescribeEndpoints -
dms:DescribeReplicationInstances -
dms:DescribeConnections -
iam:GetRole -
iam:PassRole -
iam:SimulatePrincipalPolicy -
lambda:CreateFunction -
lambda:DeleteFunction -
lambda:GetFunction -
lambda:InvokeFunction -
lambda:ListTags -
lambda:TagResource -
lambda:UntagResource -
lambda:UpdateFunctionCode
オプションの IAM アクセス許可
以下のアクセス許可は、 LambdaRoleArnパラメータを指定せず、自動化で Lambda 実行ロールを作成するAutomationAssumeRole場合にのみ、 内で必要です。
-
iam:CreateRole -
iam:DeleteRole -
iam:AttachRolePolicy -
iam:DetachRolePolicy -
iam:TagRole -
iam:UntagRole
重要
上記のアクションに加えて、Reachability Analyzer テストが正常に実行されるように、 は AmazonVPCReachabilityAnalyzerFullAccessPolicy をアタッチされた管理ポリシーとして持つAutomationAssumeRole必要があります。
ポリシーの例:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDMSTroubleshootingActions", "Effect": "Allow", "Action": [ "dms:DescribeEndpoints", "dms:DescribeReplicationInstances", "dms:DescribeConnections", "lambda:GetFunction", "lambda:ListTags", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:TagResource", "lambda:UntagResource", "lambda:UpdateFunctionCode", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:CreateStack", "cloudformation:DeleteStack", "iam:GetRole", "iam:SimulatePrincipalPolicy", "iam:CreateRole", "iam:DeleteRole", "iam:TagRole", "iam:UntagRole" ], "Resource": "*" }, { "Sid": "AllowDMSLambdaInvocation", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:*:lambda:*:*:function:AWSSupport-TroubleshootDMSEndpointConnection-*" }, { "Sid": "AllowPassRoleToDMSLambda", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:*:iam::*:role/AWSSupport-TroubleshootDMSEndpointConnection-*", "Condition": { "StringLikeIfExists": { "iam:PassedToService": "lambda.amazonaws.com" } } }, { "Sid": "AllowRolePolicyManagement", "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:DetachRolePolicy" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "iam:ResourceTag/AWSSupport-TroubleshootDMSEndpointConnection": "true" } } } ] }
指示
次の手順に従って自動化を設定します。
-
ドキュメントの Systems Manager
AWSSupport-TroubleshootDMSEndpointConnectionで に移動します。 -
[Execute automation] (オートメーションを実行) を選択します。
-
入力パラメータには、次のように入力します。
-
AutomationAssumeRole(オプション):
-
説明: (オプション) SSM Automation が AWS Identity and Access Management ユーザーに代わってアクションを実行できるようにする (IAM) ロールの Amazon リソースネーム (ARN)。ロールが指定されていない場合、SSM Automation はこのランブックを開始するユーザーのアクセス許可を使用します。
-
型:
AWS::IAM::Role::Arn
-
-
DmsEndpointArn (必須)
-
説明: (必須) AWS Database Migration Service エンドポイントの Amazon リソースネーム (ARN)。
-
型:
String -
許可されたパターン:
^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):dms:[a-z0-9-]+:\\d{12}:endpoint:[A-Z0-9]{1,48}$
-
-
DmsReplicationInstanceArn (必須)
-
説明: (必須) AWS Database Migration Service レプリケーションインスタンスの Amazon リソースネーム (ARN)。
-
型:
String -
許可されたパターン:
^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):dms:[a-z0-9-]+:\\d{12}:rep:[A-Z0-9]+$
-
-
PersistReachabilityAnalyzerResults (オプション)
-
説明: (オプション) Network Insights 分析実行の結果を保持するかどうかを通知するフラグ。
-
型:
Boolean -
使用できる値:
[true, false] -
デフォルト:
false
-
-
LambdaRoleArn (オプション)
-
説明: (オプション) AWS Lambda 関数が必要な AWS サービスとリソースにアクセスすることを許可する AWS AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。ロールが指定されていない場合、この Systems Manager Automation はアカウントに Lambda の IAM ロールを 1 つ作成します。
-
型:
AWS::IAM::Role::Arn -
デフォルト:
""
-
-
確認 (必須)
-
説明: (必須) このランブックがアカウントに Lambda 関数を作成し、
LambdaRoleArnが指定されていない場合は IAM ロールを作成することを確認するyesには、 を入力します。 -
型:
String -
許可されたパターン:
^[Yy][Ee][Ss]$
-
-
-
[実行] を選択します。
-
自動化が開始されます。
-
ドキュメントは以下のステップを実行します。
-
DescribeEndpointAndCheckEngine:
AWS DMS エンドポイント設定を取得し、データベースエンジンタイプがトラブルシューティングでサポートされているかどうかを検証します。エンドポイント設定からサーバー名、ポート、エンジンタイプを抽出します。
-
BranchOnEndpointAndCheckEngineErrors:
エンドポイント検証からのエラーに基づいて自動化を分岐します。エラーが見つかった場合、オートメーションはエラーレポートの生成を続行します。それ以外の場合は、接続テストを続行します。
-
GetTestConnectionStatus:
DescribeConnectionsAPI を使用して AWS DMS エンドポイントの接続ステータスとエラーメッセージを取得します。このステップでは、接続テストが実行されているかどうかをチェックし、障害メッセージをキャプチャします。 -
BranchOnTestConnectionStatusErrors:
接続テストのステータスエラーに基づいてオートメーションを分岐します。エラーが検出されると、オートメーションはエラーレポートを生成します。それ以外の場合は、レプリケーションインスタンスの分析に進みます。
-
DescribeReplicationInstance:
Amazon VPC ID、サブネット ID、セキュリティグループ IDs など、 AWS DMS レプリケーションインスタンスのネットワーク設定の詳細を取得し IDs 、関連する Elastic Network Interface (ENI) を識別します。
-
ValidateResourcePermissions:
自動化プロセス中に作成されるリソースをクリーンアップするために必要なアクセス許可が実行ロールにあることを検証します。
-
CreateDNSResolverLambda:
レプリケーションインスタンスと同じ Amazon VPC 内にデプロイされた Lambda 関数を含む AWS CloudFormation スタックを作成します。この関数は、Amazon VPC コンテキスト内から DNS 名をプライベート IP アドレスに解決するために使用されます。
-
DescribeCloudFormationErrorFromStackEvents:
CloudFormation スタックの作成が失敗した場合、このステップではスタックイベントからのエラーを記述し、トラブルシューティングの詳細な失敗情報を提供します。
-
GetDNSResolverLambdaName:
以降のステップで使用するために、 CloudFormation スタック出力から DNS リゾルバー Lambda 関数の名前を取得します。
-
ResolveDmsEndpoint:
Lambda 関数を呼び出して、Amazon VPC 内から AWS DMS エンドポイントホスト名を IP アドレスに解決します。これにより、正確なプライベート DNS 解決が保証され、IPv4 の互換性が検証されます。
-
BranchOnResolveDmsEndpointErrors:
DNS 解決エラーに基づいて自動化を分岐します。エンドポイントを解決できない場合、または IPv6 アドレスに解決する場合、オートメーションはエラーレポートを生成します。
-
GetReachabilityAnalyzerTarget:
Amazon VPC の設定とエンドポイントの場所に基づいて、Reachability Analyzer の適切なターゲットを特定します。ENI (同じ Amazon VPC エンドポイントの場合) または IP アドレス (外部エンドポイントの場合) をターゲットとして使用するかどうかを決定します。
-
GenerateErrors:
前のステップで障害が発生した場合の包括的なエラーレポートを作成します。これには、エンドポイントの検証エラー、接続テストの失敗、または特定の修復ガイダンスによる DNS 解決の問題に関する詳細が含まれます。
-
GenerateReport:
接続ステータス、Reachability Analyzer を使用したネットワークパス分析結果、接続障壁の詳細な説明、解決のための推奨アクションを含む包括的なトラブルシューティングレポートを作成します。
-
CheckStackExists:
CloudFormation スタックが正常に作成され、クリーンアップ中に削除する必要があるかどうかを確認します。このステップにより、自動化の成功や失敗に関係なく、適切なリソース管理が保証されます。
-
DeleteDNSResolverLambda:
DNS リゾルバー Lambda 関数と関連するリソースを含む CloudFormation スタックを削除し (
PersistReachabilityAnalyzerResultsが に設定されている場合を除くtrue)、自動化の完了後に残っているリソースが残らないようにします。
-
-
完了したら、出力セクションで実行の詳細な結果を確認します。
-
GetTestConnectionStatus.status
AWS DMS レプリケーションインスタンスとエンドポイント間の現在の接続テストステータス (成功、失敗、テストなど)。
-
DescribeCloudFormationErrorFromStackEvents.Events
CloudFormation スタックの作成に失敗した場合、この出力にはスタック作成プロセスからの詳細なエラーイベントが含まれており、インフラストラクチャのデプロイの問題の診断に役立ちます。
-
GenerateReport.report
接続分析結果、Reachability Analyzer の検出結果、ネットワークパス分析、特定された特定の接続障壁、および関連する AWS ドキュメントへのリンクを含む詳細な修復推奨事項を含む包括的なトラブルシューティングレポート。
-
GenerateErrors.report
自動化プロセス中にエラーが発生した場合、この出力には、特定の障害理由、影響を受けるリソース、自動化を再試行する前に問題を解決するためのガイダンスを含む詳細なエラーレポートが表示されます。
-
リファレンス
Systems Manager Automation