본문 바로가기
DevOps

AWS Beanstalk Linux2 에서 Nginx 설정이 안될때

by 창천향로 창천향로 2020. 12. 22.
반응형

기존에 AWS Beanstalk을 사용할 경우 아래와 같이 nginx.config 파일을 교체하라고 가이드를 받는데요.

1

(AWS 공식 문서)

그래서 실제로 프로젝트 구조를 다음과 같이 잡고 배포를 진행합니다.

2

배포할때 사용하는 스크립트 (travis.yml 혹은 githubAction.yml) 역시 이 구조를 그대로 가져가기 위해 다음과 같이 설정합니다.

      - name: Generate deployment package
        run: |
          mkdir -p deploy
          cp build/libs/*.jar deploy/application.jar
          cp Procfile deploy/Procfile
          cp -r .ebextensions deploy/.ebextensions
          cd deploy && zip -r deploy.zip .

헌데 해당 설정대로 하면 Amazon Linux 1에서는 그대로 사용할 수 있지만, Amazon Linux2 에서는 Nginx설정만 교체가 안됩니다.

기존에 사용되는 다른 config 파일들은 잘 교체가 되는데 .ebextensions/nginx 디렉토리는 교체 대상에서 제외가 됩니다.

계속 Amazon Linux 1을 쓰다가 2로 교체하자마자 설정이 제대로 안먹어서 당황하였는데요.

이에 대해서 Linux2에서 설정 변경이 있었습니다.

해결책

Amazon Linux2가 되면서 역방향 프록시 설정 방법에 변화가 있었습니다.

즉, 기존에 사용하던 일반적인 config는 그대로 적용됩니다.

변경된 점은 딱 하나입니다.

as-is

.ebextensions/nginx/nginx.conf

to-be

.platform/nginx/nginx.conf

즉, 기존에 .ebextensions에 두던 nginx 설정들을 .platform 디렉토리로 변경만 하면 됩니다.

단, 여기서 주의하실 점은 기존의 OS 설정 파일(XX-XXXX.config)들은 여전히 .ebextensions에 두셔야 합니다.

그래서 최종 설정 구조는 다음과 같이 되며, .ebextensions.platform 두 디렉토리 모두 배포용 zip 파일로 묶어 주셔야 합니다.

final

final2


반응형