나는 EB를 상당히 좋아하는 편인데, 팀 규모의 프로젝트에서는 당연히 CI-CD를 사용하지만 혼자 할 때는 간편하게 하는 것을 좋아한다. EB는 이런 내 요구에 딱 잘 맞는데, eb deploy를 이용해 쉽게 local에서 배포할 수 있기 때문이다.
이번에는 EB에 와탭을 적용하기위해 S3와의 연동 + command가 필요했고 그 부분에 대해 글을 남긴다.
순서는 다음과 같다.
- EB service role 설정
- .ebextensions/{NAME}.config 설정
- eb deploy
EB service role 설정
EB
EB는 service role과 ec2 role을 갖고 있는데, aws의 다른 서비스를 호출할 때는 service role이 사용된다. 해당되는 서비스 롤에 S3 Role을 추가하자. full access를 줘도 좋고 해당 S3 bucket에만 엑세스 할 수 있는 권한을 줘도 좋다.
S3
http로 접근하는 public 권한을 차단하고 s3:// 의 접근만 허용.

.ebextensions/{NAME}.config 설정
아래와 같은 명령어를 입력. 자세한건 여기를 참조.
cwd는 working directory를 설정. command: | 는 연속된 명령어를 사용하기 위한 포멧
commands:
command block:
cwd: /home/ec2-user
command: |
aws s3 cp s3://whatap-agent/whatap.zip .
unzip -o whatap.zip
eb deploy
eb deploy 로 배포하고 eb-activity.log를 보면 command 명령어가 잘 실행되는 것을 볼 수 있다.