1. Ubuntu/Debian CloudWatch Agent 설치
# Amazon 공식 DEB 패키지 다운로드
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
# 패키지 설치
sudo dpkg -i amazon-cloudwatch-agent.deb
# 설치 확인
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status
설치가 완료되고 나면, 이런식으로 cloudwatch agent가 중지된 상태라고 뜬다.
root@ip-10-0-131-127:~# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status
{
"status": "stopped",
"starttime": "",
"configstatus": "not configured",
"version": "1.300057.1b1167"
}
2. 설정 파일 작성
sudo vi /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
나는 애플리케이션 로그와 CPU, Memory, Disk 등 메트릭을 수집하는 설정파일을 작성했다.
- metrics → CPU, Memory, Disk 메트릭 수집
- logs → 애플리케이션 로그 전송
{
"agent": {
"metrics_collection_interval": 60,
"logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log"
},
"metrics": {
"append_dimensions": {
"InstanceId": "${aws:InstanceId}"
},
"metrics_collected": {
"cpu": {
"measurement": [
"cpu_usage_idle",
"cpu_usage_iowait",
"cpu_usage_user",
"cpu_usage_system"
],
"metrics_collection_interval": 60,
"resources": [
"*"
]
},
"mem": {
"measurement": [
"mem_used_percent"
],
"metrics_collection_interval": 60
},
"disk": {
"measurement": [
"disk_used_percent"
],
"metrics_collection_interval": 60,
"resources": [
"/"
]
}
}
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/myapp/app.log",
"log_group_name": "/aws/ec2/myapp",
"log_stream_name": "{instance_id}-app-log",
"timezone": "UTC"
}
]
}
}
}
}
3. IAM Role 권한 추가
현재 EC2 인스턴스에 붙어있는 IAM Role에 다음과 같은 권한을 부여해야,
EC2 인스턴스가 로그 그룹을 생성하고 로그를 전송할 수 있는 권한이 생긴다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
}
4. Agent 실행
# Agent 실행
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json \
-s
# Agent 중지
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a stop
# Agent 상태 확인
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status
정상적으로 로그 그룹이 생성되었다면, CloudWatch 콘솔에서 다음 로그그룹을 확인할 수 있다.
'AWS' 카테고리의 다른 글
[AWS][트러블슈팅] 도커파일 USER 미지정 문제 해결 (3) | 2025.08.12 |
---|---|
[AWS] CloudFront HTTP 보안 헤더 적용 (4) | 2025.08.12 |
[AWS][트러블슈팅] CodeDeploy 오류 해결 (ResourceInitializationError, Only target group in ECS deployment group) (1) | 2025.08.06 |
[AWS][트러블슈팅] 프론트 -> 백엔드 API 요청 막힘 문제 해결 (2) | 2025.08.06 |
[AWS] EC2 to ECS 마이그레이션 (Spring 프로젝트, https) (3) | 2025.08.04 |