도메인 등록을 하기 전 알아야 하는 것들 # DNS
웹사이트 개설에는 도메인이 필수적입니다.
도메인은 인터넷상의 주소로,
등록을 통해 사용자들이 웹사이트에 접속할 수 있게 해 주는데요.
오늘은 도메인이 어떤 것이고, 어떻게 웹사이트와 연결해 주는지 정리하겠습니다.
1. 도메인
1-1. 도메인
인터넷은 수많은 컴퓨터들이 서로 연결되어 있는 거대한 네트워크인데,
각 컴퓨터는 인터넷에 연결되 있는 동안, 유일한 IP 주소를 가지도록 되어 있습니다.
이 때 IP주소들은 모두 숫자로 구성되어 있는데요.
예를 들면, '192.0.2.1'과 같이요.
이런 주소는 기억하기가 너무 어렵습니다.
그래서, 네트워크의 컴퓨터들의 구분은 이러한 숫자로 하되,
사람들에게는 이에 매칭되는 기억하기 쉬운 이름을 사용할 수 있도록 하고 있는데요.
'192.0.2.1'이라는 IP 주소 대신,
'example.com'이라는 도메인을 사용하는 것 입니다.
1-2. DNS(Domain Name System)
위에서 '192.0.2.1'과 같은 IP주소를 'example.com'과 같은 도메인으로 매칭해서 사용한다고 하였는데요.
이 때 사용되는 것이 바로 DNS라고 하는 'Domain Name System'입니다.
이 시스템이 도메인 이름('example.com')을 해당 컴퓨터의 IP 주소로 변환해 주는 데,
이를 Name Resolution 이라고 합니다.
다시 한번 정리하면,
모든 서버 컴퓨터는 ip주소를 가지고 있고,
도메인 이름과 ip주소를 DNS에 등록해서,
유저가 도메인을 브라우저에 입력했을 때,
등록된 ip주소로 유저가 접속할 수 있게 해 주는 것 입니다.
1-3. DNS 매칭 과정
그런데, 어떻게 도메인 이름과 IP주소를 매칭해 줄 수 있을까요?
그것은 전세계에 분산되 저장된 DNS서버에,
이름과 IP주소가 매칭된 기록이 있기 때문입니다.
이 서버들에 이름과 IP주소가 매칭된 기록을 저장하고, 그것을 가져오면 되는 것 입니다.
그래서 도메인을 파는 업체들은 도메인 이름만 파는 것이 아니라,
이러한 DNS서버 호스팅서비스까지 같이 제공합니다.
이 과정을 좀 더 자세히 보면 다음과 같습니다.
- 도메인 이름을 업체에서 구매
- 해당 도메인 이름에 대한 DNS 레코드를 설정
- 도메인이름과 IP주소를 매칭한 A레코드 설정
- 필요한 경우 CNAME레코드 설정
- 글로벌 DNS서버 업데이트
- (자격이 있는) 도메인 업체에서 위에서 설정 한 것을 DNS서버에 배포
참고로 위에서 언급한,
'A 레코드'는 "Address Record"의 약자인데요.
도메인 이름을 IP 주소(IPv4프로토콜)로 직접 매칭하는 것을 말합니다.
'CNAME 레코드'는 "Canonical Name Record"의 이구요.
이 레코드는 하나의 도메인 이름(별칭)을,
다른 도메인 이름(정규 이름)에 매핑하는데 사용됩니다.
예를 들어, 'http://www.example.com'이 'example.com'으로 연결되어 있다면,
이 정보는 CNAME 레코드에 저장됩니다.
이 경우 'http://www.example.com'은 별칭이고, 'example.com'은 그것의 정규 이름입니다.
3. 브라우저에서 도메인 입력 후 IP주소 호출 과정
사용자가 브라우저에 도메인을 입력하고 나면,
다음과 같은 과정으로 IP주소가 호출되어 집니다.
- 도메인 이름을 입력
- 사용자의 컴퓨터가 먼저 로컬 DNS 서버에 요청을 보내 도메인 이름에 대한 IP 주소를 질의
- 로컬 DNS 서버에 해당 정보가 없는 경우, 요청은 상위 DNS 서버로 전달
- 필요한 경우 루트 DNS 서버까지 거슬러 올라갈
- 해당 도메인의 정보를 관리하는 DNS 서버가 찾아지게 됨
- 해당 DNS 서버가 도메인 이름에 해당하는 IP 주소 정보를 제공
4. 도메인 이름과 URL
도메인 이름과 URL(Universal Resource Locator)은 종종 혼동되지만,
두 용어는 서로 다른 개념입니다.
도메인 이름은 특정 서버의 주소이구요.
URL은 인터넷 상의 특정 리소스인 웹페이지나 이미지 파일 등을 가르킵니다.
즉, URL이 도메인 이름을 포함한 넓은 개념이라는 뜻 입니다.
예를 들어, 'http://www.example.com/index.html'은 URL인데,
여기서 'http://www.example.com'이 도메인 이름입니다.
5. 도메인 이름과 매칭된 IP주소 확인해 보기
터미널에서 ping 명령어와 함께,
도메인이름을 입력하면,
매칭되는 ip 주소를 볼 수 있습니다.
ping <도메인네임>
잘 알고 있는 사이트들의 주소를 입력해 보시면, 매칭되어진 IP주소를 확인해 볼 수 있습니다.
위에서 알아보았던 DNS시스템에 따라서 등록된 주소로 매칭이 되어지는 것 이지요.
6. 등록된 도메인을 서버의 IP 주소와 연결하기
6-1. 도메인 연결설정으로 이동
도메인 업체에서 구매한 도메인을,
자신이 가지고 있는 서버에 등록하는 방법도 알아야 하겠지요.
여러 업체가 있겠지만, 여기서는 가비아를 기준으로 정리해 보겠습니다.
'홈페이지 > My가비아'로 이동합니다.
이용중인 서비스 목록에서 '도메인'을 클릭해 줍니다.
그러면, 자신이 구매한 도메인 리스트들이 보이는데요.
여기서 '관리'버튼을 클릭해 줍니다.
여기서 도메인 관리 화면이 나오는데요.
여기서 핵심은 도메인 설정 화면입니다.
'DNS 정보'에서 DNS 레코드 설정으로 이동해 줍니다.
6-2. 루트 도메인 레코드 추가하기
'레코드 수정'버튼을 누르면 나오는 아래 화면에서,
'+ 레코드 추가'버튼을 눌러줍니다.
드롭다운 메뉴에서 A타입을 선택해 줍니다.
호스트에는 루트 도메인으로 연결시에, '@'를 입력해 줍니다.
(www.test.com이라면, 루트 도메인은 test.com이고, 서브 도메인은 www임)
값에는 서버 컴퓨터의 ip주소를 입력해 주고 확인을 누른다음, 저장해 주면 됩니다.
TTL은 DNS 레코드가 캐시에 저장되는 시간을 초 단위로 지정하는 것 인데요.
600초면 10분이 되겠지요.
값이 낮을수록 DNS변경사항이 더 빨리 전파됩니다.
대신, 서버에 대한 쿼리수가 증가해서 부하가 커질 수 있구요.
너무 높으면, 변경사항 전파에 시간이 오래 걸립니다.
DNS 설정 변경 시, 최대 48시간까지 연결이 불안정할 수 있는데요.
중요한 변경 전에는 TTL을 낮추어 변경 사항이 빨리 전파되도록 할 수 있습니다.
6-3. 서브도메인 레코드 추가
위와 똑같은 방법으로 하되,
이번에는 호스트에 서브도메인으로 'www'를 추가해 줍니다.
그럼 앞의 서브도메인 주소에 www없이 또는 www있는 경우 모두 유저가 접속할 수 있게 됩니다.