본문 바로가기
AWS/EC2

AWS EC2에서 Docker와 CloudWatch Logs 연동하여 로그 관리하기

by aws-evan 2025. 1. 10.
반응형

 

 

 

 

공식 문서 참고

https://docs.docker.com/engine/logging/drivers/awslogs/

 

Amazon CloudWatch Logs logging driver

Learn how to use the Amazon CloudWatch Logs logging driver with Docker Engine

docs.docker.com

 

 

1. 로그 그룹 만들기

  • 먼저 CloudWatch Logs에서 로그 그룹을 생성해야 합니다.

로그 그룹 생성 절차

  • AWS Management Console에 로그인합니다.
  • CloudWatch 서비스로 이동합니다
  • 왼쪽 메뉴에서 Logs를 클릭합니다.
  • Log groups에서 Create log group을 클릭합니다.
  • 로그 그룹 이름을 입력합니다 (예: /docker/logs).
  • Retention(보존 기간)을 설정합니다. (기본은 Never Expire로 설정됩니다).

 

  • 2. Docker daemon 설정 (daemonset.json)

 

1) daemon.json 생성

  • Docker daemon에서 CloudWatch Logs로 로그를 전송하려면 daemon.json 파일을 수정해야 합니다.
vi /etc/docker/daemon.json
{
  "log-driver": "awslogs",
  "log-opts": {
    "awslogs-region": "ap-northeast-2",
    "awslogs-group": "/docker/logs"
  }
}

 

  • log-driver: awslogs로 설정하여 CloudWatch Logs를 로그 드라이버로 사용합니다.
  • awslogs-region: 사용하려는 AWS 리전을 지정합니다. 예: ap-northeast-2 (서울 리전).
  • awslogs-group: CloudWatch 로그 그룹을 지정합니다. 위 예시에서는 /docker/logs입니다.

2) 서비스 재시작

  • /etc/docker/daemon.json 파일에 위 내용을 추가합니다.
  • Docker 서비스를 재시작하여 변경 사항을 적용합니다:
sudo systemctl restart docker

 

 

 

3.awslogs 드라이버 옵션을 통한 Docker 컨테이너 배포

  • Docker 컨테이너를 실행할 때, --log-opt 옵션을 사용하여 각 컨테이너의 로그 스트림을 정의할 수 있습니다.
  • awslogs-stream="원하는 플랫폼이나, 이름 정의"
  • 이미지 이름 전에 옵션 사용해야만 정상 인식
docker run -d -p 80:80  --log-opt awslogs-stream=front nginx

  • 로그 확인

 

 

4. 재배포

  • Docker 컨테이너 재배포 후 기존 로그와 새로 생성된 로그가 중첩됩니다.
  • 새 컨테이너를 배포하면, 기존 로그 스트림에 새로운 로그가 이어져 기록됩니다. 기존 로그가 삭제되거나 덮어쓰여지지 않고 새로운 로그가 계속 추가됩니다.

  • 로그 확인

반응형

'AWS > EC2' 카테고리의 다른 글

AWS EC2 생성  (0) 2025.01.03
AWS EC2 Cloudwatch 설정  (0) 2025.01.03
[AWS EC2]AWS EC2 Container PortForwarding 접속  (0) 2022.06.22
[AWS]AWS EC2 Public IP 추가 하기  (0) 2022.06.22
[AWS EC2]AWS EC2 EBS Volume 증설하기  (0) 2022.03.11

댓글