← Back to list

GCP에서 AWS Route53 사용

AWS — GCP간 VPN 연결을 통해 보안을 강화하고 비용을 절감하는 방법 — (4) GCP에서 AWS Route53 사용

Derek.Kim · 2023-08-06 03:06 · 1 claps · 8.4 min read paywalled
#aws-route53 #gcp-cloud-dns #dns-resolver #route-53-resolver #networking
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud

GCP에서 AWS Route53 사용

  1. AWS-GCP VPN 연결 방법
  2. GCP Private Service Connect와 GCP Private Access방법들
  3. AWS에서 GCP Cloud DNS 사용
  4. GCP에서 AWS Route53 사용

위 글 중 네 번째 이야기입니다.

GCP -> AWS Route53 도메인 쿼리

GCP -> AWS Route53 도메인 쿼리

GCP 서버에서 AWS VPC 환경이나 내부에서만 사용할 수 있는 AWS의 api에 비공개 접근을 해야하는 경우입니다. 이전 블로그 글에서 AWS — GCP 간 VPN 연동 방법에 대해서는 차례대로 설명했습니다. 따라서 VPN 연동 방법에 대해서는 해당 블로그 글을 참고해주시기 바랍니다. 이번 글에서는 GCP 서버에서 Route53의 DNS 도메인을 쿼리하는 방법에 대해서 설명하겠습니다.

GCP에서 AWS Route53으로 도메인 쿼리

Route53에 등록된 hosted zone이 public zone일수도 있고, private zone일 수도 있기 때문에 2가지 경우 모두 어떻게 GCP에서 도메인 쿼리가 될 수 있는 지 설명해보겠습니다.

  • 시나리오1: AWS Route53 private zone에 등록된 도메인(private.aws.zone.com)을 GCP에서 질의하려 해요.
  • 시나리오 2: AWS Route53 public zone에 등록된 도메인(it-is-public-zone.com )을 GCP에서 질의하려 해요.

GCP -> AWS Route53 Private Zone에 도메인 쿼리

AWS Route53 Private Zone

AWS Route53 Private Zone

  • 기본적으로 AWS Route53 Private Zone은 연결된 AWS VPC에서만 질의될 수 있습니다.
  • 위에서 type이 private인 Route53 Hosted zone은 외부 인터넷 환경 그리고 GCP Network에서도 질의될 수 없습니다.
  • 하지만 GCP의 DNS서비스인 Cloud DNS에 Forwarding DNS Zone을 만들어서 AWS Route53를 연결하면, GCP에서 AWS Route53 private hosted zone에 도메인 질의를 할 수 있습니다.

연동 방법

1. AWS Route53에 Inbound endpoint 생성

  • Route53 > Resolver > Inbound endpoitns를 클릭합니다.

Resolver Inbound endpoints 생성

Resolver Inbound endpoints 생성

  • GCP에서 Route53 조회할 때 사용될 inbound endpoints 생성합니다.
  • 해당 inbound endpoints interface는 연동한 vpc의 서브넷에서 할당됩니다.

Inbound endpoints용 Security Group

Inbound endpoints용 Security Group

  • 해당 endpoints가 사용할 SG를 등록합니다.
  • 해당 SG은 Cloud DNS 서비스의 cidr대역인 35.199.192.0/19 에 대하여 TCP/UDP 53 port에 대해서 허용해야 합니다.

2. GCP Cloud DNS에서 DNS Forwarding zone 구축 & inbound endpoint 등록

  • GCP Cloud DNS > CREATE Zone을 클릭합니다.

GCP Cloud DNS Forwarding Zone

GCP Cloud DNS Forwarding Zone

  • GCP Cloud DNS에서 Forwarding Zone 생성합니다.
  • DNS name에는 필요한 aws route53에 있는 private dns zone의 도메인(private.aws.zone.com)을 입력해줍니다.
  • Destination DNS servers에 방금 만든 aws inbound endpoints를 등록해줍니다.

3. GCP Cloud Router에 Cloud DNS CIDR대역 광고

GCP Cloud DNS 대역을 GCP Cloud Router에 Custom 광고

GCP Cloud DNS 대역을 GCP Cloud Router에 Custom 광고

  • VPN 연동할 때 사용되는 Cloud Router에 Cloud DNS cidr대역(35.199.192.0/19) Custom 광고해줍니다.
  • AWS에서 GCP Cloud DNS로 라우팅 경로를 찾아가야 하기 때문에 Cloud Router에서 Cloud DNS 대역을 광고해주는 것입니다.

4. AWS에서 만든 inbound endpoints의 subnet의 route table에 GCP Cloud DNS대역을 TGW로 라우팅

  • VPC > Route tables > Create route table을 클릭합니다.

  • GCP Cloud DNS 대역을 사용하고 있는 TGW로 경로를 만들어줍니다.

Inbound endpoints의 서브넷에 GCP Cloud DNS대역 static Routing

Inbound endpoints의 서브넷에 GCP Cloud DNS대역 static Routing

  • Route53 endpoints가 있는 서브넷의 라우팅 테이블에 35.199.192.0/19 -> TGW로만 라우팅을 해주면, TGW는 Cloud Router로부터 이미 광고받고 있는 “35.199.192.0/19”에 대한 라우팅이 있기 때문에, GCP Cloud DNS에 조회된 레코드를 반환할 수 있습니다.

아키텍처 & 도메인 쿼리 시나리오

GCP -> AWS Route53 Private Zone 도메인 쿼리 과정

GCP -> AWS Route53 Private Zone 도메인 쿼리 과정

위 아키텍처로 GCP 내의 자원(VM)에서 AWS Route53 Private Zone으로 도메인 쿼리를 할 수 있습니다. VPN은 이미 연동되어 있다고 가정하고(VPN 연동 방법), 도메인 룩업 시나리오에 대해서 설명하겠습니다.

  1. GCP VM에서 hi.private.aws.zone.com을 사용합니다.
  2. GCP Cloud DNS Forwarding Zone에 의해 등록된 Destination DNS Server IPs(AWS Inbound endpoints)로 도메인 쿼리를 포워딩합니다.
  3. AWS Inbound endpoints를 통해 Route53 private.aws.zone.com (private zone)도메인에 쿼리를 합니다.
  4. 반환받은 레코드를 GCP VM에 리턴합니다.
  5. 요청을 보낸 GCP VM은 요청한 도메인에 대한 ip를 알게 되었으니 ip기반 통신을 시작합니다.

GCP → AWS Route53 Public Zone에 질의

AWS Route53의 Private Zone이 아닌 Public Zone에도 질의를 할 수 있습니다. 그리고 Public Zone은 인터넷만 되면 어디서든 질의할 수 있기 때문에 따로 설정해야 하는 것들이 없습니다. 따라서 별도로 forwarding zone를 만들지 않아도 GCP VM에서 도메인 쿼리를 할 수 있습니다.

  • 다만 질의는 어디서든 할 수 있지만, 질의해서 조회된 레코드의 ip를 어디서든 접근할 수 있는 것은 아닙니다. (질의된 ip가 public ip가 아닌 private ip일 경우 해당 ip로 접근하기 위한 경로가 있어야 함)
  • 질의해서 받아온 ip에 대해 접근하려면 Network이 서로 연결되어 있어야 합니다.

GCP -> AWS Route53 Public Zone 도메인 쿼리 과정

GCP -> AWS Route53 Public Zone 도메인 쿼리 과정

  • 169.254.169.254는 GCP VM에서 DNS 쿼리할 때 사용되는 DNS 쿼리용 meatadata server 주소입니다.
  • GCP VM에서 DNS 쿼리를하면 internal DNS든 external DNS든 해당 메타데이터 서버(169.254.169.254)를 통해 조회합니다. (참고)

GCP VM의 resolver

GCP VM의 resolver

  • 해당 DNS 쿼리용 metadata server에 external DNS(*.it-is-public-zone.com 등)를 요청하면 Google의 퍼블릭 NS로 요청을 전달하고 internal DNS에 대한 요청은 Cloud DNS에서 처리합니다. (참고)
  • 물론 public DNS zone도 Cloud DNS에 forwarding DNS zone을 만들어서, VPN과 AWS route53 endpoint를 통해서 route53에 질의하게 구성할 수는 있지만, public DNS 도메인을 굳이 그렇게 접근할 이유는 없습니다.

아래 3가지 이유 때문에 public dns zone에는 forwarding zone을 따로 만들어주지 않아도 된다고 판단했습니다.

  • 2개의 endpoint에만 의존하는 것보다는 수많은 외부 NS서버들을 이용하는 것이 문제가 발생할 확률이 적습니다(물론 둘 다 안전하긴 함).
  • 어차피 public DNS는 외부 인터넷 환경에서 질의가 가능하기 때문에 굳이 private endpoint와 gcp-aws간 vpn을 이용하면서까지 접근할 필요가 없습니다.
  • 그리고 public DNS zone은 private dns zone에 비해서 여러 zone이 있기 때문에, Cloud DNS의 forwarding DNS zone으로 등록하는 과정이 번거롭습니다.

위와 같은 방법으로 GCP에서 AWS Route53 Private/Public hosted Zone에 도메인 쿼리를 할 수 있고, 이를 통해 서로 다른 클라우드 환경에서도 안전하게 VPN 터널을 통해 비공개 통신을 할 수 있게 됩니다.


메타데이터
post_id
cbbb0aa081c4
slug
aws-gcp간-vpn-연결을-통해-보안을-강화하고-비용을-절감하는-방법-4-gcp에서-aws-route53-사용-cbbb0aa081c4
url
https://medium.com/@derek10cloud/aws-gcp%EA%B0%84-vpn-%EC%97%B0%EA%B2%B0%EC%9D%84-%ED%86%B5%ED%95%B4-%EB%B3%B4%EC%95%88%EC%9D%84-%EA%B0%95%ED%99%94%ED%95%98%EA%B3%A0-%EB%B9%84%EC%9A%A9%EC%9D%84-%EC%A0%88%EA%B0%90%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-4-gcp%EC%97%90%EC%84%9C-aws-route53-%EC%82%AC%EC%9A%A9-cbbb0aa081c4
canonical_url
https://medium.com/@derek10cloud/aws-gcp%EA%B0%84-vpn-%EC%97%B0%EA%B2%B0%EC%9D%84-%ED%86%B5%ED%95%B4-%EB%B3%B4%EC%95%88%EC%9D%84-%EA%B0%95%ED%99%94%ED%95%98%EA%B3%A0-%EB%B9%84%EC%9A%A9%EC%9D%84-%EC%A0%88%EA%B0%90%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-4-gcp%EC%97%90%EC%84%9C-aws-route53-%EC%82%AC%EC%9A%A9-cbbb0aa081c4
author_url
https://medium.com/@derek10cloud
status
ok
fetched_at
2026-07-29 12:21:14