[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]
- https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html
- https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html
'AWS' 카테고리의 다른 글
[AWS] Certified Solutions Architect - Associate 취득 후기 (0) | 2024.01.16 |
---|---|
[AWS] 리눅스 서버 CloudWatchAgent 설치하기 (0) | 2023.12.11 |
[AWS] S3 다른 계정 버킷에 있는 객체 복사하기 (0) | 2023.10.18 |
[AWS] Route 53 도메인 신규 등록하기 (0) | 2023.09.19 |
[AWS] Amazon Kinesis 알아보기 (0) | 2023.08.17 |