Intro
만약 사내에 도메인 서버가 없는데 내부에서만 도메인을 쿼리할 수 있도록 하려면 어떻게 해야할까요? 일반적으로 생각할 수 있는 방법은 크게 2가지 입니다.
- 로컬PC에 host 파일에 직접 도메인과 IP를 넣는다
- 내부에 도메인서버를 구축한다
여기에 만약 우리 회사가 도메인서버는 없지만 AWS를 사용하고 있고 AWS와 사무실이 네트워크가 연결이 되어있다는 조건이 붙는다면 한가지 방법이 더 있습니다. 바로 오늘 이야기 할 Route 53 resolver inbound endpoint
를 사용해서 도메인서버로 사용하는 방법입니다.
Route 53 resolver 란?
Amazon Route 53 Resolver는 AWS 환경에서 도메인 이름 시스템(DNS) 해석을 위한 관리형 서비스로, AWS 내외부의 리소스 간 DNS 쿼리를 원활히 처리할 수 있도록 지원합니다. 특히, AWS VPC(가상 프라이빗 클라우드)와 온프레미스 네트워크 간의 DNS 쿼리를 효과적으로 해석하는 기능을 제공합니다.
Route 53 resolver 의 기능
Amazon Route 53 Resolver의 가장 핵심 기능은 inbound, outbound DNS쿼리를 처리하는 기능입니다. 아래 그림과 같이 inbound, outbound를 생성할때 선택한 VPC대역의 private endpoint가 생성이 됩니다.
네트워크로 연결된 On-premis 환경에서 AWS Route 53의 도메인을 쿼리를 inbound endpoint
를 통해 수행할 수 있게 됩니다. 반대로 AWS Route 53에서 On-premis 환경의 도메인 서버를 쿼리할 수 있도록 outbound endpoint
가 해주죠. 또 inbound/outbound endpoint에는 security group이 할당되기 때문에 IP/PORT기반 네트워크 통신 제어를 할 수 있습니다.
- inbound 및 outbound DNS 쿼리 처리:
- 인바운드 DNS 확인(Inbound DNS Query Resolution): 온프레미스에서 AWS VPC 내 자원을 조회하는 DNS 쿼리를 처리합니다. 이를 통해 온프레미스 서버가 AWS 리소스의 도메인 Name을 사용할 수 있습니다. 이를 위해 Route 53 Resolver는 온프레미스 네트워크와 inbound endpoint 를 통해 통신합니다.
- 아웃바운드 DNS 확인(Outbound DNS Query Resolution): VPC 내에서 온프레미스 리소스의 도메인 이름을 해석할 수 있습니다. 이를 위해 Route 53 Resolver는 온프레미스 네트워크와 outboud endpoint 를 통해 통신합니다.
- Resolver 규칙(Route 53 Resolver Rules):
- 특정 DNS 요청을 지정된 DNS 서버로 보내도록 규칙을 설정할 수 있습니다. 예를 들어, 특정 도메인에 대한 쿼리를 온프레미스 DNS 서버로 전송하고, 그 외의 쿼리는 기본 인터넷 DNS로 보내는 방식입니다.
- 유연한 DNS 정책 적용:
- Route 53 Resolver는 AWS의 모든 VPC 간에 적용할 수 있어, 여러 계정이나 여러 리전에 있는 VPC에서도 일관된 DNS 쿼리 처리가 가능합니다.
- 보안 그룹 적용:
- DNS 쿼리에 대한 보안 그룹을 적용하여 VPC 내에서의 DNS 통신에 대한 액세스 제어를 수행할 수 있습니다.
사내망에서 AWS Route 53으로 쿼리하는 방법
사내망에서 AWS Route53의 도메인을 쿼리할 수 있는 방법은 위에서 설명드린 inbound endpoint를 사용하는 방법입니다.
- AWS에서 제공하고 있는 아래 그림과 같이 on-premises data center (앞서 설명드린 사내망)과 AWS VPC와 네트워크 연결이(VPN or 전용선) 되어있어야 합니다.
- 그리고 나서 사내 도메인 서버에서 DNS resolver proxy설정을 해야합니다. 사내 DNS에서 AWS 의 Route 53 resolver inbound endpoint로 쿼리할 수 있도록 설정 합니다. 여기서 inbound endpoint는 단일 IP 2개가 생성이 되는데요. endpoint를 생성할때 VPC의 subnet을 필수로 2개를 선택하게되고 각 subnet대역에서 IP자동할당 또는 지정IP로 설정할 수 있습니다.
사내 DNS가 없는 경우 AWS Route 53으로 쿼리하는 방법
오늘 궁극적으로 이야기 드리려고 했던 부분이 바로 이 부분 입니다. 사내망에 DNS가 없는 경우에는 직접 AWS Route53의 resolver endpoint를 도메인 서버로 설정할 수 있습니다. 아래 그림과 같이 설정이 가능합니다.
google.co.kr 과 같이 외부 도메인 쿼리도 가능한데요. Route 53 private host zone에 없는 도메인이라면 인터넷 도메인을 쿼리할 수 있도록 자동구성이 됩니다. Route 53의 resolver를 생성하면 rule에 Rule: internet Resolver
가 자동으로 생성되는걸 볼 수 있죠.
실제로 아래와 같이 사내 로컬PC의 네트워크 설정에서 도메인서버에 Route53의 resolver endpoint IP를 등록하면 Route53 으로 생성한 도메인이 쿼리가 잘 되는걸 확인할 수 있습니다.
Route53 resolver endpoint를 직접 도메인 서버로 사용할 수 있다는 내용은 AWS 공식문서에도 없고 구글링해도 잘 나오지 않더군요. 실제 AWS담당자를 통해 가이드 받아 진행해본 내용입니다.
그럼 오늘 여기까지 마치도록 하고 제가 틀린게 있거나 질문이 있으시면 언제든지 문의 바랍니다.