EC2 콘솔에서 CloudWatch Agent 설치, 구성하기
안녕하세요.
이번 블로그에서는 EC2 콘솔에서 CloudWatch Agent를 설치하고 구성하는 방법을 정리했습니다.
배경
어느 날 EC2 인스턴스의 확장 모니터링을 활성화하려고 모니터링 탭에 들어갔더니 CloudWatch Agent 구성이라는 버튼이 생긴 것을 발견했습니다.
이 기능은 2025년 11월에 발표되었는데 그 후로 계속 UI 및 기능 등도 업데이트되고 있는 것 같습니다.
2026년 4월에 UI 및 기능 업데이트
어떤 방식으로 설정할 수 있는지 실제로 확인해봤습니다.
1. 기존 방식과의 차이점
저는 CloudWatch Agent를 설치하고 구성할 때 SSM Run Command를 이용하는 방식을 주로 사용했습니다.
기존 SSM Run Command 방식의 절차는 다음과 같습니다.
- 수집하고 싶은 추가 메트릭스 혹은 로그 구성을 JSON 형식으로 작성
- SSM 파라미터 스토어에 구성 파일 저장
- SSM Run Command로 CloudWatch Agent 설치
- SSM Run Command로 CloudWatch Agent 구성 파일 적용
- 적용 내용 확인
EC2 콘솔에서 설정하면 다음과 같이 간소화됩니다.
- CloudWatch Agent 자동 설치
- CloudWatch Agent 구성 설정
- JSON 형식으로 직접 붙여넣기
- UI 형식으로 원하는 메트릭스·로그 구성 설정
- 적용 내용 확인
2. EC2 콘솔에서 설치
2.1. CloudWatch Agent 자동 설치
EC2 콘솔 화면에서 CloudWatch Agent를 설치하려는 인스턴스를 선택하고 모니터링 탭으로 이동하면 CloudWatch 에이전트 구성 버튼이 표시됩니다.

버튼을 클릭하면 현재 EC2의 SSM 및 CloudWatch Agent 설치 상태가 표시되며, 이 화면에서 바로 설치를 진행할 수 있습니다.

Enable workload detection 경고
화면 상단에 Enable workload detection 경고가 표시될 수 있습니다.
이는 CloudWatch의 신규 기능으로, 인스턴스의 활성 애플리케이션을 식별하여 CloudWatch Agent 구성 시 맞춤형 모니터링 권장 사항을 제공합니다.
위의 활성화 버튼을 통해 활성화하거나, CloudWatch 콘솔의 설정 페이지에서 활성화·비활성화할 수 있습니다.
인스턴스 내 애플리케이션에 대한 권장 사항이 필요하지 않다면 활성화하지 않아도 됩니다.
에이전트 설치 버튼을 클릭하면 메트릭스 및 로그 수집에 필요한 IAM 권한 설정 안내가 표시됩니다.
- 필요한 권한:
CloudWatchAgentServerPolicy

설치가 완료되면 설치 결과를 확인할 수 있는 버튼이 표시됩니다.

클릭하면 SSM Run Command 명령이 실행된 확인 페이지로 이동합니다.
기존 방식에서 실행한 SSM Run Command 명령을 EC2 콘솔에서 간편하게 실행할 수 있게 됩니다.

설치 결과 메시지를 보면 다음과 같이 정상 설치된 것을 확인할 수 있습니다.
Initiating arn:aws:ssm:::package/AmazonCloudWatchAgent 1.300069.0b1529 install
Plugin aws:runShellScript ResultStatus Success
install output: Running sh install.sh
create group cwagent, result: 0
create user cwagent, result: 0
Successfully installed arn:aws:ssm:::package/AmazonCloudWatchAgent 1.300069.0b1529
콘솔 상에서도 설치 완료가 되면 다음처럼 표시됩니다.
※ 만약 설치 상태가 갱신되지 않는다면 새로고침하고 확인해봐주세요.

2.2. CloudWatch Agent 구성 설정
설치 완료 후 다음 페이지에서 구성을 설정할 수 있습니다.
설정 방법은 두 가지입니다.
- UI 형식: 수집하고 싶은 메트릭스·로그를 화면에서 선택하여 구성
- JSON 형식: 구성 JSON을 직접 붙여넣어 설정
어느 방법으로 설정하더라도 양쪽에 모두 반영됩니다.
JSON을 붙여넣은 후 UI에서 내용을 확인하는 것도 가능합니다.
각 형식의 설정 화면
UI


JSON

설정이 완료되면 내용을 확인한 뒤 Deploy를 클릭하면 구성 적용이 완료됩니다.

설정도 아까와 동일하게 SSM Run Command 명령 실행 페이지에서 상세 결과를 확인할 수 있습니다.
2026/06/25 03:05:14 D! ec2tagger processor required because append_dimensions is set
2026/06/25 03:05:14 Configuration validation first phase succeeded
Created symlink /etc/systemd/system/multi-user.target.wants/amazon-cloudwatch-agent.service → /etc/systemd/system/amazon-cloudwatch-agent.service.
전체 결과 확인하기
2026/06/25 03:05:12 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-mem-1782356710734.tmp ...
2026/06/25 03:05:12 I! Valid Json input schema.
2026/06/25 03:05:12 D! ec2tagger processor required because append_dimensions is set
2026/06/25 03:05:12 Configuration validation first phase succeeded
2026/06/25 03:05:12 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json ...
2026/06/25 03:05:12 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-disk-1782356710869.tmp ...
2026/06/25 03:05:12 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-mem-1782356710734 ...
2026/06/25 03:05:12 I! Valid Json input schema.
2026/06/25 03:05:12 D! ec2tagger processor required because append_dimensions is set
2026/06/25 03:05:12 Configuration validation first phase succeeded
2026/06/25 03:05:12 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json ...
2026/06/25 03:05:12 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-disk-1782356710869 ...
2026/06/25 03:05:12 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-mem-1782356710734 ...
2026/06/25 03:05:12 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-swap-1782356710939.tmp ...
2026/06/25 03:05:12 I! Valid Json input schema.
2026/06/25 03:05:12 D! ec2tagger processor required because append_dimensions is set
2026/06/25 03:05:12 Configuration validation first phase succeeded
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-disk-1782356710869 ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-mem-1782356710734 ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-netstat-1782356711015.tmp ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-swap-1782356710939 ...
2026/06/25 03:05:13 I! Valid Json input schema.
2026/06/25 03:05:13 D! ec2tagger processor required because append_dimensions is set
2026/06/25 03:05:13 Configuration validation first phase succeeded
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-disk-1782356710869 ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-mem-1782356710734 ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-netstat-1782356711015 ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-processes-1782356711081.tmp ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-swap-1782356710939 ...
2026/06/25 03:05:13 I! Valid Json input schema.
2026/06/25 03:05:13 D! ec2tagger processor required because append_dimensions is set
2026/06/25 03:05:13 Configuration validation first phase succeeded
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-disk-1782356710869 ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-ethtool-1782356711139.tmp ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-mem-1782356710734 ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-netstat-1782356711015 ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-processes-1782356711081 ...
2026/06/25 03:05:13 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-swap-1782356710939 ...
2026/06/25 03:05:13 I! Valid Json input schema.
2026/06/25 03:05:13 D! ec2tagger processor required because append_dimensions is set
2026/06/25 03:05:13 Configuration validation first phase succeeded
2026/06/25 03:05:14 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json ...
2026/06/25 03:05:14 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-disk-1782356710869 ...
2026/06/25 03:05:14 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-ebs-1782356711202.tmp ...
2026/06/25 03:05:14 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-ethtool-1782356711139 ...
2026/06/25 03:05:14 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-mem-1782356710734 ...
2026/06/25 03:05:14 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-netstat-1782356711015 ...
2026/06/25 03:05:14 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-processes-1782356711081 ...
2026/06/25 03:05:14 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm__cloudwatch-agent_config_console-metrics-swap-1782356710939 ...
2026/06/25 03:05:14 I! Valid Json input schema.
2026/06/25 03:05:14 W! Ignoring unrecognized input ebs
2026/06/25 03:05:14 D! ec2tagger processor required because append_dimensions is set
2026/06/25 03:05:14 Configuration validation first phase succeeded
Created symlink /etc/systemd/system/multi-user.target.wants/amazon-cloudwatch-agent.service → /etc/systemd/system/amazon-cloudwatch-agent.service.
구성을 변경하고 싶은 경우에도 동일하게 콘솔에서 진행하면 됩니다.
3. 설정 확인
EC2 인스턴스에 접속하여 실제로 동작 중인지 확인해봅니다.
$ sudo systemctl status amazon-cloudwatch-agent
● amazon-cloudwatch-agent.service - Amazon CloudWatch Agent
Loaded: loaded (/etc/systemd/system/amazon-cloudwatch-agent.service; enabled; preset: disabled)
Active: active (running) since Thu 2026-06-25 03:14:55 UTC; 5min ago
Main PID: 3692 (amazon-cloudwat)
Tasks: 7 (limit: 1059)
Memory: 25.4M
CPU: 1.323s
적용된 구성 파일도 확인할 수 있습니다.
$ cat /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml
[agent]
collection_jitter = "0s"
debug = false
flush_interval = "1s"
interval = "60s"
run_as_user = "cwagent"
[inputs]
[[inputs.disk]]
fieldpass = ["used_percent"]
tagexclude = ["device", "mode"]
[[inputs.mem]]
fieldpass = ["used_percent"]
[outputs]
[[outputs.cloudwatch]]
4. 사용하면서 느낀 점
EC2 콘솔에서 CloudWatch Agent를 설정하는 방식을 사용하면서 좋았던 점과 아쉬웠던 점을 정리했습니다.
- 좋았던 점
- 기존 SSM Run Command 방식보다 간단하게 설정 가능
- EC2 콘솔 페이지에서 시각적으로 원하는 감시 항목, 로그를 간단하게 설정 가능
- 아쉬웠던 점
- EC2 내부를 확인하지 않은 한 현재 상태를 확인할 수 없음
- 구성 JSON이 SSM 파라미터 스토어에 임시 저장 후 적용 성공 시 삭제됨
- 설정 변경 시마다 구성이 초기화되어 변경이 아닌 재설정 방식으로 동작
- EC2 내부를 확인하지 않은 한 현재 상태를 확인할 수 없음
설정을 마친 뒤 기능에 대한 설문을 받고 있는 것을 보니 개선될 가능성도 있는 만큼, 앞으로의 업데이트가 기대됩니다.
마치며
이번 블로그에서는 EC2 콘솔에서 CloudWatch Agent를 설치하고 구성하는 방법을 정리했습니다.









