Back End/AWS

[AWS] Java 프로젝트에서 .ebextensions 사용하기

DevPing9_ 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 로 파일을 작성하여 아래와 같은 예시로 작성한다.
자세한 스펙은 공식문서를 확인하자

 

 

 


알아두면 좋은 지식들

 

[트러블슈팅] ELB (BeanStalk) 에 대해 알아두면 좋은 지식들 (feat. ebextensions)

... 너무 삽질을 많이 했다. 😭 Elastic Beanstalk(ELB) 에 모니터링 알람 설정, 환경 커스터마이징 등을 소스코드레벨에서 관리 할 수 있도록 하는 작업을 진행하면서 알게된 정보를 공유하고자 한다.

developer-ping9.tistory.com

 

728x90