이번 포스팅에서는 가비아에서 도메인을 발급받아 인스턴스에 적용하는 과정들을 기록해보려고 합니다.
그리고 (요금을 줄이기 위해) 로드밸런서를 사용하지 않고 프록시 서버를 직접 만들어서 적용하는 과정도 함께 기록하려고 합니다.
0️⃣ 내가 뭐하려는지 알기
☘️ 가비아 도메인
: 나의 도메인 주소를 소유하는 곳
- ip 주소가 아닌 ssddoStory.com 처럼 도메인 주소를 구매할 수 있는 사이트입니다.
- 도메인을 소유하게 되면 해당 도메인의 DNS 설정을 할 수 있습니다.
☘️ AWS Route53
: DNS 서버 (도메인 이름을 ip 로 변환)
- 가비아에서 산 도메인을 Route53에 위임해서 DNS 관리를 합니다.
☘️ let's encrypt
: 무료 SSL 인증서 발급
- HTTP가 아닌 HTTPS 로 암호화된 트래픽을 제공하려면 SSL 인증서가 필요합니다.
- let's encrypt 는 그 인증서를 무료로 발급해주는 기관입니다.
- 인증서는 acm에서도 발급받을 수 있지만 커스텀 프록시에서는 발급받은 인증서가 필요하기에 본 포스팅에서는 let's encrypt 에서 발급받고자 합니다.
☘️ 커스텀 프록시
: SSL 종단처리, 로드밸런서 대체
- aws 로드밸런서를 사용하면 요금이 추가되기 때문에 직접 프록시 서버를 커스텀해서 띄움으로써 외부 요청을 내부 서비스로 연결하려고 합니다.
1️⃣ 가비아 도메인 발급받기
가비아에 접속하여 회원가입/로그인을 진행해줍니다.
그리고 아래의 검색창에서 원하는 도메인을 입력해줍니다.
그리고 아래의 검색 결과에서 도메인을 선택할 수 있습니다.
저는 실운영이 아닌 장례를 앞둔 프로젝트에 적용할 예정이기 때문에 가장 저렴한 것을 선택하였습니다.
아래처럼 신청 정보들을 기입한 이후에 다음 단계를 클릭합니다.
그리고 My가비아로 들어가서 구입 내역을 확인합니다.
이용 중인 서비스 > 도메인 메뉴를 클릭합니다.
관리를 클릭하면 아래 사진과 같은 내용들을 확인할 수 있습니다.
가비아 페이지는 일단 요 상태로 놔두고, aws 의 Route53 으로 접속합니다.
2️⃣ AWS Route53
로그인을 한 후에 아래 사진처럼 호스팅 영역 메뉴로 이동합니다.
그리고 호스팅 영역 생성을 클릭해줍니다.
가비아에서 구입했던 도메인을 작성하고, 자신의 서버에 맞게 설정을 한 후에 호스팅 영역 생성 버튼을 클릭합니다.
그리고 다시 호스팅 영역 메뉴로 들어가보면 생성한 호스팅을 확인할 수 있습니다.
생성된 호스팅 영역 이름을 클릭하면 호스팅 영역 상세를 볼 수 있습니다.
이때 NS 유형의 네 개의 호스트를 가비아에서 네임서버 추가를 해주어야 합니다.
가비아 네임서버 설정은 공식 사이트에서도 확인할 수 있습니다.
(하지만,, 하지만 나ㄴ는 ,, 기록중이니까) 그러나 함께 확인해보겠습니다.
일단, 위의 NS(네임서버)에서 확인했던 네 개의 값들을 복사해줍니다.
그리고 다시 가비아로 돌아가겠습니다.
도메인 상세에서 네임서버 설정 버튼을 클릭해줍니다.
그리고 아래처럼 1차, 2차, 3차 ,,, 에 각각 하나씩 입력해주면 됩니다.
이때, Route53 의 NS 유형에서의 값이 net. 이나 org. 또는 co.uk. 등으로 끝난다면 입력할 때에는 net 이나 org 또는 co.uk 처럼 맨끝의 . 은 지우고 입력해주어야 합니다.
소유자 인증을 하고 적용을 마칩니다.
그리고 다시 Route 53 으로 돌아와서 레코드 생성 버튼을 클릭해줍니다.
레코드 이름은 빈 값으로 해도 되고, 다른 이름을 지정하셔도 됩니다.
값에는 EC2 의 고정 ip 를 작성하고 나머지 정보를 서버에 맞게 설정한 후 레코드 생성 버튼을 클릭합니다.
여기까지 완료하면 기존의 ip 주소였던 것에서 설정한 도메인으로 접속이 되는 것을 확인할 수 있습니다.
3️⃣ 네임서버 등록(가비아) 과 레코드 생성(Route53)
네임서버(NS) 와 레코드(record) 가 계속 언급이 되었기에 이 부분을 정리하고 넘어가보려고 합니다.
예를 들어보겠습니다.
소금빵을 파는 가게가 있습니다.
이 빵집의 상호명은 소금빵상회입니다.
그리고 소금빵상회의 주소는 서울시 강남구 00길이라고 합니다.
이것을 위에 설정한 것과 연관지으면 아래와 같습니다.
- 가비아에 도메인을 등록한 것
→ 소금빵집의 상호명을 "소금빵상회"로 등록한 것 - 가비아에 Route53 네임서버를 설정한 것
→ 소금빵상회 관련 정보는 "AWS Route53이라는 팻말에서 확인하세요"라고 표시한 것 - Route53에 레코드를 생성한 것
→ Route53 팻말에 "이 상호명의 주소는 서울시 강남구 XX길(EC2 고정 IP)입니다" 라고 적어둔 것 - 누군가 소금빵상회를 찾으려 한다면
→ 네임서버 설정을 통해 Route53 팻말을 확인하게 되고,
그 팻말에는 "그 집 주소는 xx.xxx.xxx.xxx(IP)"라고 적혀 있어 실제 위치까지 도달할 수 있게 됨
그리고 전체 dns 흐름을 도식화하면 아래와 같습니다.
[사용자 브라우저]
↓ 내도메인.shop 도메인 입력
↓
[글로벌 DNS 시스템]
↓ '내도메인.shop 정보는 어디에서 볼 수 있지?'
↓
[가비아 네임서버 설정 확인]
↓ '아하 이 도메인은 Route53이 관리하네'
↓
[AWS Route53 네임서버로 요청 이동]
↓ Route53이 A레코드, CNAME, etc. 읽음
↓
'A레코드 없네? IP 주소를 모르겠다. 접속 불가'
or
'있구나! → IP: xx.xxx.xxx.xxx 로 드가자'
↓
[브라우저가 해당 IP로 연결 시도]
체력이슈로 (2)편에서 이어서 작성하겠습니다.
'공통' 카테고리의 다른 글
[error] No mapping found for HTTP request with URI 에러 (0) | 2024.01.07 |
---|---|
[공통] 네트워크 프레임워크 정의와 종류 (비동기, 동기) (1) | 2023.03.14 |
[ect] 객체지향 설계 SOLID 5 원칙 (0) | 2023.02.15 |
[Git] 검색하기 귀찮아서 모아둔 명령어 (0) | 2023.01.04 |
[etc] GitHub CLI 명령어 모음 (0) | 2022.03.14 |