WiseN

AWS EC2(Windows) SSM CloudWatch Custom Metrics

Nov 03,2017   |   AWS

작성자_최준승

페이스북 공유하기 트위터 공유하기
Blog thumbnail

다루는 내용


· 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 -> 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"인 곳을 찾아서 편집




{
"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 버튼 클릭










    • Step2 : 적절한 Instance Type 선택 후 Next 버튼 클릭

    • Step3 : Configure Instance Details에서 IAM role에서 위에서 생성한 Role 선택 후 Review and Launch 버튼 클릭






 

  • 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로 전송된 것을 확인 가능










참고