EC2 콘솔에서 CloudWatch Agent 설치, 구성하기

EC2 콘솔에서 CloudWatch Agent 설치, 구성하기

EC2 콘솔의 CloudWatch Agent 구성 기능을 실제로 시도해봤습니다. 기존의 복잡한 SSM 방식과는 달리 UI에서 간단하게 설정할 수 있는 이 방법을 설치부터 동작 확인까지 단계별로 소개합니다.
2026.07.08

안녕하세요.
이번 블로그에서는 EC2 콘솔에서 CloudWatch Agent를 설치하고 구성하는 방법을 정리했습니다.

배경

어느 날 EC2 인스턴스의 확장 모니터링을 활성화하려고 모니터링 탭에 들어갔더니 CloudWatch Agent 구성이라는 버튼이 생긴 것을 발견했습니다.

이 기능은 2025년 11월에 발표되었는데 그 후로 계속 UI 및 기능 등도 업데이트되고 있는 것 같습니다.
https://aws.amazon.com/ko/about-aws/whats-new/2025/11/cloudwatch-in-console-agent-management-ec2/

2026년 4월에 UI 및 기능 업데이트
https://aws.amazon.com/ko/about-aws/whats-new/2026/04/amazon-cloudwatch-agent-ec2/

어떤 방식으로 설정할 수 있는지 실제로 확인해봤습니다.

1. 기존 방식과의 차이점

저는 CloudWatch Agent를 설치하고 구성할 때 SSM Run Command를 이용하는 방식을 주로 사용했습니다.

https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/installing-cloudwatch-agent-ssm.html

기존 SSM Run Command 방식의 절차는 다음과 같습니다.

  1. 수집하고 싶은 추가 메트릭스 혹은 로그 구성을 JSON 형식으로 작성
  2. SSM 파라미터 스토어에 구성 파일 저장
  3. SSM Run Command로 CloudWatch Agent 설치
  4. SSM Run Command로 CloudWatch Agent 구성 파일 적용
  5. 적용 내용 확인

EC2 콘솔에서 설정하면 다음과 같이 간소화됩니다.

  1. CloudWatch Agent 자동 설치
  2. CloudWatch Agent 구성 설정
    • JSON 형식으로 직접 붙여넣기
    • UI 형식으로 원하는 메트릭스·로그 구성 설정
  3. 적용 내용 확인

2. EC2 콘솔에서 설치

2.1. CloudWatch Agent 자동 설치

EC2 콘솔 화면에서 CloudWatch Agent를 설치하려는 인스턴스를 선택하고 모니터링 탭으로 이동하면 CloudWatch 에이전트 구성 버튼이 표시됩니다.

cw01

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

cw02

Enable workload detection 경고

화면 상단에 Enable workload detection 경고가 표시될 수 있습니다.
이는 CloudWatch의 신규 기능으로, 인스턴스의 활성 애플리케이션을 식별하여 CloudWatch Agent 구성 시 맞춤형 모니터링 권장 사항을 제공합니다.

위의 활성화 버튼을 통해 활성화하거나, CloudWatch 콘솔의 설정 페이지에서 활성화·비활성화할 수 있습니다.
인스턴스 내 애플리케이션에 대한 권장 사항이 필요하지 않다면 활성화하지 않아도 됩니다.

에이전트 설치 버튼을 클릭하면 메트릭스 및 로그 수집에 필요한 IAM 권한 설정 안내가 표시됩니다.

  • 필요한 권한: CloudWatchAgentServerPolicy

cw04

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

cw06

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

cw07

설치 결과 메시지를 보면 다음과 같이 정상 설치된 것을 확인할 수 있습니다.

에이전트 설치 결과
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

콘솔 상에서도 설치 완료가 되면 다음처럼 표시됩니다.
※ 만약 설치 상태가 갱신되지 않는다면 새로고침하고 확인해봐주세요.
cw08

2.2. CloudWatch Agent 구성 설정

설치 완료 후 다음 페이지에서 구성을 설정할 수 있습니다.
설정 방법은 두 가지입니다.

  • UI 형식: 수집하고 싶은 메트릭스·로그를 화면에서 선택하여 구성
  • JSON 형식: 구성 JSON을 직접 붙여넣어 설정

어느 방법으로 설정하더라도 양쪽에 모두 반영됩니다.
JSON을 붙여넣은 후 UI에서 내용을 확인하는 것도 가능합니다.

각 형식의 설정 화면

UI
cw09
cw10

JSON
cw12

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

cw13

설정도 아까와 동일하게 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 인스턴스에 접속하여 실제로 동작 중인지 확인해봅니다.

CloudWatch Agent 상태 확인
$ 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 콘솔에서 CloudWatch Agent를 설치하고 구성하는 방법을 정리했습니다.

5%off
library

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事