AWS Systems Manager
ユーザーガイド

AWSSupport-SetupIPMonitoringFromVPC

説明

AWSSupport-SetupIPMonitoringFromVPC は、指定されたサブネットに Amazon EC2 インスタンスを作成し、ping、MTR、トレースルートおよび tracetcp テストを継続的に実行することによって、選択したターゲット IP (IPv4 または IPv6) を監視します。結果は Amazon CloudWatch Logs ログに保存され、メトリクスフィルタが適用されて、CloudWatch ダッシュボードの待ち時間とパケット損失の統計をすばやく視覚化できます。

追加情報

CloudWatch Logs データは、ネットワークのトラブルシューティングやパターン/傾向の分析に使用できます。さらに、パケット損失やレイテンシーがしきい値に達したときに、Amazon SNS 通知で CloudWatch アラームを設定できます。データはプレミアムサポートケースを開くときに使用され、問題の特定や、ネットワークの問題の調査、解決がすばやく行えるようにします。

ドキュメントタイプ

自動化

所有者

Amazon

パラメータ

  • SubnetId

    型: 文字列

    説明: (必須) インスタンスの監視に使用するサブネット ID。プライベートサブネットを指定する場合は、インスタンスの監視がテストをセットアップするためにインターネットアクセスが使用できることを確認する必要があります (つまり、CloudWatch Logs エージェントをインストールし、Systems Manager および CloudWatch と連携します)。

  • TargetIPs

    型: 文字列

    説明: (必須) 監視する IPv4 または IPv6 のカンマ区切り形式リスト。スペースは使用できません。最大サイズは 255 文字です。無効な IP を指定すると自動化は失敗し、テスト設定がロールバックされることに注意してください。

  • CloudWatchLogGroupNamePrefix

    型: 文字列

    デフォルト: /AWSSupport-SetupIPMonitoringFromVPC

    説明: (オプション) テスト結果用に作成された各 CloudWatch ロググループに使用されるプレフィックス。

  • CloudWatchLogGroupRetentionInDays

    型: 文字列

    許可された値: 1、3、5、7、14、30、60、90、120、150、180、365、400、545、731、1827、3653

    デフォルト: 7

    説明: (オプション) ネットワーク監視結果を保持する日数。

  • InstanceType

    型: 文字列

    許可された値: t2.micro、t2.small、t2.medium、t2.large

    デフォルト: t2.micro

    説明: (オプション) EC2Rescue インスタンスの Amazon EC2 インスタンスタイプ。推奨サイズ: t2.micro。

  • AutomationAssumeRole

    型: 文字列

    説明: (オプション) この実行に対する AWS Identity and Access Management (IAM) ロール。ロールを指定しない場合、Systems Manager Automation はこのドキュメントを実行するユーザのアクセス許可を使用します。

自動化の開始

aws ssm start-automation-execution --document-name AWSSupport-SetupIPMonitoringFromVPC --parameters 'SubnetId=SUBNETID,TargetIPs="IPV41,IPV42,IPV61"'

実行出力を取得する

aws ssm get-automation-execution --automation-execution-id EXECUTIONID --output text --query 'AutomationExecution.Output'

必要な IAM アクセス許可

自動化を実行するユーザーには AmazonSSMAutomationRole IAM 管理ポリシーが添付されていることが推奨されます。さらに、ユーザーは、ユーザーアカウント、グループ、またはロールに次のポリシーをアタッチする必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteInstanceProfile", "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": [ "arn:aws:iam::AWS_account_ID:role/AWSSupport/SetupIPMonitoringFromVPC_*", "arn:aws:iam::AWS_account_ID:instance-profile/AWSSupport/SetupIPMonitoringFromVPC_*" ], "Effect": "Allow" }, { "Action": [ "iam:DetachRolePolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM" ], "Effect": "Allow" }, { "Action": [ "cloudwatch:DeleteDashboards" ], "Resource": [ "*" ], "Effect": "Allow" } ] }

ドキュメントステップ

  1. aws:executeAwsApi - 提供されたサブネットを記述します。

  2. aws:branch - TargetIP の入力を評価します。

    (IPv6) TargetIP に IPv6 が含まれている場合:

    aws:assertAwsResourceProperty - 指定されたサブネットに IPv6 プールが関連付けられていることを確認します

  3. aws:executeAwsApi - パラメータストア から最新の Amazon Linux 2 AMI を入手してください。

  4. aws:executeAwsApi - サブネットの VPC でテスト用のセキュリティグループを作成します。

    (クリーンアップ) セキュリティグループの作成に失敗した場合:

    aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  5. aws:executeAwsApi - テストセキュリティグループ内のすべてのアウトバウンドトラフィックを許可します。

    (クリーンアップ) セキュリティグループ Egress ルールの作成に失敗した場合:

    aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  6. aws:executeAwsApi - テスト Amazon EC2 インスタンスの IAM ロールを作成します

    (クリーンアップ) ロールの作成に失敗した場合:

    1. aws:executeAwsApi - 自動化によって作成された IAM ロールがあれば削除します。

    2. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  7. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーをアタッチします

    (クリーンアップ) ポリシーの添付が失敗した場合:

    1. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします (添付されている場合)。

    2. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    3. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  8. aws:executeAwsApi - インラインポリシーを適用して、CloudWatch ロググループの保持設定を行い、CloudWatch ダッシュボードを作成できるようにします

    (クリーンアップ) インラインポリシーの添付に失敗した場合:

    1. aws:executeAwsApi - 作成された場合は、CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    2. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    3. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    4. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  9. aws:executeAwsApi - IAM インスタンスプロファイルを作成します。

    (クリーンアップ) インスタンスプロファイルの作成に失敗した場合:

    1. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルがあれば削除します。

    2. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    3. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールから削除します。

    4. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    5. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  10. aws:executeAwsApi - IAM インスタンスプロファイルを IAM ロールに関連付けます。

    (クリーンアップ) インスタンスプロファイルとロールの関連づけに失敗した場合:

    1. aws:executeAwsApi - 関連付けられている場合は、IAM インスタンスプロファイルをロールから削除します。

    2. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    3. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    4. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    5. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    6. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  11. aws:sleep - インスタンスプロファイルが利用可能になるのを待ちます。

  12. aws:runInstances - 指定されたサブネット内にテストインスタンスを作成し、以前に作成したインスタンスプロファイルを追加します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  13. aws:branch - TargetIP の入力を評価します。

    (IPv6) TargetIP に IPv6 が含まれている場合:

    aws:executeAwsApi - IPv6 をテストインスタンスにアサインします。

  14. aws:waitForAwsResourceProperty - テストインスタンスがマネージドインスタンスになるのを待ちます。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  15. aws:runCommand - インストールテストの前提条件:

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  16. aws:runCommand - 提供された IP が構文的に正しい IPv4 または IPv6 アドレスあるいはその両方の検証:

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  17. aws:runCommand - 提供された各 IP の MTR テストを定義します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  18. aws:runCommand - 提供された各 IP の最初の ping テストを定義します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  19. aws:runCommand - 提供された各 IP の 2 番目の ping テストを定義します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  20. aws:runCommand - 提供された各 IP の tracepath テストを定義します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  21. aws:runCommand - 提供された各 IP の traceroute テストを定義します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  22. aws:runCommand - CloudWatch ログを設定します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  23. aws:runCommand - 1 分ごとに各テストを実行するように cronjobs をスケジュールします。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  24. aws:sleep - テストがデータを生成するのを待ちます。

  25. aws:runCommand - 目的の CloudWatch ロググループの保持を設定します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  26. aws:runCommand - CloudWatch ロググループのメトリクスフィルタを設定します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:changeInstanceState - テストインスタンスを終了します。

    2. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    3. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    4. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    5. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    6. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    7. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

  27. aws:runCommand - CloudWatch ダッシュボードを作成します。

    (クリーンアップ) ステップが失敗した場合:

    1. aws:executeAwsApi - CloudWatch ダッシュボードが存在する場合は削除します。

    2. aws:changeInstanceState - テストインスタンスを終了します。

    3. aws:executeAwsApi - IAM インスタンスプロファイルをロールから削除します。

    4. aws:executeAwsApi - 自動化によって作成された IAM インスタンスプロファイルを削除します。

    5. aws:executeAwsApi - CloudWatch インラインポリシーを自動化によって作成されたロールから削除します。

    6. aws:executeAwsApi - AmazonEC2RoleForSSM 管理ポリシーを自動化によって作成されたロールからデタッチします。

    7. aws:executeAwsApi - 自動化によって作成された IAM ロールを削除します。

    8. aws:executeAwsApi - 自動化によって作成されたセキュリティグループがあれば削除します。

出力

createCloudWatchDashboards.Output - CloudWatch ダッシュボードの URL です。

createManagedInstance.InstanceIds - テストインスタンス ID です。