[AWS] 윈도우 서버 CloudWatchAgent 설치하기

AWS에서 CloudWatch를 통해 서버의 메모리 및 디스크 사용량 등을 확인하기 위해서는 EC2 서버에 CloudWatchAgent를 설치해야 됩니다. 윈도우 서버의 메모리 및 디스크 사용량 등을 확인하기 위해 CloudWatchAgent를 설치하고, AWS를 설정하는 방법을 알아봅시다.

 

 


IAM Role 적용

EC2에서 CloudWatchAgent를 통해 EC2 인스턴스의 정보를 보낼 수 있도록 IAM 역할을 인스턴스에 연결해야 합니다.
허용이 필요한 정책은 CloudWatchAgentServerPolicy 이며, IAM 역할 추가를 통해 생성합니다.

 

 

IAM -> Roles 메뉴에서 신규로 Role을 생성합니다.

 

 

서비스는 EC2를 선택합니다.

 

 

정책은 CloudWatchAgentServerPolicy를 검색 후 해당 정책을 선택합니다.

 

 

IAM Role 이름을 설정 후 생성합니다.

 

 

생성된 IAM Role을 확인하실 수 있습니다.

 

 

이제 EC2 -> Instances 메뉴에서 역할을 적용할 EC2를 우클릭 후 Security -> Modify IAM role을 클릭합니다.

 

 

생성한 IAM role을 선택 후 업데이트하면 IAM Role 적용이 완료됩니다.

 

 


CloudWatchAgent 설치 및 설정 파일 적용

CloudWatchAgent를 설치할 윈도우 서버에 접속 후 설치 파일을 통해 패키지를 설치하고, 설정 파일을 적용해보겠습니다.
테스트한 EC2 서버의 OS는 Windows Server 2022를 사용하였습니다.

 

설치 파일을 다운로드 합니다.

https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi

 

 

설치 파일을 실행하여 패키지를 설치합니다.

 

 

CloudWatchAgent 실행 시 사용할 메트릭 정보를 정의하기 위해 아래 내용으로 config.json 파일을 생성 후 윈도우 서버 "C:\Program Files\Amazon\AmazonCloudWatchAgent" 경로에 추가합니다.

설정한 namespace 값으로 CloudWatch의 Metrics 정보를 구분하여 확인하실 수 있습니다.

{
    "agent":{
        "metrics_collection_interval":60
    },

    "metrics": {
        "namespace": "CloudWatch/TestMetrics",
        "metrics_collected": {
            "statsd": {},
            "Processor": {
                "measurement": [
                    {"name": "% Idle Time", "rename": "CPU_IDLE", "unit": "Percent"}
                ],
                "resources": [ 
                    "*"
                ]
            },
            "LogicalDisk": {
                "measurement": [
                    {"name":"% Free Space", "rename" : "DISK_FREE"}
                ],
                "resources": [
                    "*"
                ]
            },
            "Memory": {
                "metrics_collection_interval": 10,
                "measurement": [
                    {"name":"% Committed Bytes In Use", "rename" : "MEMORY_USED", "unit":"Percent"}]
            }
        },
        "append_dimensions":{
            "InstanceId":"${aws:InstanceId}"
        }
    }
}

 

 

아래 명령어를 통해 추가한 config.json 파일 내용으로 AmazonCloudWatchAgent를 실행합니다.

& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"

****** processing amazon-cloudwatch-agent ******
I! Trying to detect region from ec2
D! [EC2] Found active network interface
I! imds retry client will retry 1 timesSuccessfully fetched the config and saved in C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs\file_config.json.tmp
Start configuration validation...
2023/12/06 09:21:38 Reading json config file path: C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs\file_config.json.tmp ...
2023/12/06 09:21:38 I! Valid Json input schema.
I! Trying to detect region from ec2
D! [EC2] Found active network interface
I! imds retry client will retry 1 times2023/12/06 09:21:38 D! ec2tagger processor required because append_dimensions is set
2023/12/06 09:21:38 D! metric decorator required because measurement fields are set
2023/12/06 09:21:38 D! pipeline hostDeltaMetrics has no receivers
2023/12/06 09:21:38 Configuration validation first phase succeeded
Configuration validation second phase succeeded
Configuration validation succeeded
AmazonCloudWatchAgent has been stopped
AmazonCloudWatchAgent has been started

 

 

아래 명령어를 통해 정상적으로 AmazonCloudWatchAgent가 실행되었는지 확인합니다.

& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -m ec2 status

{
  "status": "running",
  "starttime": "2023-12-06T09:21:40",
  "configstatus": "configured",
  "version": "1.300031.0b313"
}

 

 


인스턴스 메트릭 정보 확인

이제 CloudWatch에서 정상적으로 인스턴스의 메트릭 정보가 저장되고 있는지 확인합니다.

 

CloudWatch -> Metrics -> All metrics 메뉴를 통해 "CloudWatch/TestMetrics" 이름의 네임스페이스가 생성되었는지 확인합니다.

 

 

config.json 파일에서 정의한 CPU_IDLE, DISK_FREE, MEMORY_USED 정보를 검색하여 메트릭 정보를 확인하실 수 있습니다.

  • CPU_IDLE

  • DISK_FREE

  • MEMORY_USED

 

 

 

이제 AWS 윈도우 EC2 서버의 메모리 및 디스크 사용량 등의 인스턴스 정보를 CloudWatch를 통해서 확인하시길 바랍니다. 지금까지 CloudWatchAgent를 설치하고, AWS를 설정하는 작업을 알아보는 시간이었습니다....! 끝...!

 

 

 

[Reference]

 

 

+ Recent posts