부제 : Docekr awslogs driver 사용하기
본 내용은 환경은
Ubuntu 18.04
docker version : 19.03.6
에서 테스트된 내용입니다.
docker 전달할 IAM 생성
AWS 에서 IAM Programmatic access 유저를 생성 합니다.
해당 유저의 권한은 "CloudWatchLogsFullAccess" 하나만 주면 됩니다.
애당 유저의 AccessKey 와 SecretKey를 잘 복사해 둡니다.
CloudWatch 로그그룹/로그스트림 생성
전달할 로그를 받을수 있는 공간이 필요하다 그런 공간을 로그스트림이라고 하고 비슷한 로그스트림의 그룹을 로그그룹이라 합니다.
먼저 cloudwatch로 이동 하여 로그그룹을 생성합니다.
생성 된 로그 그룹을 클릭합니다. 그리고 로그 스트림 생성 버튼 클릭 합니다.
docker awslogs driver 설정
/etc/systemd/system/docker.service.d/aws-credentials.conf 파일을 생성 하고
해당 파일에 아래 내용을 입력 합니다.
[Service]
Environment="AWS_ACCESS_KEY_ID=위에서생성한AccessKey"
Environment="AWS_SECRET_ACCESS_KEY=위에서생성한SecretKey"
script로 만드는 경우 아래와 같습니다.
sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo touch /etc/systemd/system/docker.service.d/aws-credentials.conf
echo "[Service]" | tee -i /etc/systemd/system/docker.service.d/aws-credentials.conf
echo "Environment=\"AWS_ACCESS_KEY_ID=위에서생성한AccessKey\"" | tee -i /etc/systemd/system/docker.service.d/aws-credentials.conf
echo "Environment=\"AWS_SECRET_ACCESS_KEY=위에서생성한SecretKey\"" | tee -i /etc/systemd/system/docker.service.d/aws-credentials.conf
만약 이미 도커를 설치한 경우라면 아래와 같이 docker 서비스를 재시작 해야 합니다.
sudo systemctl daemon-reload
sudo service docker restart
docker logs driver 적용
CloudWatch 에서 생성한 로그 그룹 / 로그 스트림 이름을 동일하게 적어주어야합니다.
실행중인 docker service에 적용시
docker service update --log-driver awslogs --log-opt awslogs-group="app/log" --log-opt awslogs-region="us-east-1" --log-opt awslogs-stream="web/error" my_web
docker-compose file에 적용시
version: '3.7'
services:
web:
image: my_web
ports:
- "80:8000"
...
logging:
driver: awslogs
options:
awslogs-group: "app/log"
awslogs-region: "us-east-1"
awslogs-stream: "web/error"
테스트
테스트용 busybox 를 실행 하고 echo 로 로그하나를 생성하는 컨테이너를 실행 합니다.
docker run --log-driver="awslogs" --log-opt awslogs-group="app/log" --log-opt awslogs-region="ap-northeast-2" --log-opt awslogs-stream="web/error" busybox echo 맨땅 헤딩 로그
위에 docker 를 실행 후에 로그 스트림으로 이동하여 확인 합니다.
Reference
- Amazon CloudWatch Logs logging driver
- Pass Credentials to the awslogs Docker Logging Driver on Ubuntu
'Computer' 카테고리의 다른 글
Python 많이 사용하는 List 다루기 (0) | 2022.01.11 |
---|---|
스타벅스 와이파이 자동 연결 (1) | 2020.02.06 |
[AWS] VM Import/Export를 사용하여 VM을 이미지로 가져오기 에러 (0) | 2018.01.31 |
[Android] App Background & Foreground 구분 (0) | 2017.11.24 |
adb 쉽게 쓰기 (0) | 2017.11.06 |