[AWS] Cloudwatch: Docker에 awslogs driver 적용

Fargate나 Lambda 같은 서버리스 서비스를 쓴다면 Cloudwatch에 로그가 자동으로 기록되나, 그 이외에는 직접 로그를 API 형태로 쏘거나 해야 한다.

그래도 Docker의 경우에는 AWS가 로그 수집용 드라이버를 제공해주기 때문에, 드라이버 설정만 해두면 Docker에서 나오는 로그를 Cloudwatch로 자동 전송하도록 구성하는 것이 가능하다.

먼저 당연히 로그 그룹이 있어야 하고

EC2라면, EC2에 IAM 기반 권한을 부여해줘야 한다.

그리고 내 경우에는 systemctl로 docker를 띄웠는데

  --log-driver=awslogs \
  --log-opt awslogs-region=us-east-1 \
  --log-opt awslogs-group=/aws/ec2/bamboo-server \
  --log-opt awslogs-create-group=true \

이런 식으로 옵션을 넣어서 실행하면 된다.

그리고 실행하면

컨테이너 로그를 잘 퍼올려줄 것이다.



참조
https://docs.aws.amazon.com/ko_kr/batch/latest/userguide/using_awslogs.html
https://docs.docker.com/engine/logging/drivers/awslogs/