DNS Resolution in VPC
- VPC에서 찾을 수 있는 두 가지 DNS 설정
1) DNS Resolution (enableDnsSupport)
2) DNS Hostname (enableDnsHostnames) - DNS Resolution (enableDnsSupport)
DNS 확인은 Route 53 Resolver 서버의 DNS 확인이 VPC에서 지원될지 결정하는 옵션
기본 설정은 True이며 VPC 내의 EC2 인스턴스가 Amazon 제공 DNS 서버를 쿼리할 수 있다는 뜻
이 때의 서버 IP는 169.254.169.253 혹은 예약된 IP인 VPC IPv2 네트워크 범위의 기본에 더하기를 2를 한 .2 주소
이 VPC에는 DNS 지원이 활성화되어 있음 - 만약 www.google.com에서 요청하려면 enableDnsSupport가 있으므로
EC2 인스턴스가 Route 53 Resolver에 도달할 수 있으며 위에서 말한 두 가지 IP 중 하나를 사용하며
www.google.com이 어디 있는지 회신을 받으면 인터넷에 액세스할 수 있으며 이때 공용 주소에 대한 DNS 확인이 가능해야 함
- 만약 DNS를 지원하지 않는 경우에도 DNS 확인을 얻을 수 있지만 사용자 지정 DNS 서버를 생성하고 구성해야만
위와 같은 회신을 받을 수 있음
또한 AWS 관리형 서비스를 사용하여 DNS 지원 설정을 활성화하면 Route 53을 통해 인터넷의 공용 DNS 이름을 알 수 있음
- DNS Hostnames (enableDnsHostnames)
만약 기본 VPC가 있다면 기본적으로 True이고 새로 생성된 VPC라면 False가 됨
enableDnsSupport가 True일 경우와 같이 미리 활성화하지 않으면 아무것도 하지 않음 - DNS 호스트 이름이 True일 때 공용 IPv4도 가진다면 EC2 인스턴스가 공용 호스트 이름을 가지므로
DNS 호스트를 설정하지 않으면 EC2 인스턴스가 공용 서브넷에 위치하면서도 사설 DNS만 가지게 됨
- DNS Support와 DNS Hostnames이 다 있으면 EC2 인스턴스는 사설 DNS도 가지지만 공용 IP에 해당하는 공용 DNS도 가짐
- Route 53의 프라이빗 호스팅 영역에서 사용자 지정 DNS 도메인 이름을 사용하는 경우
두 속성(enableDnsSupport 및 enableDnsHostname)을 모두 true로 설정해야 하는데
DNS Support와 DNS Hostnames 두 가지 설정을 활성화해야 하는 이유
예) web.mycompany.prviate를 A 유형의 값 10.0.0.10의 레코드로 사용
사설 서브넷의 EC2 인스턴스가 IPv4와 연결된 사설 DNS 이름을 가질 수 있기 때문에 web.mycompany.prviate를 사용
사설 DNS 이름을 요청할 때 EC2 인스턴스를 Route 53 Resolver로 사설 호스팅 영역을 조회해 10.0.0.10이라고 대답을 하면
EC2 인스턴스는 다른 EC2 인스턴스에 연결하는 방법을 알 수 있게 됨
<DNS 확인 옵션 및 Route 53 프라이빗 영역 실습>
- DNS 확인 활성화
DemoVPC를 선택한 후 Edit DNS hostnames 메뉴를 선택하여 DNS 호스트 이름을 활성화
이는 공용 IP 주소를 가진 인스턴스가 맞는 공용 DNS 호스트 이름을 얻는지를 나타냄
EC2 인스턴스로 가서 공용 인스턴스였던 BastionHost를 보면 공용 IPv4 주소를 가지고 있는데 공용 IPv4 DNS는 없었으나
DNS 호스트 이름을 활성화하게 되면 공용 IPv4 주소를 만들기 위해 사용 가능한 공용 IPv4 DNS가 만들어지게 됨
이를 통해 인스턴스가 AWS 내에서 DNS 이름을 확인하게 됨
- Route 53 호스팅 영역에 사설 호스팅 영역 생성 (Route 53 프라이빗 영역)
Hosted zones 메뉴에서 호스팅 영역을 demo.internal로 생성하여 사설 호스팅 영역이기 때문에 도메인이 필요하지 않음
사설 호스팅 영역은 특정 VPC와 연결해야 하므로 리전은 eu-central-1, VPC ID는 DemoVPC로 설정
사설 호스팅 영역과 연결되는 VPC는 Amazon VPC 설정에서 enableDnsHostnames와 enableDnsSupport를 True로 설정
생성을 하게 되면 레코드가 두 개 있으므로 DNS에 내부 사설 레코드를 새로 만들기 위해
String routing을 선택하고 유형이 CNAME이고 값이 www.google.com인 새로운 레코드 google.demo.internal을 생성
이후 VCP의 인스턴스가 호스트 이름을 확인할 수 있는지 확인하기 위해 BastionHost에 연결한 후
dig 명령으로 위의 dig google.demo.internal을 입력하게 되면 이에 대한 정보를 응답으로 받을 수 있게 됨
'Cloud > AWS' 카테고리의 다른 글
[SAA] VPC 피어링 (0) | 2022.04.27 |
---|---|
[SAA] VPC 연결성 분석기 (0) | 2022.04.27 |
[SAA] NAT Gateway (0) | 2022.04.27 |
[SAA] NAT 인스턴스 (0) | 2022.04.26 |
[SAA] Bastion 호스트 (0) | 2022.04.26 |