[Intro] 집은 지었는데 주소가 없다
지난 글에서 우리는 AWS Lightsail에 월 7달러짜리 쾌적한 전원주택(인스턴스)을 짓는 데 성공했다. 하지만 문제가 하나 있다. 친구를 초대하려는데 “우리 집 주소는 43.200.12.34야”라고 말해야 한다. 숫자로 된 IP 주소는 기계에겐 편하지만 사람에겐 고역이다.
게다가 지금 우리 집 현관문은 활짝 열려 있다. 브라우저 주소창 옆에 뜬 ‘주의 요함(Not Secure)’이라는 경고 문구는 방문자에게 불안감을 준다. 누군가 내 블로그에 댓글을 남길 때 그 정보가 암호화되지 않은 채 인터넷 망을 떠돌아다닌다는 뜻이다.
이번 글에서는 이해하기 쉬운 도로명 주소(도메인)를 구매해 연결하고, 데이터를 안전하게 보호하는 암호화 통신(SSL)을 적용하는 과정을 다룬다. 특히 SSL 설정은 과거에 개발자들이 가장 골머리를 앓던 작업이었으나, Lightsail에서는 놀라울 정도로 간편해졌다.
[Concept Note] 문패와 보안 시스템
초보자를 위해 오늘 다룰 두 가지 핵심 개념을 부동산에 빗대어 정리해 보자.
1. 도메인 (Domain) = 도로명 주소 서버의 실제 위치는 192.168.0.1 같은 IP 주소(위도/경도)로 되어 있다. 하지만 우리는 위도/경도를 외우고 다니지 않는다. 대신 seoul.com처럼 기억하기 쉬운 문패를 단다. 도메인을 구매한다는 건, 인터넷 세상에서 나만의 고유한 문패를 등록하는 행위다.
2. SSL (Secure Sockets Layer) = 배송 트럭의 자물쇠 과거의 웹(HTTP)은 엽서와 같았다. 우체부(해커)가 마음만 먹으면 내용을 훔쳐볼 수 있었다. SSL을 적용한 웹(HTTPS)은 봉인된 금고 트럭이다. 출발지에서 목적지까지 데이터가 암호화되어 이동하므로, 중간에 누가 가로채더라도 내용을 알 수 없다. 주소창의 자물쇠 아이콘은 “이 트럭은 안전합니다”라는 보증수표다.

[Decision] 왜 AWS Route 53인가?
도메인을 사는 곳은 가비아, 후이즈, Namecheap 등 아주 많다. 가격만 따지면 .com 기준 1년에 10달러 내외인 저가 업체가 더 유리할 수도 있다. AWS Route 53은 1년에 약 15달러(약 2만 원)로 아주 저렴한 편은 아니다.
그럼에도 나는 Route 53을 선택했다. 이유는 단 하나, ‘관리의 통합’ 때문이다. 서버는 AWS에 있는데 도메인은 다른 곳에 있으면, 나중에 설정을 변경할 때마다 두 사이트를 오가며 로그인해야 한다. Route 53을 쓰면 결제 청구서도 하나로 합쳐지고, 무엇보다 Lightsail과의 연동성이 뛰어나다. 커피 한 잔 값을 더 내고 귀찮음을 사는 셈 쳤다.
[Action 1] 도메인 구매 및 DNS 연결
이제 실제 내 집 주소를 사고 연결해 보자.
1. 도메인 쇼핑 (Shopping) AWS 콘솔에서 Route 53으로 이동해 ‘도메인 등록(Register domain)’을 진행한다. 검색창에 원하는 이름(예: ys-note)을 입력하면 하단에 여러 가지 확장자(TLD)가 가격과 함께 뜬다.
.com: 가장 대중적이고 신뢰감을 준다. ($13~$15).net,.org: 닷컴이 이미 팔렸을 때 고려해 볼 만하다..site,.click: 저렴하지만 스팸 사이트로 오해받을 수 있다.
나는 가장 무난하고 대중적인 .com을 선택했다. 장바구니에 담고 결제를 진행한다. 개인 정보를 입력할 때 Contact Type은 ‘Person’으로 한다.
2. DNS 레코드 설정 (Wiring) 도메인을 샀다고 끝이 아니다. “이 도메인을 치면 저 서버로 가세요”라고 표지판을 세워야 한다. 이를 DNS 레코드 설정이라고 한다.
- Route 53 메뉴 중 ‘호스팅 영역(Hosted zones)’ 클릭
- 구매한 도메인 클릭 후 ‘레코드 생성(Create record)’ 버튼 클릭
- 레코드 유형 A 선택: ‘A’는 Address(주소)의 약자다. 도메인과 IP를 매칭한다.
- 값(Value): 지난 글(3편)에서 생성한 Lightsail의 고정 IP를 입력한다.

[Action 2] 마법 같은 SSL 인증서 적용
이제 보안을 적용할 차례다. 라떼는 말이야, 이 과정이 정말 험난했다. 예전에 Vue.js 프로젝트를 배포할 때 OpenSSL로 인증서를 직접 발급받고, Nginx 설정 파일을 열어 암호화 키 경로를 한 땀 한 땀 지정해주다가 오타 하나로 서버가 먹통이 된 적이 한두 번이 아니다. 인증서 갱신 날짜를 놓쳐 사이트가 마비된 악몽도 있다.
하지만 AWS Lightsail(정확히는 Bitnami 스택)은 이 과정을 bncert-tool이라는 마법의 도구로 해결했다. 복잡한 OpenSSL 명령어는 잊어도 된다.
1. 터미널 접속 Lightsail 콘솔에서 주황색 터미널 아이콘(Connect using SSH)을 누른다.

2. bncert-tool 실행 검은 화면이 뜨면 다음 명령어를 입력한다. sudo /opt/bitnami/bncert-tool
3. 대화형 설정 이제 도구가 묻는 말에 대답만 하면 된다.
- Domain list: 구매한 도메인을 입력한다. (예:
ys-note.com www.ys-note.com) - Redirect HTTP to HTTPS: 당연히
Y다. 보안 접속을 강제한다. - Email: 인증서 갱신 알림을 받을 이메일을 적는다.
이 과정이 끝나면 자동으로 무료 인증서(Let’s Encrypt)가 발급되고, 웹서버 설정까지 알아서 변경된다. 예전처럼 설정 파일과 씨름할 필요가 전혀 없다.
[Troubleshooting] 설정 후 확인사항
Q. 사이트에 접속이 안 되거나 예전 화면이 나온다. DNS 정보가 전 세계 네트워크에 퍼지는 데(전파) 시간이 걸린다. 보통 30분 내외지만, 길게는 24시간까지 걸릴 수 있다. 커피 한 잔 마시고 느긋하게 기다리자.
Q. 자물쇠가 안 보인다. 브라우저 캐시 문제일 수 있다. 시크릿 모드(Incognito)를 켜서 접속해 보자. 주소창 옆에 자물쇠 아이콘이 보인다면 성공이다.
[Conclusion] 비로소 온전한 웹사이트가 되었다
이제 주소창에 내 도메인을 입력하면 안전한 HTTPS로 접속된다. 43.200… 같은 IP를 외울 필요도 없고, 방문자에게 “보안이 취약함”이라는 경고를 띄우지도 않는다.
여기까지 오느라 고생했다. 비용을 중간 정산해 보자.
- 서버(Lightsail): 월 $7 (우리가 선택한 1GB RAM 플랜)
- 도메인(Route 53): 연 $15 (월 환산 시 약 $1.25)
- SSL 인증서: 평생 무료 (Let’s Encrypt)
- 합계: 월 만 원 초반대 ($8.25)
이제 하드웨어와 인프라 세팅은 완벽하게 끝났다. 다음 글부터는 본격적으로 워드프레스 관리자 화면에 접속해, 투박한 기본 테마를 벗어던지고 개발자스러운 디자인을 입히는 과정을 시작하겠다.