aws 배포 - 프록시 nginx를 컨테이너화 vs 서버에 직접 설정 차이

김성진·2025년 4월 19일
0

EB가 서버에 자동 생성해주는 프록시 nginx


위의 이미지에서 none값이 아닌 nginx를 설정해주면 EB가 EC2인스턴스를 생성해주면서 자동으로 /etc/nginx/elasticbeanstalk-nginx-docker-upstream.conf 해당 경로에 저 conf파일을 만들어줌.

저걸 제어하는 방법은 코드에 .ebextension폴더에서 직접 관리하고 적용해주면 된다.

장점: aws에서 ssl인증을 받고 route53 설정에 CNAME과 도메인 설정 해둔걸 자동으로 잘 관리해줘서 배포시 따로 인증서 파일을 컨테이너에 마운트하고 Nginx 설정을 직접 작성해야 하는 수고가 없음.
단점: nginx 도커 컨테이너로 관리 못 함.

1. 컨테이너화 (시도하려던 방법):

이런식으로 nginx부분을 컨테이너화 해서 관리하면 좋을거 같단 생각에 시도했지만 저렇게 되면 아래와 같이 nginx.conf에 ssl인증하는 부분을 모두 직접 설정해줘야 한다

저렇게 하면 보통 jonasal/nginx-certbot 이라는 이름의 Docker 이미지를 사용해서 ssl 설정을 자동화해주는 방법을 주로 사용한다.

과연 어떤 방법이 더 옳고 좋은것일까...? 도커이미지? aws..?

나보다 훨 똑똑한 GPT에게 물어봤다.

그렇다고 한다. 역시 맞는말만 하는 gpt

주의사항:

  1. 단, 첫번째 경우는 반드시 "밸런싱된 로드"를 선택해서 ELB까지 생성이 되어야만 ec2를 자동으로 잡아준다.
  2. 컨테이너화된 Nginx는 AWS의 자동 SSL 관리 기능을 사용할 수 없다.
    SSL을 사용하려면 인증서를 직접 관리하고 Nginx 설정에 추가해야한다.
    가장 간단한 해결책은 Let's Encrypt로 새 인증서를 발급받아 컨테이너에 마운트하는 것.
    이런 차이가 있기 때문에, 컨테이너화된 Nginx를 사용할 때는 SSL 설정을 명시적으로 추가. EB의 자동 Nginx 설정에서는 이런 작업이 자동화되었지만, 컨테이너 환경에서는 개발자가 직접 관리해야함.
profile
multi-national communicator with programming (back-end)

0개의 댓글