Server&load/AWS

HTTPS 연결 시, ELB vs Certbot, Nginx

몽자비루 2025. 4. 29. 00:20
  1. 현업에서 가장 많이 사용되는 방법
    1. 현업에서는 ELB 를 활용하여 HTTPS적용을 많이함.
      • 설정이 편리하고, 인증서 만료기간이 지나도 자동으로 갱신시켜줄 수 있음.
    2. Nginx 를 사용하는 이유
      1. Nginx와 Certbot 을 사용하는 이유
        • ELB는 사용하는것 자체로 비용이 나가는 반면 Nginx 와 Certbot 은 HTTPS를 적용에 비용이 소요되지 않는다.
        • 즉, 비용 절감의 목적으로 사용된다.
  2. Nginx 와 Certbot으로 HTTPS 적용하기
    1. app.js 의 port 번호 수정하기
    2. EC2 > 인스턴스 > 보안 그룹의 인바운드 규칙에 3000포트 있는지 확인
      • 없는 경우 보안그룹으로 이동하여 아래와같은 인바운드 규칙을 추가한다.
        유형 프로토콜 포트 범위 소스
        커스텀 TCP TCP 3000 0.0.0.0/0
      • 이후 pm2 restart 진행
    3. ip주소 : 3000 으로 접속했을 때 페이지 나오는 지 확인
    4. nginx 다운로드
      • sudo apt update
        sudo apt install nginx
      • sudo service nginx status
    5. 80번 포트에서 nginx 페이지 노출 확인 (도메인으로 접속해도 동일)
    6. Certbot 설치하기
      • HTTPS 인증서를 발급받아주는 역할을 한다.
      • sudo snap install --classic certbot
      • sudo ln -s /snap/bin/certbot /usr/bin/certbot
        • 심볼릭 링크를 만들어  /user/bin/certbot 을 통해  /snap/bin/certbot 을 실행할 수 있다.
    7. SSL인증서 발급받기
      • sudo certbot --nginx -d <도메인 주소>
    8. 80번 포트로 접근해도 3000번 포트로 연결되도록 설정
      • /etc/nginx/sites-available 으로 이동하여
        "sudo vi default" 로 default를  vi 에디터로 열기
      • location 의 하단 부분 수정진행 후 저장
      • sudo service nginx restart로 재시작하기.