작업 환경
aws ec2 ubuntu 20.04
공식 문서
https://docs.docker.com/config/containers/logging/awslogs/
1. ec2 IAM에 CloudWatch 권한 역할 부여
ec2->인스턴스->작업->보안->IAM 역할 수정
기존에 IAM을 생성해두지 않은 상태로 새 IAM 역할 생성 -> 역할 만들기 -> AWS 서비스-> EC2
CloudWatchLogsFullAccess 권한 부여 -> 역할 생성
참조) docker 공식 문서에서는 아래와 같은 권한 2개 부여하라는데 권한 검색에 검색하면 안뜬다.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
구글링 통해 fullaccess 정책 권한 부여했다. 공식 문서 업데이트가 필요해보인다.
이후 ec2 -> 인스턴스 -> 관련 인스턴스 선택 -> 보안 -> IAM 역할 수정에서 방금 만든 역할을 선택해 연결한다.
2. CloudWatch 로그 그룹/로그 스트림 생성
로그를 보내는 역할 설정을 완료했으므로 이제 로그를 받을 수 있는 공간 설정을 해야한다.
AWS CloudWatch -> 로그 -> 로그 그룹 -> 로그 그룹 생성
생성한 로그 그룹 클릭 -> 로그 스트림 -> 로그 스트림 생성
3. docker-compose에 로깅 관련 정보 추가
services:
backend:
image: 가나다
container_name: 라마바사
##아래 부분 생성한 정보대로 내용 추가하시면 됩니다.
logging:
driver: awslogs
options:
awslogs-group: higoods-docker-log
awslogs-region: ap-northeast-2
awslogs-stream: backend
정상 작동 확인
참고사이트
https://docs.docker.com/config/containers/logging/awslogs/
https://kitty-geno.tistory.com/67
https://ch-visu4l.tistory.com/14