

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# `AWSSupport-SetupIPMonitoringFromVPC`
<a name="automation-awssupport-setupipmonitoringfromvpc"></a>

 **설명** 

 `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 Support격리하고 네트워크 문제를 조사할 때 해결 시간을 단축할 수 있습니다.

 [이 자동화 실행(콘솔)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-SetupIPMonitoringFromVPC) 

**문서 유형**

자동화

**소유자**

Amazon

**플랫폼**

Linux, macOS, Windows 

**파라미터**
+ AutomationAssumeRole

  유형: 문자열

  설명: (선택 사항) 사용자를 대신하여 Systems Manager Automation을 통해 작업을 수행할 수 있도록 허용하는 AWS Identity and Access Management (IAM) 역할의 Amazon 리소스 이름(ARN)입니다. 역할을 지정하지 않은 경우, Systems Manager Automation에서는 이 실행서를 시작하는 사용자의 권한을 사용합니다.
+ CloudWatchLogGroupNamePrefix

  유형: 문자열

   기본값: `/AWSSupport-SetupIPMonitoringFromVPC` 

  설명: (선택 사항) 테스트 결과에 대해 생성된 각 CloudWatch 로그 그룹에 사용되는 접두사입니다.
+ CloudWatchLogGroupRetentionInDays

  유형: 문자열

  유효한 값: 1 \$1 3 \$1 5 \$1 7 \$1 14 \$1 30 \$1 60 \$1 90 \$1 120 \$1 150 \$1 180 \$1 365 \$1 400 \$1 545 \$1 731 \$1 1827 \$1 3653

  기본값: 7

  설명: (선택 사항) 네트워크 모니터링 결과를 유지하려는 일수입니다.
+ InstanceType

  유형: 문자열

  유효한 값: t2.micro \$1 t2.small \$1 t2.medium \$1 t2.large \$1 t3.micro \$1 t3.small \$1 t3.medium \$1 t3.large \$1 t3.large \$1 t4g.micro \$1 t4g.small \$1 t4g.medium \$1 t4g.large

  기본값: t3.micro

  설명: (선택 사항) EC2Rescue 인스턴스의 EC2 인스턴스 유형입니다. 권장 크기: t3.micro.
+ SubnetId

  유형: 문자열

  설명: (필수) 모니터 인스턴스의 서브넷 ID입니다. 프라이빗 서브넷을 지정할 경우, 모니터 인스턴스에서 테스트를 설정하도록 허용하기 위한 인터넷 액세스 권한이 있는지 확인해야 합니다(즉, CloudWatch 로그 에이전트 설치, Systems Manager 및 CloudWatch와 상호 작용).
+ TargetIPs

  유형: 문자열

  설명: (필수) 모니터링할 쉼표로 구분된 IPv4 및/또는 IPv6 목록입니다. 공백은 사용할 수 없습니다. 최대 크기는 255자입니다. 잘못된 IP를 지정하는 경우 자동화가 작동하지 않으며, 테스트 설정이 롤백됩니다.
+ TestInstanceSecurityGroupId

  유형: 문자열

  설명: (선택 사항) 테스트 인스턴스의 보안 그룹 ID입니다. 지정하지 않으면 인스턴스 생성 중에 자동화가 하나를 생성합니다. 보안 그룹이 모니터링 IPs에 대한 아웃바운드 액세스를 허용하는지 확인합니다.
+ TestInstanceProfileName

  유형: 문자열

  설명: (선택 사항) 테스트 인스턴스에 대한 기존 IAM 인스턴스 프로파일의 이름입니다. 지정하지 않으면 인스턴스 생성 중에 자동화가 하나를 생성합니다. 역할에는 `logs:CreateLogStream`, `logs:DescribeLogGroups``logs:DescribeLogStreams`, `logs:PutLogEvents` 및 AWS 관리형 정책과 같은 권한이 있어야 합니다`AmazonSSMManagedInstanceCore`.
+ TestInterval

  유형: 문자열

  설명: (선택 사항) 테스트 간격 사이의 분 수입니다. 기본값은 `1` 분이고 최대값은 `10` 분입니다.
+ RetainDashboardAndLogsOnDeletion

  유형: 문자열

  설명: (선택 사항) AWS AWS CloudFormation 스택을 삭제할 때 Amazon CloudWatch 대시보드 및 로그를 삭제`False`하도록 지정합니다. 기본값은 `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 블록 연결 상태를 가져옵니다.

1.  ** `aws:executeScript` ** - 제공된 대상 IPs가 구문상 올바른 IPv4 및/또는 IPv6 주소인지 확인하고, 선택한 인스턴스 유형의 아키텍처를 가져오고, 대상 IP가 IPv6인 경우 서브넷에 IPv6 풀 연결이 있는지 확인합니다.

1.  ** `aws:createStack` ** - 테스트 Amazon EC2 인스턴스, IAM 인스턴스 프로파일(제공되지 않은 경우), 보안 그룹(제공되지 않은 경우), CloudWatch 로그 그룹 및 CloudWatch 대시보드를 프로비저닝하는 AWS CloudFormation 스택을 생성합니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:executeScript` ** - CloudFormation 스택 이벤트를 설명하여 실패 이유를 식별합니다.

    ** `aws:deleteStack` ** - CloudFormation 스택과 연결된 모든 리소스를 삭제합니다.

1.  ** `aws:waitForAwsResourceProperty` ** - CloudFormation 스택 생성이 완료될 때까지 기다립니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:executeScript` ** - CloudFormation 스택 이벤트를 설명하여 실패 이유를 식별합니다.

    ** `aws:deleteStack` ** - CloudFormation 스택과 연결된 모든 리소스를 삭제합니다.

1.  ** `aws:executeScript` ** - CloudFormation 스택 리소스를 설명하여 테스트 인스턴스 ID, 보안 그룹 ID, IAM 역할, 인스턴스 프로파일 및 대시보드 이름을 가져옵니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:executeScript` ** - CloudFormation 스택 이벤트를 설명하여 실패 이유를 식별합니다.

    ** `aws:deleteStack` ** - CloudFormation 스택과 모든 관련 리소스를 삭제합니다.

1.  ** `aws:waitForAwsResourceProperty` ** - 테스트 인스턴스가 관리형 인스턴스가 될 때까지 기다립니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:deleteStack` ** - CloudFormation 스택과 연결된 모든 리소스를 삭제합니다.

1.  ** `aws:runCommand` ** - 테스트 인스턴스에 CloudWatch 에이전트를 설치합니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:deleteStack` ** - CloudFormation 스택과 모든 관련 리소스를 삭제합니다.

1.  ** `aws:runCommand` ** - 제공된 각 IPs에 대한 네트워크 테스트 스크립트(MTR, ping, tracepath 및 traceroute)를 정의합니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:deleteStack` ** - CloudFormation 스택과 연결된 모든 리소스를 삭제합니다.

1.  ** `aws:runCommand` ** - TestInterval 분마다 실행되는 cronjobs를 사용하여 네트워크 테스트를 시작하고 후속 실행을 예약합니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:deleteStack` ** - CloudFormation 스택과 모든 관련 리소스를 삭제합니다.

1.  ** `aws:runCommand` ** - 테스트 결과를에서 CloudWatch Logs로 푸시하도록 CloudWatch 에이전트`/home/ec2-user/logs/`를 구성합니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:deleteStack` ** - CloudFormation 스택과 연결된 모든 리소스를 삭제합니다.

1.  ** `aws:runCommand` ** -에서 테스트 결과에 대한 로그 교체를 구성합니다`/home/ec2-user/logs/`.

1.  ** `aws:executeScript` ** - CloudFormation 스택에서 생성된 모든 CloudWatch 로그 그룹에 대해 보존 정책을 설정합니다.

1.  ** `aws:executeScript` ** - ping 지연 시간 및 ping 패킷 손실을 위한 CloudWatch 로그 그룹 지표 필터를 생성합니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:deleteStack` ** - CloudFormation 스택과 모든 관련 리소스를 삭제합니다.

1.  ** `aws:executeScript` ** - ping 지연 시간 및 ping 패킷 손실 통계를 위한 위젯을 포함하도록 CloudWatch 대시보드를 업데이트합니다.

   (정리) 단계가 실패하는 경우: 

    ** `aws:executeAwsApi` ** - CloudWatch 대시보드가 있는 경우 해당 대시보드를 삭제합니다.

    ** `aws:deleteStack` ** - CloudFormation 스택과 연결된 모든 리소스를 삭제합니다.

1.  ** `aws:branch` ** - SleepTime 파라미터를 평가합니다. 로 설정하면 스택`0`을 삭제하지 않고 자동화가 종료됩니다.

1.  ** `aws:sleep` ** - CloudFormation 스택을 삭제하기 전에 지정된 SleepTime 기간을 기다립니다.

1.  ** `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 스택 이름입니다.