[GCP]DNS 부터 하나씩 Google cloud 로 서비스 해보기- 1탄 Cloud DNS

이정운 (Jungwoon Lee)
7 min readJul 28, 2019

--

안녕하세요 이정운 입니다.

그동안은 Google cloud 의 조금 전문적인 기술 위주로 공부하고 해당부분을 정리해서 이야기로 다뤘는데, 처음 접근하시는 분들에게는 조금 어렵게 다가갈 수 있을 것이라는 생각에 다시 한번 기초 부분을 공부하면서 이를 이야기로 정리해보면 어떨까하는 생각으로 새로운 시리즈를 시작하려고 합니다. 그래서 하나의 간단한 운영 서비스를 Google cloud 로 적용한다는 가정에서 어떤 부분을 살펴보고 고려하면 좋을지 테스트 하는 형태로 몇가지 이야기를 연결하여 진행하도록 하겠습니다.

기초에도 여러가지가 있지만 이번 시간에는 서비스의 가장 맨처음에 필요한 도메인과 DNS 관련된 부분으로 시작을 할려고 합니다. 특히나 Google cloud 서비스 중에 유일하게 SLA 100% 를 자랑하는 Cloud DNS 를 활용해서 첫 시작을 해보려고 합니다.

Cloud DNS 는 Google 과 동일한 인프라에서 실행되어 확장성과 안정성이 높은 관리형 DNS 서비스입니다. 지연 시간이 짧고 가용성이 높으며, 사용자에게 경제적으로 서비스를 제공할 수 있는 장점이 있습니다.

https://cloud.google.com/dns/?hl=ko

그럼 지금부터 하나씩 하나씩 실제 테스트를 해보면서 살펴볼까요?

#1) Cloud DNS 설정 하기 — 네임서버 변경

우선 해당 이야기를 진행하기 전에 도메인(예:freejava.co.kr 같은)이 필요한데 여기서 도메인을 직접 구매하는 것을 다루지는 않을것이고 도메인 구매 업체를(godaddy 나 cafe24 등) 통해서 이미 도메인을 구매해서 보유하고 있다는 가정을 가지고 이야기를 진행하도록 하겠습니다.

처음으로 Cloud DNS 설정을 하려면 GCP 관리 콘솔에서 “네트워크 서비스 > Cloud DNS” 를 클릭하여 해당 메뉴로 들어갑니다. 그리고 DNS 영역 만들기를 클릭합니다.

DNS 영역은 동일한 도메인 이름(예: freejava.co.kr)을 공유하는 모든 DNS 레코드의 컨테이너로서 네임서버 집합을 가지고 있습니다. (상세 내용은 링크 참고-https://cloud.google.com/dns/zones/?hl=ko)

보유하고 있는 도메인 이름을 넣어주고 DNSSEC 사용 여부를 결정한후 만들기를 하면 하단과 같이 DNS 영역이 바로 만들어지고 Cloud DNS 를 위한 네임서버 주소를 확인 가능합니다. 참고로 네임서버란 실제로 freejava.co.kr 이라는 도메인이 들어왔을때 124.1.1.1 이라는 IP 로 변경해주는 역할을 수행하며 이 네임서버 주소는 기존 도메인 구입 업체를 통해서 변경해야 할 주소이기 때문에 따로 기억해두거나 메모해 둡니다.

다음으로 기존 도메인 구입 업체를 통해서 네임서버 변경 작업을 수행합니다. 이 작업은 업체마다 다를듯 한데 Cafe24 의 경우에는 네임서버 변경 메뉴가 있어서 하단과 같이 사용자가 쉽게 변경을 할 수 있습니다.

참고적으로 네임서버 변경에는 일반적으로 24~48 시간 정도가 소요됩니다. 특히나, 운영환경이라면 ISP Cache 가 반영되는거 까지 고려해야 되는데 넉넉잡고 1주일 정도 소요되며 이때는 만약을 위해서 기존 서버를 유지하는 형태의 접근을 권장드립니다.

Cloud DNS로 이전
https://cloud.google.com/dns/docs/migrating?hl=ko

생성한 DNS 영역의 정보는 관리 콘솔 뿐만 아니라 하단과 같이 gcloud 명령을 통해서도 확인이 가능합니다.

gcloud dns managed-zones describe freejava

Cloud DNS 의 네임서버에 해당 도메인이 적용되었는지 확인하기 위해서는 하단과 같은 명령을 통해서 확인 가능합니다.

watch dig freejava.co.kr @ns-cloud-a1.googledomains.com

또는, 하단과 같은 명령을 통해서도 해당 도메인이 어느 네임서버를 호출하는지 알 수 있습니다.

watch dig +short NS freejava.co.kr

위와 같은 명령들을 통해서 정상적으로 네임서버 변경이 이루어지고 Cloud DNS 를 호출되는지 확인할 수 있습니다.

#2) Cloud DNS 에서 레코드 추가하기

네임서버가 연동이 된 후 Cloud DNS 를 이용해서 실제 서비스를 하려면 DNS 영역에 이제 레코드를 등록해야 합니다. 이때 사용할 수 있는 DNS 레코드의 종류와 설명은 하단의 링크를 참고하시기 바라겠습니다.

https://cloud.google.com/dns/records/?hl=en

우선 IP 를 직접 매핑하기 위한 A Record 를 추가해보도록 하겠습니다. 레코드 모임 만들기를 클릭해서 리소스 기록 유형을 A 로 하고 TTL 시간 설정 확인후에 실제 해당 DNS 에 매핑될 IPv4 주소를 하단과 같이 입력합니다. (해당 IP 는 서비스 체크용으로 간단하게 nginx 가 설치된 GCE 의 외부 IP 를 사용 했습니다.)

그리고 일반적으로 도메인 주소 앞에 기본적으로 www 가 사용되므로 www 값으로 alias 를 추가할 수 있는 CNAME 을 하나 더 만듭니다. CNAME 은 결국 alias 이기 때문에 www.freejava.co.kr 로 DNS 요청이 들어오면 freejava.co.kr 로 들어온 것과 동일하게 취급하게 됩니다.

CNAME

위와 같은 작업을 하시게 되면 대략 하단과 같이 작업된 것을 확인할 수 있습니다.

A Record 추가가 제대로 되어 있는지 nslookup 명령을 통해서 해당 도메인을 호출해서 지정된 IP 가 나오는지 확인합니다. (반영에 약간의 시간이 소요되기 때문이고 저는 5분정도 걸리네요.)

nslookup freejava.co.kr

정상적으로 IP 반환이 확인되면 이제 실제로 브라우저를 이용해서 테스트 해보시고 하단과 같이 결과가 나오는 것을 확인할 수 있습니다.

여기까지 잘 따라 오셨다면 간단하게 미리 구입한 도메인을 가지고 Cloud DNS 에 도메인 연동 및 설정, 서비스 하는 것을 테스트 해보신 것입니다. 보시면 아시겠지만 아주 간단하고 쉽게 해당 설정이 가능하며 기언급 한것처럼 무려 100% 의 SLA 를 보장한다고 합니다. 그럼 이번 이야기는 여기서 마무리 하고 다음 이야기에서 뵙겠습니다. 휘리릭~~~

Disclaimer: 본 글의 작성자는 Google 직원이지만 Google cloud 를 공부하는 한 개인으로서 작성된 글입니다. 본 글의 내용, 입장은 Google 을 대변하지 않으며 Google 이 해당 콘텐츠를 보장하지 않습니다.

참고 자료 #1

Cloud DNS
https://cloud.google.com/dns/?hl=ko

Quickstart
https://cloud.google.com/dns/docs/quickstart

Managing Records
https://cloud.google.com/dns/records/?hl=en

2.(입문서)Google Cloud DNS
https://brunch.co.kr/@topasvga/169

--

--

이정운 (Jungwoon Lee)

Technical engineer who dreams better future. (These thoughts are my own personal opinions, and do not reflect or represent Google’s opinions or plans.)