- Persistent Volume ( 영구 Volume ) : 외부 스토리지의 Volume 을 인스턴스와 Mount 하여, Volume 에서 마치 로컬 Disk 처럼 사용할 수 있게 한다. 이는 실제로 Data 가 외부 스토리지의 Volume 에 저장되는 것으로 인스턴스가 삭제하더라도, Volume 에 영구적으로 Data 를 저장 가능 하다. 이를 통해, 새 인스턴스를 생성해서, 해당 Volume 과 연결하여 사용할 수 있다
- Slave 네임 서버 : 마스터 네임 서버와 함께 사용하며, 평상시에는 마스터 네임 서버가 응답을 준다. Slave 네임 서버는 마스터 네임 서버와 Zone File 을 동일한 내용으로 유지하기 위해, 꾸준히 통신을 통해 마스터 네임 서버 Zone File 의 Serial Number 와 자신의 Serial Number 를 비교하여 업데이트 된 사항을 가져와서 마스터 네임 서버와 Sync 시킨다
- 만약, 마스터 네임 서버에 문제가 생기면, Slave 네임 서버가 서비스를 제공해준다
Domain 은 퍼블릭 구간에 두고 사용할 수 있다. 허나, 내부적으로 사용하기 위한 Private Domain 으로 사용할 수 있다
Private 구간에서 .com 이나 .co.kr 처럼, Public 구간에서 사용하는 주소를 사용하면, 우연히 인터넷 상의 주소와 겹쳐서 연결이 불가능 할 수 있다. 따라서, Private 구간에서는 인터넷에서 사용하지 않는 .Pri 와 같은 자체적인 주소를 사용한다
p. 514
- listen-on : listen 은 서비스 대기 상태를 뜻한다. listen 상태에서 Data 송수신이 가능한 상태는 세션이 형성된 Established 상태가 되야 한다. any 를 통해 모든 Ip 에서 접근시 53 번 Port 로 서비스를 제공해주는 설정이다
- allow-query : 서비스 요청이 가능한 Ip 를 정의하는 설정으로, any 를 통해 모든 Ip 에서 서비스 요청이 가능하게 한다. 해당 설정에 Ip 를 작성하면, 해당 Ip 에게만 서비스를 제공한다
- 서버 자체적으로 gildong.com 를 관리하기 위한 설정이다. 실무에서는 이를 위해서 DNS 에 서버의 Ip를 등록하여, 다른 사용자가 해당 주소에 대해 물어볼시 접근할 수 있게 해줘야 한다
- IN 은 인터넷을 의미한다
- 타입은 MASTER 로 하여, 마스터 네임 서버 이다. gildong.com.db 를 통해 설정하며, allow-update 에 slave 서버 Ip를 등록하여 slave 서버와 Zone-File 을 sync 시킬 수 있지만, 현재 slave 서버가 없으므로 none 으로 설정한다
p.515
Zone File을 살펴보자
- TTL : 호스트 이름을 질의해 갔을 때, 질의해 간 다른 네임 서버가 해당 Ip 주소를 캐시에 저장하는 시간이다
- 이는 캐시 네임 서버가 자신의 캐시에 해당 Ip 주소를 저장할 수 있는 시간이다
- @ : 도메인 이름으로 여기서는 gildong.com 을 의미한다
- SOA : Start Of Authority 로 권한 시작을 의미한다
- root. : gildong.com. 과 같은 의미로, gildong.com 을 관리하는 최상위 서버를 의미한다
- IN : CLASS 이름으로 인터넷을 의미
- NS : 네임 서버를 의미
- CNAME : 도메인에 대한 별칭으로, 주로, 하나의 도메인에 여러 Ip 정보를 연결하여 사용하고자 할 때 사용한다
- A : 도메인에 대한 Ip 정보
- 2 1D 1H 1W 1H
- Serial Number : Slave 서버는 자신의 Zone File의 Serial Number와 Master 서버의 Zone File의 Serial Number 와 비교하여, Master 서버의 Zone File의 Serial Number 가 더 크다면, Master 서버에게 업데이트 된 정보를 요청한다. 이때 Serial Number는 일반적으로 날짜 / 시간 등을 이용하여 작성하는 경우가 많다 ( ex. 20220710 ). 위에서는 2가 Serial Number 다
- Refresh : Slave 서버가 Master 서버에 업데이트된 정보를 요청하는 간격으로 위에서는 1D 이다. 이는 하루에 한 번을 의미한다. 즉, 2차 네임 서버 ( Slave 서버 ) 가 1차 네임 서버 ( Master 서버 ) 에 접속하는 시간으로, 하루에 한 번 접속하여, Serial Number 를 비교한다는 의미다
- Retry : 접속 실패시 재접속 시간으로, 1D 로 한 번 접속했는데 연결이 안될 경우 1시간 이후에 재접속 하겠다는 의미다. 위에서 1H 이다
- Expire : 1 차 네임 서버에서 Data 가 없다면 지정 기간 후에 삭제하는 것으로, 위에서는 1W 이다. 즉, 2 차 네임 서버가 1 차 네임 서버에 접속 하지 못 했을 때를 의미하며, 1 차 네임 서버가 Down 됬을 때나, 1 차 네임 서버를 더 이상 사용하지 않았을 때를 경우로 들 수 있다. 이는, 1주일 이내에는 Master 서버가 서비스를 하지 않더라도, Slave 서버에서 지속적으로 서비스를 제공한다는 의미다
- Minimum : Master 서버로 부터 Data 를 Query 받았다면, 지정 기간 동안 보관하는 것 으로, 맨 위의 TTL 설정을 우선시 한다. 위에서는 1H 를 의미하며, 위에 TTL 이 3H이므로 캐시에 저장하는 시간은 3H가 된다
IN NS @ : 자신이 @ ( gildong.com ) 에 대한 네임 서버임을 의미한다
IN A 192.168.1.118 : gildong.com 의 네임 서버 주소를 의미한다
www IN A 192.168.1.119 : www.gildong.com 의 Ip 주소를 의미한다
www IN CNAME websrv.gildong.com.
websrv 100 IN A 192.168.1.123
websrv 200 IN A 192.168.1.124
- 이는 외부의 사용자가 접근 했을 때, 첫번째 사용자에게는 .123 을 알려주며, 두번째 사용자는 .124 를 알려주는 것 이다. 앞에 100, 200 은 단순히 차례를 나타낸다 ( p. 521 )
- 실제로는 위의 Ip 는 로드 벨런서의 주소를 등록한다. DNS 에 등록된 로드 벨런서의 주소를 통해, 사용자를 로드 벨런서로 보낸다. 로드 벨런서에서는 자신에게 등록된 웹 서버들의 주소를 통해 접근한 사용자를 자신과 연결된 웹 서버들로 보내준다
Anycast 라는 통신 방법을 사용하면, 동일 주소에 대하여 물리 서버를 다르게 구성하고, 가까운 거리에 있는 사람들은 자신과 가까운 서버로 접속하게 된다
- Anycast DNS : DNS 서버를 지역별 분산 구성하여 DNS Query 를 요청한 클라이언트와 가장 근접한 DNS 서버가 처리하도록 하여, 응답 속도와 안정성을 향상 시킨 DNS
- Ipv6 에서는 브로드 캐스트 라는 개념이 사라졌다. 이를 해결하기 위한 용도로 Anycast 를 활용하기도 한다