View a markdown version of this page

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

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

AWSSupport-SetupIPMonitoringFromVPC

説明

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

追加料金

このランブックには追加 AWS コストが発生します。を使用して、Amazon EC2 インスタンス、CloudWatch ロググループ、および CloudWatch ダッシュボードをアカウントにプロビジョニングします AWS CloudFormation。テストインスタンスは、 CloudFormation スタックを削除するまで継続的に実行されます。RetainDashboardAndLogsOnDeletionTrue (デフォルト) に設定すると、CloudWatch ダッシュボードとロググループはスタックの削除後も残ります。これらのリソースは、手動で削除するまで課金され続けます。料金の詳細については、Amazon EC2 料金表」およびAmazon CloudWatch 料金表」を参照してください。

追加情報

Amazon CloudWatch Logs のテスト結果を使用して、ネットワークのトラブルシューティングやパターンや傾向の分析を行うことができます。さらに、パケット損失またはレイテンシーがしきい値に達したときに、Amazon Simple Notification Service 通知で 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

    説明: (オプション) モニタリングインスタンスの Amazon EC2 インスタンスタイプ。推奨サイズ: t3.micro。

  • SubnetId

    タイプ: 文字列

    説明: (必須) インスタンスの監視に使用するサブネット ID。プライベートサブネットを指定する場合は、モニターインスタンスがテストを設定できるようにインターネットアクセスがあることを確認する必要があります (CloudWatch エージェントのインストール、 AWS Systems Manager および CloudWatch の操作など)。

  • TargetIPs

    タイプ: 文字列

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

  • TestInstanceSecurityGroupId

    タイプ: 文字列

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

  • TestInstanceProfileName

    タイプ: 文字列

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

  • TestInterval

    タイプ: 文字列

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

  • RetainDashboardAndLogsOnDeletion

    タイプ: 文字列

    説明: (オプション) CloudFormation スタックFalseを削除するときに 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 ダッシュボードをプロビジョニングする 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 エージェント、mtr、 をテストインスタンスtracerouteにインストールします。

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

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

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

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

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

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

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

    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 スタック名。