-
[AWS] Java 프로젝트에서 .ebextensions 사용하기Back End/AWS 2022. 9. 17. 17:09
Overview
필자가 삽질하며 .ebextensions 를 활용하여 AWS Beanstalk 을 설정하는 법을 정리한 글입니다.
언제 써야 할까?
한 번 세팅하고 계속 유지되어야 하는 설정들은 AMI 로 만들어 Beanstalk 에서 사용하면 되지만
변경이 자주 발생하거나 어플리케이션이 deploy 되기전에 적용되어야 하는 환경 설정들은 ebextension 을 사용하여 적용하면 좋다.
어플리케이션에 ebextension 으로 작성하고 그 이후에 실행하지 않게 끔 해놓은 어플리케이션도 있는데, 기록을 남겨둠으로써 해당 작업을 어떻게 처리하였는지 IDE 수준에서 빠르게 확인할 수 있고 문서화하지 않아도 되어 경제적이다.
다만, 그런 파일들은 .ebextension-deprecated 와 같이 네이밍을 다르게 하여 다음 인수자가 알아보기 쉽게 하면 더 좋을 것 같다.
어떻게 쓰는가?
Elastic Beanstalk 이 .ebextensions 폴더를 인식하게 하려면?
아래와 같이 .jar 나 .war 파일이 압축해제 되었을 때, 루트 경로에 .ebextension 폴더가 있게 패키징을 하여야 한다.
myapp.war ㄴ .ebextensions ㄴ 01-setup-networks.config ㄴ 02-setup-tomcat.config ㄴ 03-locate-errorPage.config
pom.xml 로 패키징 설정하기
<plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory> {빌드되기전 ebextension 을 포함한 디렉토리 경로} </directory> <targetPath>.ebextensions</targetPath> <filtering>true</filtering> </resource> </webResources> </configuration> </plugin>
실행되어야 할 ebextension 커맨드 작성하기
{}.config 로 파일을 작성하여 아래와 같은 예시로 작성한다.
자세한 스펙은 공식문서를 확인하자
알아두면 좋은 지식들
728x90'Back End > AWS' 카테고리의 다른 글
[AWS] Lambda 에서 Lambda 를 호출하기 (Feat. JavaScript, Python) (0) 2022.09.17 [AWS] Serverless 함수 리젼별로 배포하기 (0) 2022.09.17 [AWS] Permission denied (publickey,gssapi-keyex,gssapi-with-mic) (0) 2022.08.28 [AWS] 우리는 왜 CloudFront 와 로드밸런서에 SSL(TLS)을 달아야하는가? (0) 2022.06.05 [AWS] Mac 에서 EC2 인스턴스로 SSH 접속 (0) 2022.05.05