도메인
ip주소는 숫자로 되있기에 사용자가 입력하기가 힘들다. 그래서 문자로 된 주소를 만든 것이 도메인이다.
DNS
Domain name system, 도메인에 관련된 시스템. 전화번호부 관련 내용을 저장하는 곳
시스템인 이유는 다층적으로 구성된 네트워크에 분산되어 도메인 정보들이 저장되고 조회된다.
1. 브라우저에 www.naver.com를 입력하면 브라우저는 ip주소를 모르기 때문에 pc에서 설정된 local DNS server로 연결한다.
2. 사진 속에 서버 하나하나가 DNS server (=name server)이다.
3. local DNS server는 pc 마다 다르고 내 컴퓨터는 208.67.222.222 임을 확인 할 수 있었다. 통신사별로 다르다.
4. local DNS 서버에 이미 캐싱되어있는 주소가 아니라면 root 서버에 요청한다.
5. root 서버는 .com 으로 끝나는 도메인을 담당하는 서버의 ip주소를 local DNS server에 알려준다.
6. .com으로 끝나는 서버는 다시 naver.com으로 끝나는 서버 ip주소를 알려준다.
7. 여러 호스트 네임별 ip주소가 있다. 그중 요청하는 ip주소를 제공하고 그 ip주소로 연결하면 www.naver.com 서버로 접속할 수 있다.
그림에 naver.com 이라 적혀있지만 하나의 네임서버는 기업이나 국가(.kr, .jp 등) 가 운영한다. 하나의 네임서버 안에 다양한 도메인이 있다.
Route 53을 이용하여 EC2와 도메인을 연결해보겠다.
$ ssh jun //터미널을 열고 EC2 인스턴스에 접속
$ sudo apt update // 시스템 패키지 업데이트
$ sudo apt install nginx -y // Nginx 설치
$ sudo systemctl start nginx // Nginx 서비스 시작
$ sudo systemctl status nginx // Nginx 서비스가 정상적으로 실행 중인지 확인
호스팅 존 생성
도메인 이름에 대한 DNS 정보의 집합. 각각의 도메인은 독립된 호스팅 존을 갖는다.
DNS 레코드
도메인 이름을 특정 목적지로 라우팅하는 규칙
A 레코드로 ec2 서버의 ip주소와 연결
NS 레코드로 네임서버 4개를 설정하여 도메인에 권한을 가진 네임서버를 지정합니다.
SOA는 도메인에 대한 권한 있는 네임 서버 및 권한 자료의 시작점을 지정한다. 수많은 네임서버들은 연결되어있고 SOA에 적힌 내용을 토대로 서로 업데이트 한다.
도메인을 입력했을때, nginx에서 지정해놓은 기본 페이지를 확인할 수 있다.
AWS Route 53 서비스를 이용하면 DNS server를 제공받을 수 있다. 도메인을 구매하여 Route 53에 호스팅존을 만들었다.
가비아에서 도메인을 사면 자동으로 가비아 네임서버를 사용하는 데 우린 AWS의 네임서버를 사용할 것이기에 가비아 DNS 설정에서 네임서버 주소를 AWS 네임서버 주소로 다 바꿔줘야 한다.
A 레코드에 ec2 인스턴스 ip주소를 추가하고, 가비아에 DNS server 4개 주소를 적어준다.
그 결과 사용자가 도메인을 웹브라우져에 입력하면 AWS가 제공하는 네임서버로 유도되고 A레코드 내용에 따라 EC2 서버로 연결되며 지정해 놓은 nginx 화면이 웹브라우져에 나오게 된다.