-
AWS-Cloudwatch 로 로그 저장Dev 2022. 3. 27. 11:13
1. Cloudwatch 로그 그룹 생성 후 해당 그룹에서 로그 스트림 생성
2. IAM 역할(사용자 아님) 추가 - couldwatchfullaccess (AWS서비스 - EC2에 추가)
3. ec2 생성시 위에서 추가한 IAM 역할 선택/ 포트 개방(아래 설정은 ec2 포트 5001, 컨테이너 내부 앱의 포트는 5000)
4. ec2 접속해서 도커 설치 후 웹앱 세팅
4. ec2에 웹앱 도커 컨테이너 설정을 위한 docker-compose
// ./docker-compose.yml version: "3.2" services: server: build: server/ volumes: - ./server:/app environment: - PYTHONUNBUFFERED=1 ports: - "5001:5000" logging: driver: awslogs options: // Cloudwatch 로그 그룹 추가시 설정한 정보와 동일해야함 awslogs-group: "flaskapi" awslogs-region: "ap-northeast-2" awslogs-stream: "web/log"5. 해당 서버는 IAM역할이 설정되었기 때문에 서버의 도커에 AWS 설정 하지 않아도 됨
6. IAM 역할이 설정되지 않은 서버라면 CloudWatchLogsFullAccess 의 권한을 가진 유저의 AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY을 발급받아서
/etc/systemd/system/docker.service.d/aws-credentials.conf 파일에 아래와 같이 입력 후 생성 후 도커 재시작
더보기[Service]
Environment="AWS_ACCESS_KEY_ID=위에서생성한AccessKey"
Environment="AWS_SECRET_ACCESS_KEY=위에서생성한SecretKey"7. 또는 도커 컨테이너 실행 발급받은 키를 docker run -e AWS_ACCESS_KEY_ID=AXXXXXXXXXXXXE -e AWS_SECRET_ACCESS_KEY=wXXXXXXXXXXXXY -e AWS_DEFAULT_REGION=us-west-2 와 같이 도커 실행에 환경변수 주는 방법도 가능함
* 로그 출력하기
sudo apt install awscli
aws logs get-log-events --log-group-name flaskapi --log-stream-name web/log --region ap-northeast-2
https://github.com/jorgebastida/awslogs
참고 링크
https://ch-visu4l.tistory.com/14
기타
도커 로그는 -f 를 통해 tailing이 가능함
- docker logs -f demonized_container
'Dev' 카테고리의 다른 글
테스트 코드 필요성과 종류 (0) 2022.03.05 CI/CD 지속적 통합/지속적 전달(제공),배포 + release<->deploy (0) 2022.03.05 NGINX - PROXY - 서브도메인 설정하기 (0) 2022.02.16 Docker compose - .env 활용하기 (0) 2022.02.08 Github actions - Github pages / S3 / NodeJS Jest (0) 2022.02.05