카테고리 없음

[웹사이트 개발] EP.2 유튜브 구독자 인증 -> 교환학생 가계부 노션 템플릿 제공

햣둘 2025. 5. 10. 10:16

[웹사이트 개발] EP.1 유튜브 구독자 인증 -> 교환학생 가계부 노션 템플릿 제공

 

[웹사이트 개발] EP.1 유튜브 구독자 인증 -> 교환학생 가계부 노션 템플릿 제공

https://www.youtube.com/@JJangDaYe 짱따구리의 모험일기이화여대 컴공댕의 네덜란드 교환학생, 독일 방문학생 도전기www.youtube.com 짱따구리의 모험일기 유튜브에 [교환학생 한 학기 총비용 공개] 숏츠

alwaysmoveforward.tistory.com

 

저번 시간에는 어떻게 웹사이트를 개발할건지 구현 시나리오를 짜고 기술스택을 정한 후에, 
로컬에서 서버를 실행하고 도메인을 구입하여 DNS 설정을 해주는 단계까지 완료했다.
이제 남은 일은 아주 단순하게 말하면 "배포"를 하는 과정이다.

 

목차는 다음과 같다. 

1. EC2 인스턴스 생성
2. 서버 기본 설정
3. Nginx 외부 접근
4. 도메인과 탄력적 IP 연결 - A레코드 추가
5. Let's Encrypt로 무료 SSL 인증서 설치
6. Nginx 설정 수정
7. HTTPS 적용된 Node.js 웹사이트 배포
Let's Encrypt 인증서 자동 갱신 + 배포 자동화 고려

💡 SSL 인증하는 방법을 ACM 대신 EC2 + Nginx + Let's Ecrypt로 바꾸기

저번 글의 마지막 단계는 ACM(AWS Certificate Manager)에서 DNS 검증을 기다리고 있는 상태였다.

그런데 인증이 실패했다는 메세지가 떠서 다른 방법을 찾아보았다.

 

1) AWS ACM에서 SSL 인증서 요청

이 방법을 통해 SSL 인증서를 요청하려고 했지만, 찾아보니 AWS ACM은 ALB(로드 밸런서)를 필수로 사용해야 한다고 한다. 로드밸런서는 트래픽이 많아서 여러 EC2 인스턴스로 부하 분산이 필요할 때 있어야 하는 건데, 현재 프로젝트에서는 EC2 1대에서 서비스하는 구조이므로 굳이 ALB를 쓸 필요가 없는 것이었다. 따라서 ALB를 쓸 계획이 없으므로 ACM은 내 서비스에서는 적합하지 않는 것이었다.

 

2) EC2 + Nginx + Let's Encrypt에서 SSL 인증서 요청 ✅

대신 무료 오픈소스 인증서 발급 서비스를 Let's Encrypt를 사용하기로 했다. ALB 없이 EC2 단독으로 SSL 적용이 가능했고, DNS 제공업체(Namecheap 등)와 상관없이 사용 가능했다. 비교적 설정이 간단하고 완전히 무료라는 장점이 존재했다.

단점은 Let's Encrypt 인증서 자동 갱신이 90일마다 필요하고 설정을 직접 해야하는 것이었지만, 자동 갱신 설정으로 변경하고 certbot을 사용해 간단히 설정하는 방식으로 이 단점을 보완할 수 있었다.