본문 바로가기

Server Infra/AWS

AWS Route53 Outbound endpoint 설정하고 테스트

728x90

하이브리드 아키텍쳐를 도입해서 사용하는 경우 AWS와 온프래미스 Private환경간 DNS Query 설정을 안 해주면 양쪽으로 도메인으로 호출하는데 문제가 좀 있다. 이럴때 Resolver기능을 사용하면 편하다

On-Premises에서 AWS로 DNS Query 실행시
AWS에서 On-Premises로 DNS Query 실행

위처럼 Route53의 Resolver로 양쪽으로 세팅해주면 AWS에서 On-Premises, 반대의 경우도 문제없이 도메인 호출이 가능하다. 그럼 테스트를 해보자!

아웃바운드 엔드포인트를 생성하면 DNS트래픽이 통한 VPC를 설정해 주어야 하고 거기에 맞게 SG도 세팅해 주어야 한다. 당연하게도 TCP/UDP 53번 포트로 통신하기 때문에 On-Premises의 DNS서버 IP로 인바운드및 아운바운드가 모두 허용되어야 한다.

두번째로 각 가용영역별로 IP를 설정해 줘야 한다. 중요한건 여기서 지정된 IP가 DNS서버가 되는게 아니다. 단순 통신을 위한 Proxy 역할을 한다고 보면 된다. 이 VPC IP를 통해서 DNS 쿼리가 전달된다.

 

이렇게 Outboud Endpoint를 생성하고 나면 이제 Rule을 생성해 주어야 한다.

여기서 Forward와 System이 있다.

  • Forward - 지정된 도메인 이름의 DNS 쿼리를 네트워크의 해석기에 전달하려는 경우 이 옵션을 선택합니다.
  • System - Resolver가 전달 규칙에 정의된 동작을 선택적으로 재정의하게 하려는 경우 이 옵션을 선택합니다. 시스템 규칙을 생성할 때 Resolver가 지정된 하위 도메인의 DNS 쿼리를 해석합니다. 그렇지 않을 경우 네트워크의 DNS 해석기가 해석합니다.

그리고 Target IP는 On-premises의 DNS IP를 설정해 주면 된다. 중요한건 Private 영역이기 때문에 Direct Connect또는 VPN으로 연결이 되어 있어야 할 것이고 TGW라면 BGP라우팅에서 해당 DNS서버로의 라우팅 설정이 되어 있어야 한다.

 

이렇게 설정이 되면 끝났다 이제 테스트를 해보자

우선 사내망으로 가정한 dns ip가 10.0.0.253이다. 먼저 SG를 생성해주자

다음으로 아웃바운드 엔드포인트를 생성해 주겠다. 여기서 AZ와 Subnet을 정한다. 왜냐하면 내부망에 있는 서버가 Route53으로 dns 질의를 하고 Route53 resolver가 dx를 타고 on-prem으로 호출해줘야 한다. 이때 eni가 필요한데 해당 eni를 할당한 서브넷을 지정하는것이다.

다음은 룰을 만들어 줘야 합니다. 이것은 도메인을 입력하여 rule과 매칭되는 경우 route53에서 온프렘으로 resolver 하는 역할을 한다

우선 route53 outbount resolver가 설정이 되어 있지 않을때 이다. 역시 NXDOMANIN 에러가 발생한다

outbound 세팅과 rule 세팅이 완료되면 에러 없이 정상적으로 도메인을 찾는것을 볼 수 있다.

728x90