오랜시간 삽질했던 부분, 같은 실수 반복하지 않기 위해 적습니다..
아래와 같은 형태로 작성합니다.
💪 예시
command:
- /bin/sh
- -c
- |
yarn seed:run
yarn start:dev
Amazon Linux 2 Docker 플랫폼에서 Docker Compose 도구를 사용하는 경우 Elastic Beanstalk는 애플리케이션 프로젝트의 루트 디렉터리에 .env라는 Docker Compose 환경 파일을 생성합니다. 이 파일에는 Elastic Beanstalk에 대해 구성한 환경 변수가 저장됩니다.
Elastic Beanstalk에서 생성한 .env 파일을 env_file 파일의 docker-compose.yml 구성 옵션에 추가합니다.
docker-compose.yml 파일에서 환경 변수를 직접 정의합니다.
Elastic Beanstalk > Environments > Project Name > Configuration 메뉴에서
Instance log streaming to CloudWatch Logs 영역, Log streaming Enabled 를 체크하면 기본적인 ecs, docker-events 로그들만 확인할 수 있었고 application 과 web server(nginx) 의 로그 정보는 확인할 수 없었다
application 과 web server(nginx) 로그정보들을 확인하기 위해선 기본설정로그 이외에 custom log를 보기 위한 추가설정이 필요하다.
IAM Roles에서 elasticbeanstalk ec2와 관련된 aws-elasticbeanstalk-ec2-role 을 찾아서 아래 형태의 CloudwatchPolicy 를 추가로 생성해 Attach 해야한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Resource": [
"arn:aws:logs:ap-northeast-2:999999999999:log-group:*:*"
]
}
]
}