✅ HTTPS 연결 시 ELB vs Nginx, Certbot
HTTPS를 연결하는 방법을 검색해보면 ELB 뿐만 아니라 Nginx, Certbot을 활용하는 방법도 많이 나온다.
현업에서는 어떤 방법을 더 많이 사용할까?
현업에서는 ELB를 활용해서 HTTPS 적용을 더 많이 시킨다. HTTPS 설정도 쉬울 뿐더러 HTTPS 인증서의 만료기간 갱신도 자동으로 해주기 때문이다.
그러면 Nginx는 왜 사용하는 걸까?
Nginx와 Certbot을 활용해서 HTTPS를 적용시키는 가장 큰 이유는 비용 때문이다. HTTPS를 적용하는 데 일절 비용이 들지 않기 때문이다. 반면 ELB는 사용하는 것 자체로써 비용이 나간다. 따라서 비용이 부담스러운 기업 또는 학생 입장에서는 ELB를 사용하지 않고 백엔드 서버와 Nginx, Certbot를 하나의 EC2에 설치해서 사용하는 경우도 많다.


📖 Nginx, Certbot을 활용해 HTTPS 연결하기
✅ 1. Express 서버의 실행 포트를 3000번으로 바꿔주기
Nginx를 80번 포트에서 실행시킬 것이기 때문에 Express 서버는 3000번에서 띄워주도록 하자.
app.js
require('dotenv').config();
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send(`.env 테스트 : ${process.env.DATABASE_NAME}`);
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
테스트를 위해 보안 그룹에서 3000번 포트를 추가적으로 열어주자.
✅ 2. Nginx 설치
$ sudo apt update
$ sudo apt install nginx
✅ 3. Nginx 잘 설치됐는 지 확인
[리눅스 명령어로 확인]
$ sudo service nginx status

[EC2 IP로 접속해서 확인]

주의) https://<ip 주소>가 아니라 반드시http://<ip 주소>로 접속해야 한다.
✅ 4. Certbot 설치하기
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
✅ 5. SSL 인증서 발급받기
$ sudo certbot --nginx -d <도메인 주소>
# 예시
$ sudo certbot --nginx -d jscode-edu.link


** 반드시 해당 EC2에 도메인을 연결한 뒤에 위 명령어를 쳐야 정상 작동한다.
✅ 6. 리버스 프록시 설정해주기
$ sudo vi /etc/nginx/sites-available/default
/etc/nginx/sites-available/default
...
server {
...
server_name jscode.edu.link;
location / {
try_files $uri $uri/ =404;
proxy_pass http://localhost:3000/;
}
...
}
✅ 7. Nginx 재시작하기
$ sudo service nginx restart
✅ 8. 백엔드 서버에 HTTPS가 잘 적용되는 지 확인하기


✅ 참고 문서
https://ubuntu.com/tutorials/install-and-configure-nginx#3-creating-our-own-website
https://certbot.eff.org/instructions?ws=nginx&os=ubuntufocal
Certbot Instructions
Certbot Instructions
certbot.eff.org
'DevOps > AWS' 카테고리의 다른 글
| [AWS] ELB에 HTTPS 설정하기 (0) | 2025.10.31 |
|---|---|
| [AWS] ELB 셋팅하기 - ELB에 도메인 연결하기 / HTTPS 적용을 위해 인증서 발급받기 (0) | 2025.10.30 |
| [AWS] ELB 셋팅하기 - 보안그룹/ 리스너 및 라우팅 / 헬스 체크 (0) | 2025.10.29 |
| [AWS]ELB 셋팅하기 - 기본 구성 (0) | 2025.10.28 |
| [AWS] HTTPS 연결하기 (ELB) (0) | 2025.10.27 |