View a markdown version of this page

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

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

AWSSupport-SetupIPMonitoringFromVPC

説明

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

追加情報

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

このオートメーションを実行する (コンソール)

ドキュメントタイプ

オートメーション

[所有者]

Amazon

[Platforms] (プラットフォーム)

Linux、macOS、Windows

パラメータ

  • AutomationAssumeRole

    タイプ: 文字列

    説明: (オプション) Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。ロールを指定しない場合、Systems Manager Automation はこのランブックを開始するユーザーのアクセス許可を使用します。

  • 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 | t3.micro | t3.small | t3.medium | t3.large | t4g.micro | t4g.small | t4g.medium | t4g.large

    デフォルト: t3.micro

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

  • SubnetId

    タイプ: 文字列

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

  • TargetIPs

    タイプ: 文字列

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

  • TestInstanceSecurityGroupId

    タイプ: 文字列

    説明: (オプション) テストインスタンスのセキュリティグループ ID。指定しない場合、オートメーションはインスタンスの作成中に作成します。セキュリティグループがモニタリング IPs へのアウトバウンドアクセスを許可していることを確認します。

  • TestInstanceProfileName

    タイプ: 文字列

    説明: (オプション) テストインスタンスの既存の IAM インスタンスプロファイルの名前。指定しない場合、オートメーションはインスタンスの作成中に作成します。ロールには、logs:CreateLogStream、、logs:DescribeLogStreamslogs:PutLogEventsおよび logs:DescribeLogGroups AWS 管理ポリシー のアクセス許可が必要ですAmazonSSMManagedInstanceCore

  • TestInterval

    タイプ: 文字列

    説明: (オプション) テスト間隔間の分数。デフォルト値は 1分、最大値は 10分です。

  • RetainDashboardAndLogsOnDeletion

    タイプ: 文字列

    説明: (オプション) AWS AWS CloudFormation スタックFalseを削除するときに Amazon CloudWatch ダッシュボードとログを削除するように を指定します。デフォルト値は True です。デフォルトでは、ダッシュボードとログは保持され、不要になったら手動で削除する必要があります。

必要な IAM アクセス許可

AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。

警告

ミュータブル IAM アクセス許可の誤用を防ぐために、TestInstanceProfileNameパラメータを渡すか、セキュリティガードレールを配置することをお勧めします。

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:GetRolePolicy", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile", "iam:PutRolePolicy", "iam:TagRole" ], "Resource": [ "arn:aws:iam::111122223333:role/SetupIPMonitoringFromVPC*", "arn:aws:iam::111122223333:instance-profile/SetupIPMonitoringFromVPC*" ], "Effect": "Allow" }, { "Action": [ "cloudformation:CreateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudwatch:PutDashboard", "cloudwatch:DeleteDashboards", "ec2:AuthorizeSecurityGroupEgress", "ec2:CreateSecurityGroup", "ec2:CreateLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:DescribeImages", "ec2:DescribeSubnets", "ec2:DescribeInstanceTypes", "ec2:DescribeVpcs", "ec2:DeleteLaunchTemplate", "ec2:DeleteSecurityGroup", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:DescribeInstanceStatus", "ec2:CreateTags", "ec2:AssignIpv6Addresses", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeLaunchTemplates", "ec2:RevokeSecurityGroupEgress", "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "logs:TagResource", "ssm:DescribeInstanceInformation", "ssm:GetParameter", "ssm:GetParameters", "ssm:SendCommand", "ssm:ListCommands", "ssm:ListCommandInvocations" ], "Resource": [ "*" ], "Effect": "Allow" } ] }

TestInstanceProfileName パラメータが指定されている場合、ランブックを実行するために次の IAM アクセス許可は必要ありません。

  • iam:CreateRole

  • iam:CreateInstanceProfile

  • iam:DetachRolePolicy

  • iam:AttachRolePolicy

  • iam:AddRoleToInstanceProfile

  • iam:RemoveRoleFromInstanceProfile

  • iam:DeleteRole

  • iam:DeleteRolePolicy

  • iam:DeleteInstanceProfile

ドキュメントステップ

  1. aws:executeAwsApi - 指定されたサブネットを記述して、VPC ID と IPv6 CIDR ブロックの関連付け状態を取得します。

  2. aws:executeScript - 指定されたターゲット IPs が構文的に正しい IPv4 および/または IPv6 アドレスであることを検証し、選択したインスタンスタイプのアーキテクチャを取得し、ターゲット IP が IPv6 の場合はサブネットに IPv6 プールの関連付けがあることを確認します。

  3. aws:createStack - テスト Amazon EC2 インスタンス、IAM インスタンスプロファイル (指定されていない場合)、セキュリティグループ (指定されていない場合)、CloudWatch ロググループ、CloudWatch ダッシュボードをプロビジョニングする AWS CloudFormation スタックを作成します。

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

    aws:executeScript - CloudFormation スタックイベントを記述して、障害の理由を特定します。

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

  4. aws:waitForAwsResourceProperty - CloudFormation スタックの作成が完了するまで待ちます。

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

    aws:executeScript - CloudFormation スタックイベントを記述して、障害の理由を特定します。

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

  5. aws:executeScript - テストインスタンス ID、セキュリティグループ ID、IAM ロール、インスタンスプロファイル、ダッシュボード名を取得する CloudFormation スタックリソースについて説明します。

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

    aws:executeScript - CloudFormation スタックイベントを記述して、障害の理由を特定します。

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

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

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

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

  7. aws:runCommand - CloudWatch エージェントをテストインスタンスにインストールします。

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

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

  8. aws:runCommand - 提供された各 IPs のネットワークテストスクリプト (MTR、ping、トレースパス、および traceroute) を定義します。

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

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

  9. aws:runCommand - ネットワークテストを開始し、TestInterval 分ごとに実行される cronjobs を使用して後続の実行をスケジュールします。

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

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

  10. aws:runCommand - テスト結果を から CloudWatch Logs /home/ec2-user/logs/ にプッシュするように CloudWatch エージェントを設定します。

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

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

  11. aws:runCommand - でテスト結果のログローテーションを設定します/home/ec2-user/logs/

  12. aws:executeScript - CloudFormation スタックによって作成されたすべての CloudWatch ロググループの保持ポリシーを設定します。

  13. aws:executeScript - ping レイテンシーと ping パケット損失の CloudWatch ロググループメトリクスフィルターを作成します。

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

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

  14. aws:executeScript - CloudWatch ダッシュボードを更新して、ping レイテンシーと ping パケット損失統計用のウィジェットを含めます。

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

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

    aws:deleteStack - CloudFormation スタックと関連するすべてのリソースを削除します。

  15. aws:branch - SleepTime パラメータを評価します。に設定すると0、オートメーションはスタックを削除せずに終了します。

  16. aws:sleep - CloudFormation スタックを削除する前に、指定された SleepTime 期間を待ちます。

  17. aws:deleteStack - CloudFormation スタックを削除します。RetainDashboardAndLogsOnDeletion パラメータに基づいて、CloudWatch ダッシュボードとロググループは保持または削除されます。

    (クリーンアップ) スタックの削除が失敗した場合:

    aws:executeScript - CloudFormation スタックイベントを記述して、削除失敗の理由を特定します。

[出力]

updateCloudWatchDashboard.StackUrl - CloudFormation スタックの URL。

updateCloudWatchDashboard.DashboardUrl - CloudWatch ダッシュボードの URL。

updateCloudWatchDashboard.DashboardName - CloudWatch ダッシュボードの名前。

updateCloudWatchDashboard.LogGroups - 作成された CloudWatch ロググループのリスト。

describeStackResources.HelperInstanceId - テストインスタンス ID。

describeStackResources.StackName - CloudFormation スタック名。