AWSSupport-SetupIPMonitoringFromVPC 자동화 런북을 사용하여 특정 IP를 모니터링하는 방법

4분 분량
콘텐츠 수준: 기초
0

본 기사는 AWS 지원 자동화 워크플로우 (Support Automation Workflow)의 “AWSSupport-SetupIPMonitoringFromVPC” 런북을 사용VPC에서 특정 IP 주소들에 대한 네트워크 모니터링을 설정하고 관리하는 방법에 관해 설명합니다.

[안내]

AWSSupport-SetupIPMonitoringFromVPC는 네트워크 모니터링을 자동화하는 AWS 런북으로, 지정된 서브넷에 EC2 인스턴스를 생성하여 선택한 IP 주소들(IPv4/IPv6)에 대해 ping, MTR, traceroute, tracetcp 테스트를 지속적으로 실행합니다. 수집된 테스트 결과는 CloudWatch Logs에 저장되며, 메트릭 필터를 통해 CloudWatch 대시보드에서 지연 시간과 패킷 손실 통계를 시각화할 수 있습니다. 이를 통해 네트워크 문제 해결과 패턴 분석이 가능하며, 필요한 경우 임계값 기반의 경보를 설정하거나 AWS Support 케이스 해결을 위한 데이터로 활용할 수 있습니다.

[런북 자동화 실행 절차]

  1. 해당링크로 이동하여 왼쪽 네비게이션에서 자동화(Automation)을 선택한 뒤, (Excute runbook)을 선택합니다.
  2. 자동화 런북 모음에서 “AWSSupport-SetupIPMonitoringFromVPC”를 선택한 후 Next를 클릭 및 런북을 실행(Excute automation)합니다.
  3. 입력 파라미터(Input Parameters) 항목에 필요한 정보를 입력합니다.
  • SubnetId : 모니터링을 수행할 인스턴스의 서브넷을 지정합니다.
  • TargetIPs : 모니터링할 IPv4 및/또는 IPv6 주소 목록을 쉼표로 구분하여 지정하는 필수 파라미터입니다. 공백은 허용되지 않으며, 최대 255자로 입력 가능합니다. 잘못된 IP나 중복된 IP를 입력하면 자동화가 실패하고 테스트 설정이 롤백됩니다.
  • CloudWatchLogGroupNamePrefix : 테스트 결과를 저장할 Amazon CloudWatch Logs 로그 그룹의 이름 접두사를 지정하는 선택적 파라미터입니다.
  • CloudWatchLogGroupRetentionInDays : 로그의 데이터 보존 기간(일)을 설정하는 선택적 파라미터입니다. 이 보존 정책은 로그 스트림 내의 이벤트만 삭제하며 로그 스트림이나 로그 그룹 자체는 삭제하지 않습니다.
  • InstanceType : 테스트 인스턴스의 Amazon EC2 인스턴스 유형을 지정하는 선택적 파라미터입니다. 기본값은 't3.micro'입니다.
  • TestInstanceSecurityGroupId : 모니터링 인스턴스에 적용할 보안 그룹의 ID를 지정하는 선택적 파라미터입니다. 사용자가 이 파라미터를 지정하지 않으면, 런북이 새로운 보안 그룹을 생성하여 사용합니다. 이 보안 그룹은 모니터링 대상 IP 주소들로 아웃바운드 트래픽을 보낼 수 있도록 구성되어야 합니다.
  • TestInstanceProfileName : TestInstanceProfileName은 테스트 인스턴스에 사용할 선택적 IAM 인스턴스 프로파일 이름을 지정하는 파라미터입니다. 지정하지 않으면 자동화 과정에서 새로운 프로파일이 생성됩니다. 이 프로파일은 CloudWatch Logs 관련 작업(로그 스트림 생성, 로그 그룹 및 스트림 설명, 로그 이벤트 입력)과 Systems Manager 관리를 위한 권한이 필요합니다. 구체적으로 'logs:CreateLogStream', 'logs:DescribeLogGroups', 'logs:DescribeLogStreams', 'logs:PutLogEvents' 권한과 'AmazonSSMManagedInstanceCore' AWS 관리형 정책이 포함되어야 합니다. 기존 IAM 인스턴스 프로파일을 사용할 경우 이러한 권한들이 모두 포함되어 있는지 확인해야 합니다.
  • TestInterval : TestInterval은 테스트 간격을 분 단위로 지정하는 선택적 파라미터입니다. 이 파라미터는 네트워크 모니터링 테스트(ping, MTR, traceroute, tracetcp)를 실행하는 주기를 결정합니다. 기본값은 1분으로 설정되어 있어 매분마다 테스트가 실행되며, 사용자는 최대 10분까지 간격을 늘릴 수 있습니다. 이를 통해 사용자는 모니터링 빈도를 조절하여 리소스 사용량과 데이터 수집 세밀도 사이의 균형을 맞출 수 있습니다. 더 긴 간격을 설정하면 네트워크 상태 변화를 감지하는 민감도가 낮아질 수 있습니다.
  • SleepTime : 런북이 테스트 결과(AWS CloudFormation 스택)를 삭제하기 전에 대기할 시간(분)을 지정하는 선택적 파라미터입니다. 기본값은 24시간(1,440분)이며, 최대값은 7일 미만(10,080분)입니다. 0으로 설정하면 스택이 자동으로 삭제되지 않습니다.
  • RetainDashboardAndLogsOnDeletion : AWS CloudFormation 스택 삭제 시 Amazon CloudWatch 대시보드와 로그를 함께 삭제할지 여부를 지정하는 선택적 파라미터입니다. 기본값은 'True'로, 대시보드와 로그가 유지되며 필요 없어질 때 수동으로 삭제해야 합니다. 'False'로 설정하면 스택 삭제 시 함께 삭제됩니다.
  • AutomationAssumeRole : AWS IAM(Identity and Access Management) 역할의 Amazon Resource Name(ARN)을 의미합니다. 해당 항목에 입력이 없는 경우 현재 IAM 사용자를 통해 런북을 실행합니다. “AWSSupport-SetupIPMonitoringFromVPC”를 실행하기 위해서는 다음과 같은 IAM 권한(IAM permission)이 필요합니다. 런북에 사용될 서비스 역할을 생성해야 하는 경우 콘솔을 사용하여 Automation을 위한 서비스 역할 생성을 참고하시길 바랍니다.

                {
    "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/AmazonSSMManagedInstanceCore"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "cloudwatch:DeleteDashboards"
            ],
            "Resource": [
                ""
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeSubnets",
                "ec2:DescribeInstanceTypes",
                "ec2:RunInstances",
                "ec2:TerminateInstances",
                "ec2:DescribeInstanceStatus"
                "ec2:CreateTags",
                "ec2:AssignIpv6Addresses",
                "ec2:DescribeTags",
                "ec2:DescribeInstances",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": [
                ""
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:GetParameter",
                "ssm:SendCommand",
                "ssm:ListCommands",
                "ssm:ListCommandInvocations",
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
            

5 .이어서 런북이 실행된 결과를 확인 가능합니다.

[출력결과]

[Cloudwatch - 대시보드]

[Cloudwatch - logs]

[모니터링 인스턴스]

인스턴스 내 경로 /home/ec2-user/logs/ 에 mtr, ping, tracepath, traceroutetcp 의 결과가 저장되고 있는 것과 home/ec2-user 에서 대상 IP에 대한 모니터링 스크립트 실행 확인이 가능합니다.

8.8.8.8에 대한 모니터링 수행

이와 같이 AWS 지원 자동화 워크플로우 (Support Automation Workflow) 런북을 실행하였으나 이슈가 발생할 경우, AWS Support 에 문의하여 추가 지원을 받을 수 있습니다. 이때 앞서 실행한 런북 실행 ID 및 실행 결과 등의 정보를 포함하여 문의 주시면 신속한 지원에 도움이 됩니다.

참조 : https://docs.aws.amazon.com/ko_kr/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-setupipmonitoringfromvpc.html

댓글 없음

관련 콘텐츠