AWS EC2(Windows) SSM CloudWatch Custom Metrics
다루는 내용
· EC2(Windows) SSM CloudWatch Custom Metrics 사전준비
· EC2(Windows) SSM CloudWatch Custom Metrics 설정방법
EC2(Windows) SSM CloudWatch Custom Metrics 사전준비
- Amazon EC2 Systems Manager에는 명령을 처리하는 EC2 인스턴스를 위한 IAM 역할과 명령을 실행하는 사용자를 위한 별도의 역할이 필요
- Systems Manager API와 통신할 수 있도록 허용하는 권한 정책이 필요
- Systems Manager 관리형 정책을 사용한 액세스 구성
- Systems Manager 사용자 계정 생성
- IAM 콘솔의 Users 페이지 Add User에서 AmazonSSMFullAccess 또는 AmazonSSMReadOnlyAccess Policy를 가진 User 생성
- Systems Manager 관리형 인스턴스를 위한 역할 생성
- IAM 콘솔의 [Roles]페이지 Create role에서 AmazonEC2RoleforSSM Policy를 가진 Role 생성
- 상세방법은 아래페이지 참조
- Systems Manager 사용자 계정 생성
- Systems Manager -> State Manager의 Association 생성시 입력할 Property 작성
- Windows 서버의 Performance Monitor의 “Memory – Available MBytes”, “LogicalDisk – % Free Space” 값을 CloudWatch 로 전송 예제
- 다른 항목을 전송하고 싶을 때는 Windows Server에서 TypePerf.exe –q > counters.txt 실행하여 필요값 확인 후 편집하여 사용
- https://s3.amazonaws.com/ec2-downloads-windows/CloudWatchConfig/AWS.EC2.Windows.CloudWatch.json 에서 json 파일을 다운 받아 편집 준비
- 서울 region 사용 시 변경 : “Region”: “us-east-1” => “Region”: “ap-northeast-2”
- “EngineConfiguration” -> “Components” -> “Id” 가 “PerformanceCounter”인 곳을 찾아서 편집
- Windows 서버의 Performance Monitor의 “Memory – Available MBytes”, “LogicalDisk – % Free Space” 값을 CloudWatch 로 전송 예제
{
“Id”: “PerformanceCounter”,
“FullName”: “AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch”,
“Parameters”: {
“CategoryName”: “Memory”,
“CounterName”: “Available MBytes”,
“InstanceName”: “”,
“MetricName”: “Memory”,
“Unit”: “Megabytes”,
“DimensionName”: “”,
“DimensionValue”: “”
}
},
=>
{
“FullName”: “AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch”,
“Id”: “PerformanceCounterMemory”,
“Parameters”: {
“CategoryName”: “Memory”,
“CounterName”: “Available MBytes”,
“DimensionName”: “InstanceId”,
“DimensionValue”: “{instance_id}”,
“InstanceName”: “”,
“MetricName”: “AvailableMemoryMBytes”,
“Unit”: “Megabytes”
}
},
{
“FullName”: “AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch”,
“Id”: “PerformanceCounterDisk”,
“Parameters”: {
“CategoryName”: “LogicalDisk”,
“CounterName”: “% Free Space”,
“DimensionName”: “InstanceId”,
“DimensionValue”: “{instance_id}”,
“InstanceName”: “C:”,
“MetricName”: “FreeDiskPercentage”,
“Unit”: “Percent”
}
},
-
- “EngineConfiguration” -> “Flows” -> “Flows” 에서 아래 편집 후 저장
[
“(ApplicationEventLog,SystemEventLog),CloudWatchLogs”,
“PerformanceCounter,CloudWatch”
]
=>
[
“(ApplicationEventLog,SystemEventLog),CloudWatchLogs”,
“(PerformanceCounterMemory,PerformanceCounterDisk),CloudWatch”
]
EC2(Windows) SSM CloudWatch Custom Metrics 설정방법
- EC2 생성 (Windows)
- 위에서 생성한 User로 로그인하여 EC2 콘솔의 INSTANCES->instances 에서 Lauch Instance 버튼 클릭
-
- Step1 : Choose an Amazon Machine Image (AMI)에서 Microsoft Windows Server 2016 Base 선택
- SSM이 설치되어 있는 AMI
- SSM이 미설치된 AMI 선택시 아래 페이지 참조
- Step1 : Choose an Amazon Machine Image (AMI)에서 Microsoft Windows Server 2016 Base 선택
-
- Step2 : 적절한 Instance Type 선택 후 Next 버튼 클릭
- Step3 : Configure Instance Details에서 IAM role에서 위에서 생성한 Role 선택 후 Review and Launch 버튼 클릭
-
- Step7 : Review 에서 Launch 버튼 클릭
- 팝업창에서 key pair를 생태개하고 Launch Instances 버튼 클릭하여 Instance 생성
- 여기서는 필요한 부분만 기술하므로 자세한 EC2 생성방법 아래페이지 참조
- Association 생성
- EC2 콘솔의 SYSTEMS MANAGER SERVICES -> State Manager에서 Create Association 버튼 클릭
-
- Create Association -> Association Name 입력 후
- Select Document -> Document 에서 AWS-ConfigureCloudWatch 선택
-
- Targets -> Select Targets by 에서 Manually Selecting Instances 선택 후 생성한 Instance 생성 (Instance에 AmazonEC2RoleforSSM Policy 를 가진 Role이 부여되어 있지 않으면 리스트에 보이지 않음)
-
- Parameters에 위에서 편집한 AWS.EC2.Windows.CloudWatch.json을 열어 복사 후 Properties입력 후 Create Association 버튼 클릭
-
- 설정이 완료되면 CloudWatch 콘솔 Metrics에서 Windows/Default 를 클릭
-
- InstanceId 클릭 후 위에서 생성한 InstanceId 의 FreeDiskPercentage 와 AvaliableMemoryMBytes가 CloudWatch로 전송된 것을 확인 가능
참고
- http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/sysman-configuring-access-policies.html#sysman-create-instance-with-role
- http://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/sysman-configuring-access-iam-create.html
- http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/send_logs_to_cwl.html
최신 댓글