728x90

전체적으로 생활코딩의 강의를 바탕으로 정리했습니다.

 

DNS를 통해 도메인을 발급 및 관리하고 AWS에 등록해주는 과정은 3단계가 맞물려 있다.

1. 도메인 발급 받기
2. AWS - Route 53
3. ACM - SSL 인증서

이 글에서는 전체적으로 DNS가 무엇인지를 알아볼 예정이다. 이에 대한 개념이 조금 헷갈릴 뿐, 도메인 발급하는 방법은 매우 간단하다!

 

Intro

 

각 컴퓨터의 주소를 의미하는 IP를 통해 서로 다른 컴퓨터끼리 통신하면서 네트워크가 발전하게 되었다. 하지만 IP주소는 너무 기억하기 어려웠고 이를 해결하기 위해 등장한 것이다 DNS 이다. DNS의 핵심은 DNS server이다. 이 곳에는 각 IP주소들에 대응하는 도메인 주소가 저장되어 있다. 우리가 만약 어떤 도메인 주소를 입력하면, 자연스럽게 DNS server에 접속하여, 그 도메인에 해당하는 IP주소를 출력한다. 우리의 컴퓨터는 이 IP주소를 읽어서 원하는 컴퓨터로 접속하여 통신할 수 있게 되는 것이다. 

 

hosts 와 IP 이해하기

 

DNS를 이해하려면 host와 IP에 대한 개념을 먼저 이해해야 한다. 각 컴퓨터 간에 통신을 하려면 통신하려는 컴퓨터의 ip 주소를 알아야 한다. 즉 모든 컴퓨터는 ip 주소를 가지고 있다. 그리고 이 ip 주소를 포괄적으로 host라고 부른다. 즉 host라는 용어가 나온다면, 서로 다른 네트워크 간의 통신과 관련된 것이라고 이해하면 된다. 실제로 이러한 통신은 우리가 개발 단계에서도 많이 보게 된다. client에서 server와 통신하기 위해서 통신을 하게 되고, 그때 통신하고자 하는 서버의 uri를 입력하게 된다. 이는 즉, 나는 서버 컴퓨터에 통신을 하겠다는 즉 서로 다른 컴퓨터 간의 통신의 단면으로 볼 수 있다.

 

보안(security)

 

내가 어떠한 ip 주소에 접근하기 위해 도메인 주소와 ip 주소를 대응하여 정리해둔 host 파일이 있을 것이다. 이를 누군가가 악의적으로 해당 ip 주소를 임의의 ip로 변경 해두면, 내가 해당 도메인을 입력 시에 잘못된 홈페이지로 접속하게 된다. 즉 별도로 ip 주소와 도메인 주소를 관리하게되면 보안에 매우 취약하다. 이를 방지하기 위해서 도메인 주소들을 잘 살펴보면 https로 프로토콜이 지정되어 있다. 평소에 우리가 일반적인 개발 과정에서 주소를 살펴보면 http로 되어 있을 것이다. 즉 https는 보안적인 기능을 추가 한 것이다.

 

DNS이란?

네트워크 상에서, 사람이 기억하기 쉽게 만들어진 도메인 주소를 컴퓨터가 처리할 수 있는 IP로 바꾸는 시스템인 Domain Name System을 일컫기도 하며, 이런 역할을 하는 서버인 Domain Name Server를 일컫기도 한다.

위의 그림을 보면 DNS에 대한 전반적인 이해가 가능할 것이다. 도메인주소를 만든다면 DNS server에 도메인과 ip 값을 대응하여 저장할 수 있게 된다. 이 server에 도메인 주소를 요청하여 해당하는 ip 주소를 출력 받음으로써 원하는 컴퓨터와 통신할 수 있다.

 

public DNS

 

DNS server도 일종의 서버컴퓨터이므로 이곳에 도메인을 등록하고 사용하기 위해서는 해당 서버의 ip를 알고 있어야 한다. 보통은 우리가 사용하는 통신사에서 제공하는 DNS server에 연결된다고 하지만, public 즉 공개적으로 사람들이 선택하여 사용할 수 있게 DNS server를 제공하기도 한다. 따라서 도메인 주소를 만들어서 등록하여 활용할 때는, 그 서비스를 무조건 정해진 것을 사용하지 않아도 되는 것이다.실제로 개념 적인 설명 이후에, 배포를 위해서 나도 실제로 도메인 주소를 만들 것인데, 이 때 freenom이라는 곳을 이용할 것이다.

 

아래의 그림은 실제 우리가 사용하는 컴퓨터(맥기준) 환경설정에서 자동으로 연결되어있는 DNS server주소를 알 수 있다. 이는 각자 컴퓨터마다 제공되는 server ip 주소가 다를 것이다.

 

도메인 이름의 구조

 

-> 실제로 도메인은 위와 같은 구조이며, 각 부분들을 전담하는 DNS server가 존재한다.이를 name server 즉 NS라고 한다.

 

 

-> 이 중에서도 root DNS server는 가장 최상단에서 ip 주소를 관리하므로 이를 알고 있는 것은 제일 중요하다. 

-> 실제로 ip주소를 알기 위해서는 root ns에 접속하여 top-level ip를 알게되고, 그렇게 top-level NS에 접속하게 된다. 그리고 second-level ip 주소를 알게 되어 NS에 접속할 수 있다. 이러한 방식으로 최종적으로 접속하고자 하는 곳의 ip 주소를 알 수 있는 것이다. 

 

위의 그림에서 우리는 일종의 등록 대행자를 통해서 도메인을 발급하여 사용할 수 있게 된다.

root는 NS 값에 top-level를 저장하고 있다. 그렇게 통신 하여서, 가장 최종적인 authoritative name server에서는 NS 값이 아니라 최종 주소의 형태로 (ip 주소와 도메인 주소로) 저장하게 된다. 

우리가 실제로 사용할 때는 우리가 접속하는 DNS server에 아래와 같이 root server를 저장해두고 위의 과정대로 통신하는 것이다.

 

DNS record & CNAME이란

 

DNS record는 DNS server에 저장하는 정보 한 건을 의미한다.

CNAME은 DNS records 중 하나로써, 서버에 도메인을 저장하는 방법 중 하나이다.

-> 도메인에 대한 별명으로써, A타입으로 지정되어 있다면 ip 주소를 출력해주고, CNAME타입으로 지정되어 있다면 www.가 없는 또다른 도메인을 지정하는 것이다.

-> 이는 일종의 별명을 붙이는 것이다. 

 

실제로 도메인 발급하기

 

1. 구글에 public DNS 혹은 무료 도메인이라고 검색하면 많은 사이트가 등장한다. 우리는 freenom 사이트를 활용했다. 

회원 가입 후에, register new domain 으로 원하는 도메인이 이미 사용하는 지를 확인하고 없으면 등록하여 사용할 수 있다.

2. 만든 domain은 my domain에서 확인 가능하다

-> 보통 이런 등록 대행자에서 name server 까지 자동으로 만들어서 관리해준다.

이렇게 만들어 준 서버 내에 도메인과 ip 주소를 연동해야 한다.

위와 같은 화면에서 target에 연동해주고자 하는 ip 주소를 입력해준다. 

(따라서 이 과정을 진행하려면 client와 server 배포를 통해 등록할 public ip 주소를 발급받아야 할 것이다)

 

 

-> 나는 도메인 등록은 무료 사이트에서 이후 이 도메인을 등록하여 관리하는 DNS server 생성과 이후의 작업은 Route53에서 진행했다.

    따라서 도메인 발급까지 완료해둔 상황에서 이제 AWS Route 53로 가서 등록 및 설정 과정을 진행하자.

 

 

728x90

+ Recent posts