오늘은 AWS의 Route53을 이용해 도메인과 ELB 를연결하는 방법에 대해서 정리해 보도록 하려고 하는데요.
먼저 Route53에 대해서 알아보도록 하겠습니다.
1. Route53
Route53을 처음 키게 되면, 아래와 같이 Route53의 기능들을 설명한 선택 화면이 나오는데요.
크게는 첫번째인 DNS(Domain Name System)을 관리하는 기능과,
Traffic을 관리하고 서버상태를 관리해주는 기능이 있구요.
마지막으로는 Domain을 구입할 수도 있습니다.
참고로 AWS에서 도메인을 구매하는 것은, 과정도 편하고 수수료도 비싸지 않은 편이어서,
환율이 낮을때는 특히나 괜찮은 것 같습니다.
게다가 Hosted Zone까지 자동으로 설정을 해 주니 더욱 좋네요.
이 글에서는 DNS를 관리하여서 사이트를 기존의 도메인과 연결하는 방법과,
AWS에서 도메인을 구입하는 방법을 정리해 보겠습니다.
먼저 DNS를 관리하여서 도메인과 AWS서비스를 연결하는 방법을 알아보도록 하겠습니다.
2. DNS Management
Route53을 이용하면, 도메인과 IP주소를 매칭시켜 주는 역할을 할 수 있는데요.
이 방법을 하나씩 정리해 보도록 하겠습니다.
참고로 DNS(Domain Name System)에 관해서는 아래글을 참조해 주세요.
>> DNS(Domain Name System)에 대한 총정리 #IP주소 #DNS Server
2-1. Hosted Zones 생성
위에서 첫번째인 DNS management로 들어가시거나,
AWS의 Console에서 Route53> Hosted zones로 들어가주면 됩니다.
Create Hosted Zone을 클릭하면 아래와 같은 화면을 볼 수 있는데요.
Domain Name에 가지고 있는 도메인 주소를 적어주고 하단의 Create버튼을 눌러주면,
Name Server가 생성되게 됩니다.
이제 아래와 같은 화면을 볼 수 있을텐데요.
아래의 타입중 NS가 바로 도메인과 IP주소를 매칭시켜주는 Name Server의 약자입니다.
위에서 입력한 Domain에 대한 Name Server가 생성된 것 이지요.
4개 정도가 보이실텐데요.
이렇게 많은 이유는 하나의 서버가 죽으면 다른 서버로 대체하기 위해서 입니다.
2-2. 소유한 Domain의 NameServer를 Route53으로 변경하기
이제, 소유한 Domain의 대행사 업체에 가서, NameServer 정보를 Route53으로 변경해야 할 텐데요.
저의 경우는 Gabia에서 Domain을 구매하였기 때문에, Gabia기준으로 진행해 보겠습니다.
하지만 다른 Domain업체에서 구매하셨더라도, 적용방법이 크게 다르지 않아서 어렵지 않을 것 같습니다.
먼저 Gabia에 접속해서 변경해 보겠습니다.
우측 상단의 "MyGabia"로 들어가서,
하단 도메인 탭에서 설정하기를 원하는 도메인의 "관리툴"버튼을 눌러주면 설정화면이 나옵니다.
상단에 아래 이미지와 같이 네임서버를 설정하는 버튼이 나오는데요.
(타 도메인 업체에 가도, 네임서버를 설정하는 메뉴는 다 있는데요. 위치만 업체마다 조금씩 다를 것 입니다.)
처음 여기를 방문하시는 분들은, 도메인 업체의 네임서버를 보게 되는데요.
처음 구매한 도메인에 접속시 해당 업체의 네임서버에 설정되어 있는 광고같은 페이지를 보게 되는 이유는 이 때문입니다.
설정을 누르면,
1차~4차에 해당하는 곳에,
위에서 얻은 Route53의 NS타입 값의 Value로 나와있는,
4개의 NameServer들의 주소를 다 적어줍니다.
2-3. ELB연결하기
위에서 Domain과 Route53의 Name서버를 연결해 주는 작업을 해 보았습니다.
이제는 Route53과 AWS의 서비스들을 연결해 주어야 하는데요.
저희는 AWS서비스 중에서도,
부하분산을 해주는 ELB(Elastic Load Balancer)를 Route53에 연결해 보겠습니다.
AWS콘솔 > Route53> Hosted Zones로 이동한 다음,
위에서 설정했던 도메인을 선택해 줍니다.
상단에서 GoToRecordSet을 눌러주거나, 해당 도메인을 클릭해주면
Record를 설정하는 화면이 나오는데요.
Record라는 것은 Name서버의 정보들을 가르키는 단위인데요.
하나의 정보가 하나의 Record라고 보시면 됩니다.
기존에는 NS라고 하는 Name Server와 SOA가 보이실 텐데요.
이제 상단의 Create Record Set 버튼을 눌러서,
Route53과 AWS서비스를 이어줄 Record를 작성해 보겠습니다.
2-4. ELB와 연결해주는 Record작성
Record를 작성하는 화면을 보면,
첫줄에 Name으로 sub domain을 적을 수 있는데요.
여기서는 "www"를 적어주도록 하겠습니다.
두번째 줄의 Type은 A Record타입으로 해 줍니다.
참고로, A레코드와 CNAME 레코드에 대해서는 아래 글을 참조해 주세요.
>> A Record와 CNAME Record의 차이를 알아보자
세번째 줄에서 선택하는 Alias가 중요한데요.
도메인과 IP주소를 연결시킬 때, 숫자 IP주소로 연결하고자 한다면, NO를 해 주면 되겠지만,
그렇지 않고 생성한 AWS서비스와 연결시키고자 한다면,
Alias를 Yes로 해 주면 됩니다.
Yes로 해주면 선택할 수 있는 서비스들을 아래의 Alias Target에서
리스트 중 하나로 선택할 수 있는데요.
여기서 ELB를 선택해 주면 됩니다.
다음은 숫자IP를 가진 서버와 Route53을 연결해 보도록 하겠습니다.
예를들어서, ElasticIP를 이용해서 EC2서버를 고정IP에 연결할 때, 사용할 수 있겠지요.
2-5. 숫자 IP와 연결해주는 Record 작성
Name은 "www"를 적어주도록 하겠습니다.
두번째 줄의 Type은 A Record타입으로 해 줍니다.
세번째 줄에서는 Alias를 No로 해주면 되겠구요.
네번째 줄의 TTL은 네임서버로부터 IP주소를 받은 결과값을 캐쉬에 저장해 놓는 시간인데요.
이 시간동안 다시 쿼리가 들어오면, 요청하지 않고 캐쉬값을 그대로 이용하므로,
조회속도가 빨라지겠지요.
대신 변경사항이 적용되는데 있어서는 이정도 TTL의 시간만큼 지연이 될 수 있으므로,
무언가를 변경하기 전에는 이 값을 줄여놓아야 하겠습니다.
다섯 번째줄의 Value에는 IP주소를 적어주면 되겠습니다.
이 글에서는 A 레코드를 등록하는 방법만 정리하였는데요.
CNAME 레코드도 동일하게 Type에서 CNAME레코드로 선택해준다음 해당 주소를 Value에 넣어주기만 하면 됩니다.
이렇게 Route53을 이용해서 도메인과 IP주소를 연결해 보는 방법을 정리해 보았는데요.
마지막으로 AWS에서 Domain을 구입하는 방법에 대해 정리해고 마무리하도록 하겠습니다.
3. Domain구입
아래 이미지와 같이 쉽게 Domain을 구입해서 관리하거나,
기존의 Domain을 Transfer해 오는 것이 가능합니다.
Register Domain을 눌러 보면, 아래와 같이 화면이 나옵니다.
AWS의 도메인 구입비용에는 중개 수수료가 많이 붙지는 않는 것 같아요.
".com"이 일괄 12달러로 나오는데요.
국내 사이트에서는 약간 할인해서 판 다음, 연장할 때는 비싸게 파는 곳도 많은데 말이지요.
이렇게 도메인을 구입하는 과정을 거치면,
자동으로 DNS서버인 hosted zone을 생성해 주기때문에
위에서 했던 작업까지도 자동으로 해주는 것이 됩니다.
이 hosted zone을 위에서 했던 것 처럼, ELB 같은 AWS서비스와 연결해 주기만 하면 되겠지요.
4. 정리
이상으로 Route53을 이용해서 도메인과 ELB를 연결하는 방법 및 도메인 구입방법에 대해서 정리해 보았습니다.
이 글에서 정리한 기능외에도, Route53에는 NGINX의 그것처럼 서버별로 가중치를 주어서 트래픽을 분산하거나,
유저에게 가까운 서버를 먼저 접속시키거나 하는 일이 가능하구요.
ELB가 하는 것처럼, 서버의 Health를 체크해서 트래픽을 유지시킬지 결정하게 할 수도 있습니다.
참고로 Route53은 Free Tier에는 포함되어 있지 않으므로, 무료로 사용해 볼 수는 없어서,
개별적인 기능별로 요금이 다 붙는 다는 점에 있어서 여러가지 고려를 해 보아야 하기는 합니다.
기회가 있으면 이런 기능들에 대해서도 다른 글을 통해 정리해 보려고 합니다.
더 좋은 방법이 있으면 이 글을 통해서 업데이트 하도록 하겠습니다.
'Cloud Services > AWS, Mongo Atlas' 카테고리의 다른 글
RDS를 복제해 주는 Replication 설정하기 #Master #Slave #AWS (1) | 2020.05.09 |
---|---|
EBS(Elastic Block Storage)에 대한 정리 #EC2 #AWS (0) | 2020.05.08 |
AWS와 Firebase 비용에 관한 생각 정리 (0) | 2020.05.07 |
사용자수에 따른 AWS 아키텍처 설계하기 (1) | 2020.05.06 |
ELB에 무료 SSL인증서 받아서 설정하기 #ACM #HTTPS #AWS (0) | 2020.05.02 |
RDS 백업과 복원하기 #AWS (0) | 2020.04.28 |
EC2 시작시 사용할 Shell Script 및 Cloud-init 작성하기 #AWS (0) | 2020.04.27 |
ELB(Elastic Load Balancer) 생성해서 부하분산 적용하기 #AWS (0) | 2020.04.24 |
EC2에서 RDS서버에 접속하기 #MySQL Client #AWS (0) | 2020.04.23 |
RDS 서버 생성하는 방법 정리 #관계형 데이터베이스 #Free Tier #AWS (0) | 2020.04.22 |
댓글