EC2 Docker 로그 CloudWatch로 내보내기

Junah
3 min readJan 9, 2025

--

AWS EC2 인스턴스에서 Docker 로그를 CloudWatch로 내보내는 설정 방법을 정리합니다. 이를 통해 따로 로그 시스템을 구축할 필요 없이 간편하게 로그 저장부터 검색, 삭제, 분석 등을 진행할 수 있습니다.

EC2에 CloudWatch 권한 부여하기

먼저 EC2 인스턴스가 CloudWatch에 로그를 쓸 수 있도록 IAM 역할(Role)을 생성하고 연결해야 합니다.

IAM 역할 생성

  1. AWS Management Console에서 IAM 서비스로 이동합니다.

2. 왼쪽 메뉴에서 역할을 선택하고, 역할 생성 버튼을 클릭합니다.

3. 신뢰할 엔터티 유형으로 AWS 서비스를 선택하고, EC2를 선택합니다.

4. 정책 추가 단계에서 AWSOpsWorksCloud 정책을 선택합니다. 이 정책은 CloudWatch에 로그 그룹 및 로그를 생성할 수 있는 권한을 제공합니다.

5. 역할에 원하는 이름을 지정하고 생성합니다.

EC2 인스턴스에 IAM 역할 연결

  1. EC2 서비스로 이동하여 로그를 전송할 인스턴스를 선택합니다.
  2. 상단의 작업 메뉴에서 보안 > IAM 역할 수정을 선택합니다.
  3. 방금 생성한 IAM 역할을 연결합니다.

기존에 설정된 역할이 있다면 해당 역할에 동일하게 AWSOpsWorksCloud 정책을 추가해주셔도 됩니다.

Docker 실행 명령어 변경

Docker 컨테이너가 생성하는 로그를 CloudWatch로 보내기 위해 awslogs 로그 드라이버를 사용합니다. 다음과 같이 Docker 실행 명령어를 수정합니다.

docker run \
--log-driver=awslogs \
--log-opt awslogs-region=ap-northeast-2 \
--log-opt awslogs-group=EC2LogGroup \
--log-opt awslogs-create-group=true \
your-image-name

Docker는 기본적으로 awslogs 로그 드라이버를 지원하며, EC2에 IAM 역할만 설정되었다면 추가적인 인증 작업은 필요하지 않습니다.

--

--

No responses yet