[AWS] Caddy로 도메인 연동 및 HTTPS 활성화하기
기존에 클라우드 서버를 인스턴스 퍼블릭 IP 주소:3000으로 접근했다면, 이제 구매한 도메인으로 연결해보자
도메인 구매 및 EC2 연결은
2024.06.19 - [Services/AWS] - [AWS] Route53 네임서버 설정(+ gabia 도메인 구매) 글을 참고한다.
:3000 포트를 없애고 도메인 이름과 SSL 인증서를 추가한다.
1. caddy 설치
Caddy는 웹/앱을 호스팅하기 위해 사용되는 서버로, 설치하면 자동으로 systemd 서비스로 시작되고 실행된다.
1-1. Caddy 홈페이지 접속
1-2. Debian, Ubuntu, Raspbian packages 클릭
1-3. 5줄의 명령어를 터미널에 복사
포트 80에서 연결을 허용하는 웹 서버를 설치하는 것이다.
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
1-4. 포트 3000 삭제
EC2 보안그룹 섹션으로 돌아가 더 이상 3000번 포트는 필요하지 않으므로 삭제한다.
2. Caddy 실행
설치가 완료되면 caddy를 실행한다.
$ sudo systemctl start caddy
혹시 위의 명령어로 에러가 발생한다면
Job for caddy.service failed because the control process exited with error code.
See "systemctl status caddy.service" and "journalctl -xeu caddy.service" for details.
2024.06.29 - [💡/오류노트] - [Caddy] 웹 서버 설치 중 에러 해결 글을 참고한다.
이제 웹서버 접속시 포트 3000 없이 로컬호스트 포트 80으로 Caddy 홈페이지가 제공된다.
성공적으로 설정한 모습니다.
3. Caddyfile 수정
Caddyfile로 이동하여 Caddy 홈페이지가 아닌 나의 프로젝트가 뜨도록 수정한다.
파일로 이동
$ sudo vim /etc/caddy/Caddyfile
불필요한 내용은 주석처리 해주고
# root * /usr/share/caddy
# file_server
localhost는 3000으로 수정하고 주석 처리를 해제한 후 저장한다.
reverse_proxy localhost:8080 → reverse_proxy localhost:3000
포트 80으로 들어오는 모든 HTTP 요청을 localhost:3000으로 전달한다는 뜻이다.
Caddy가 *리버스 프록시(reverse proxy) 역할을 하는 것이다.
*리버스 프록시는 클라이언트의 요청을 받아 실제 서버로 전달하고, 서버의 응답을 다시 클라이언트로 전달하는 중간 서버를 말한다.
4. Caddy 재시작
Caddy를 다시 시작하면 Caddy 홈페이지가 아닌 자신의 홈페이지가 뜰 것이다.
$ sudo systemctl restart caddy
5. 도메인 지정
이제 지정 도메인을 설정해보자
5-1. Route53 - 호스팅 영역 - 지정할 도메인 클릭
5-2. 레코드 생성 - 마법사로 전환
하위 레코드를 만들어준다.
5-3. 라우팅 정책 선택(단순 라우팅) - 다음
5-4. 단순 레코드 정의
레코드 이름 | 입력 |
레코드 유형 | 유지 |
값/트래픽 라우팅 대상⎜레코드 유형에 따른 IP 주소 또는 다른 값 | EC2 인스턴스 퍼블릭 IPv4 주소 입력 |
입력 후 단순 레코드 정의 - 레코드 생성
5-5. 레코드 생성 확인
6. HTTPS 설정
Caddy를 HTTPS로 설정한다. Caddy는 자동으로 SSL/TLS 인증서를 발급하고 갱신해주기 때문에 웹사이트를 안전하게 보호할 수 있다.
Caddyfile을 작성하여 HTTPS를 활성화해준다.
6-1. Caddyfile로 이동
$ sudo vim /etc/caddy/Caddyfile
: 80 → 레코드 이름으로 수정 후 저장
6-2. Caddy 재시작
$ sudo systemctl restart caddy
⬇️
HTTP에서 HTTPS로 활성화되었다 : )