아웃바운드 엔드포인트 만들기 및 업데이트

이 페이지에서는 VPC 네트워크의 비공개 IP 주소를 사용하여 DNS 쿼리를 직접 전달할 수 있도록 아웃바운드 엔드포인트를 만들고 업데이트하고 전달 영역 및 DNS 서버 정책과 연결하는 방법을 설명합니다. 이 방법을 사용하면 아웃바운드 트래픽을 더 세부적으로 제어할 수 있습니다. 아웃바운드 엔드포인트에 대한 자세한 내용은 아웃바운드 엔드포인트 개요를 참고하세요.

시작하기 전에

  1. Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트를 선택하거나 만드는 데 필요한 역할

    • 프로젝트 선택: 프로젝트를 선택하는 데 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 모든 프로젝트를 선택할 수 있습니다.
    • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기

    프로젝트 선택기로 이동

  2. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  3. Cloud DNS, Compute Engine, Network Services API를 아직 사용 설정하지 않았으면 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않은 경우 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법 알아보기

    API 사용 설정

온프레미스 또는 외부 DNS 네임서버에 연결된 VPC 네트워크가 있어야 합니다. 아웃바운드 엔드포인트를 배포할 각 리전에서 VPC 네트워크에는 대상 리전의 일반 서브넷과 프록시 전용 서브넷이 있어야 합니다. 자세한 내용은 VPC 네트워크 만들기 및 관리를 참조하세요.

또한 온프레미스 네트워크에 리전 프록시 전용 서브넷 IP 주소 범위의 반환 경로가 있는지 확인하고 리전 프록시 전용 서브넷 IP 주소 범위의 인바운드 DNS 쿼리 (UDP 및 TCP 포트 53)를 허용하도록 온프레미스 방화벽 규칙을 구성합니다.

아웃바운드 엔드포인트 만들기

아웃바운드 엔드포인트를 만들려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 페이지로 이동합니다.

    Cloud DNS로 이동

  2. 아웃바운드 엔드포인트 탭으로 이동하여 아웃바운드 엔드포인트 만들기를 클릭합니다.

  3. 이름 필드에 엔드포인트의 고유한 이름을 입력합니다.

  4. (선택사항) 설명 필드에 엔드포인트에 대한 설명을 입력합니다.

  5. 리전에서 타겟 리전을 선택합니다.

  6. 네트워크 목록에서 VPC 네트워크를 선택합니다.

  7. 서브넷에서 선택한 리전의 일반 서브넷을 선택합니다.

  8. 엔드포인트 IP 주소에 선택한 서브넷 범위에서 유효한 IPv4 주소 문자열을 입력합니다.

  9. 프록시 전용 서브넷의 경우 콘솔에서 아웃바운드 쿼리 이그레스를 위해 선택한 VPC 네트워크 및 리전의 리전별 프록시 전용 서브넷을 자동으로 감지합니다. 프록시 전용 서브넷이 감지되지 않으면 서브넷 예약을 클릭하여 서브넷을 만든 후 계속 진행합니다.

  10. 만들기를 클릭합니다.

gcloud

gcloud beta dns outbound-endpoints create 명령어를 실행합니다.

gcloud beta dns outbound-endpoints create ENDPOINT_NAME \
    --project=PROJECT_ID \
    --network=VPC_NETWORK \
    --subnetwork=REGULAR_SUBNET \
    --location=REGION \
    --endpoint-ip=IP_ADDRESS \
    --description=DESCRIPTION

다음을 바꿉니다.

  • ENDPOINT_NAME: 아웃바운드 엔드포인트의 이름
  • PROJECT_ID: 프로젝트 ID입니다.
  • VPC_NETWORK: 아웃바운드 엔드포인트와 연결된 VPC 네트워크입니다(예: projects/PROJECT_ID/global/networks/NETWORK_NAME 또는 NETWORK_NAME).
  • REGULAR_SUBNET: 엔드포인트의 내부 리슨 IP 주소가 할당되는 일반 서브넷입니다(예: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME 또는 SUBNET_NAME).
  • REGION: 엔드포인트가 배포된 리전
  • IP_ADDRESS: 일반 서브넷의 기본 IP 주소 범위에서 사용 가능한 내부 IPv4 주소
  • DESCRIPTION: 엔드포인트에 대한 설명(선택사항)

API

outboundEndpoints.create 메서드를 실행합니다.

POST https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints?outboundEndpointId=ENDPOINT_NAME
{
    "network": "projects/PROJECT_ID/global/networks/VPC_NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/REGULAR_SUBNET",
    "endpointIp": "IP_ADDRESS",
    "description": "DESCRIPTION"
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 엔드포인트가 배포된 리전
  • ENDPOINT_NAME: 아웃바운드 엔드포인트의 이름
  • VPC_NETWORK: 아웃바운드 엔드포인트와 연결된 VPC 네트워크
  • REGULAR_SUBNET: 엔드포인트의 내부 수신 IP 주소가 할당되는 일반 서브넷
  • IP_ADDRESS: 일반 서브넷의 기본 IP 범위에서 사용 가능한 내부 IPv4 주소
  • DESCRIPTION: 엔드포인트에 대한 설명(선택사항)

아웃바운드 엔드포인트 업데이트

아웃바운드 엔드포인트를 업데이트하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 페이지로 이동합니다.

    Cloud DNS로 이동

  2. 아웃바운드 엔드포인트 탭으로 이동하여 업데이트하려는 아웃바운드 엔드포인트의 이름을 클릭합니다.

  3. 수정을 클릭하고 설명 필드를 업데이트한 다음 저장을 클릭합니다.

gcloud

gcloud beta dns outbound-endpoints update 명령어를 실행합니다.

gcloud beta dns outbound-endpoints update ENDPOINT_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --description=UPDATED_DESCRIPTION

다음을 바꿉니다.

  • ENDPOINT_NAME: 업데이트할 아웃바운드 엔드포인트의 이름
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 엔드포인트가 배포된 리전
  • UPDATED_DESCRIPTION: 엔드포인트에 대한 업데이트된 설명(선택사항)

API

outboundEndpoints.patch 메서드를 실행합니다.

PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME?updateMask=description
{
    "description": "UPDATED_DESCRIPTION"
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 엔드포인트가 배포된 리전
  • ENDPOINT_NAME: 업데이트할 아웃바운드 엔드포인트의 이름
  • UPDATED_DESCRIPTION: 아웃바운드 엔드포인트의 업데이트된 설명

엔드포인트를 전달 영역과 연결

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 페이지로 이동합니다.

    Cloud DNS로 이동

  2. 영역 탭으로 이동하여 영역 만들기를 클릭하거나 기존 전달 영역을 선택하고 수정을 클릭합니다.

  3. 영역 매개변수를 구성합니다.

    1. 영역 유형으로 비공개를 선택합니다.
    2. 영역 이름에 영역의 고유 식별자를 입력합니다.
    3. DNS 이름에 전달할 도메인 서픽스를 입력합니다. 예를 들면 corp.example.com입니다.
    4. (선택사항) 설명에 설명을 입력합니다.
    5. 옵션에서 다른 서버로 쿼리 전달을 선택합니다.
    6. 네트워크에서 이 영역에 대한 쿼리를 확인하도록 승인된 VPC 네트워크를 선택합니다.
  4. 대상 DNS 서버에서 외부/온프레미스 네임서버의 대상 IPv4 주소 또는 FQDN을 입력합니다.

  5. 순방향 경로에서 아웃바운드 엔드포인트를 선택합니다.

  6. 아웃바운드 엔드포인트에서 쿼리 전달을 처리할 하나 이상의 엔드포인트를 선택합니다.

    • 최소 선택사항: 아웃바운드 엔드포인트를 하나 이상 선택합니다 (아웃바운드 엔드포인트가 순방향 경로로 선택된 경우 필수).
    • 단일 VPC 제약조건: 선택한 모든 엔드포인트가 동일한 VPC 네트워크에 속해야 합니다.
    • 고가용성 (HA) 권장사항: 교차 리전 재해 복구 및 자동 장애 조치의 경우 해당 VPC 네트워크 내의 서로 다른 리전에 엔드포인트를 2개 이상 구성하고 선택합니다.
  7. 만들기 (또는 기존 영역의 경우 저장)를 클릭합니다.

gcloud

gcloud beta dns managed-zones update 명령어를 사용하여 엔드포인트를 전달 영역과 연결합니다.

gcloud beta dns managed-zones update ZONE_NAME \
    --project=PROJECT_ID \
    --outbound-endpoints=projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1,projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2

다음을 바꿉니다.

  • ZONE_NAME: 업데이트할 전달 영역의 이름
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION_1 및 REGION_2: 엔드포인트가 배포된 리전
  • ENDPOINT_NAME_1: 전달 영역과 연결할 첫 번째 엔드포인트의 이름
  • ENDPOINT_NAME_2: 전달 영역과 연결할 두 번째 엔드포인트의 이름

API

managedZones.patch 메서드를 실행합니다.

PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/managedZones/ZONE_NAME
{
    "name": "ZONE_NAME",
    "dnsName": "DNS_NAME",
    "description": "DESCRIPTION",
    "visibility": "private",
    "forwardingConfig": {
        "outboundEndpoints": [
              {
                 "name": "projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1"
              },
              {
                 "name": "projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2"
              }
        ]
    }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE_NAME: 업데이트할 전달 영역의 이름
  • DNS_NAME: 전달 영역의 DNS 이름
  • DESCRIPTION: (선택사항) 전달 영역의 업데이트된 설명
  • REGION_1 및 REGION_2: 엔드포인트가 배포된 리전 (forwardingConfig에 나열된 모든 아웃바운드 엔드포인트는 동일한 VPC 네트워크에 속해야 함)
  • ENDPOINT_NAME_1: 전달 영역과 연결할 첫 번째 엔드포인트의 이름
  • ENDPOINT_NAME_2: 전달 영역과 연결할 두 번째 엔드포인트의 이름

엔드포인트를 DNS 서버 정책과 연결

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 페이지로 이동합니다.

    Cloud DNS로 이동

  2. DNS 서버 정책 탭으로 이동하여 정책 만들기를 클릭합니다 (또는 기존 DNS 서버 정책을 선택하고 수정을 클릭합니다).

  3. 다음과 같이 구성합니다.

    1. 정책 이름에 서버 정책의 고유한 이름을 입력합니다.
    2. (선택사항) 설명에 설명을 입력합니다.
    3. 인바운드 쿼리 전달의 경우 외부 클라이언트가 인바운드 엔드포인트를 사용하여 VPC 워크로드를 쿼리할지 여부를 지정합니다.
    4. DNS64의 경우 필요에 따라 IPv6 합성을 사용 설정 또는 사용 중지합니다.
    5. 로그에서 필요에 따라 DNS 로깅을 사용 설정하거나 사용 중지합니다.
    6. VPC 네트워크에서 서버 정책이 적용되는 VPC 네트워크를 선택합니다.
  4. 대체 DNS 서버에서 외부 또는 온프레미스 네임서버의 대상 IPv4 주소를 입력합니다.

  5. 순방향 경로에서 아웃바운드 엔드포인트를 선택합니다.

  6. 아웃바운드 엔드포인트에서 비공개 VPC가 아닌 모든 쿼리를 라우팅할 엔드포인트를 하나 이상 선택합니다.

    • 최소 선택: 아웃바운드 엔드포인트를 1개 이상 선택합니다.
    • 단일 VPC 제약 조건: 선택한 모든 엔드포인트가 동일한 VPC 네트워크에 속해야 합니다.
    • 고가용성 (HA) 권장사항: 리전 간 재해 복구 및 자동 장애 조치를 위해 해당 VPC 네트워크 내의 서로 다른 리전에 엔드포인트를 두 개 이상 구성하고 선택합니다.
  7. 만들기를 클릭합니다 (기존 정책의 경우 저장).

gcloud

gcloud beta dns policies update 명령어를 사용하여 엔드포인트를 DNS 서버 정책과 연결합니다.

gcloud beta dns policies update POLICY_NAME \
    --project=PROJECT_ID \
    --outbound-endpoints=projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1,projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2

다음을 바꿉니다.

  • POLICY_NAME: 업데이트할 DNS 서버 정책의 이름
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION_1 및 REGION_2: 엔드포인트가 배포된 리전
  • ENDPOINT_NAME_1: DNS 서버 정책과 연결할 첫 번째 엔드포인트의 이름
  • ENDPOINT_NAME_2: DNS 서버 정책과 연결할 두 번째 엔드포인트의 이름

API

policies.patch 메서드를 실행합니다.

PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/policies/POLICY_NAME
{
    "alternativeNameServerConfig": {
        "outboundEndpoints": [
            {"name": "projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1"},
            {"name": "projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2"}
        ]
    }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • POLICY_NAME: 업데이트할 DNS 서버 정책의 이름
  • REGION_1 및 REGION_2: 엔드포인트가 배포된 리전
  • ENDPOINT_NAME_1: DNS 서버 정책과 연결할 첫 번째 엔드포인트의 이름
  • ENDPOINT_NAME_2: DNS 서버 정책과 연결할 두 번째 엔드포인트의 이름

아웃바운드 엔드포인트 보기

리전의 아웃바운드 엔드포인트를 나열하거나 설명하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 페이지로 이동합니다.

    Cloud DNS로 이동

  2. 아웃바운드 엔드포인트 탭으로 이동하여 프로젝트의 모든 아웃바운드 엔드포인트, 리전, 네트워크, 서브넷, IP 주소, 상태를 확인합니다.

gcloud

리전의 모든 아웃바운드 엔드포인트를 나열하려면 gcloud beta dns outbound-endpoints list 명령어를 실행합니다.

gcloud beta dns outbound-endpoints list \
    --project=PROJECT_ID \
    --location=REGION

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 엔드포인트가 배포된 리전

특정 아웃바운드 엔드포인트의 세부정보를 보려면 gcloud beta dns outbound-endpoints describe 명령어를 실행합니다.

gcloud beta dns outbound-endpoints describe ENDPOINT_NAME \
    --project=PROJECT_ID \
    --location=REGION

다음을 바꿉니다.

  • ENDPOINT_NAME: 아웃바운드 엔드포인트의 이름
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 엔드포인트가 배포된 리전

API

리전의 모든 아웃바운드 엔드포인트를 나열하려면 GET 요청을 전송합니다.

GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 엔드포인트가 배포된 리전

특정 아웃바운드 엔드포인트의 세부정보를 보려면 GET 요청을 전송합니다.

GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 엔드포인트가 배포된 리전
  • ENDPOINT_NAME: 아웃바운드 엔드포인트의 이름

아웃바운드 엔드포인트 삭제

아웃바운드 엔드포인트를 삭제하려면 먼저 이를 참조하는 전달 영역 또는 DNS 서버 정책에서 연결을 해제해야 합니다. 자세한 내용은 아웃바운드 엔드포인트와 연결된 네트워크 리소스 관리를 참고하세요.

아웃바운드 엔드포인트를 모든 전달 영역 및 DNS 서버 정책에서 연결 해제한 후 다음 단계에 따라 엔드포인트를 삭제합니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud DNS 페이지로 이동합니다.

    Cloud DNS로 이동

  2. 아웃바운드 엔드포인트 탭으로 이동합니다.

  3. 삭제할 아웃바운드 엔드포인트를 선택하고 삭제를 클릭합니다.

gcloud

gcloud beta dns outbound-endpoints delete 명령어를 실행합니다.

gcloud beta dns outbound-endpoints delete ENDPOINT_NAME \
    --project=PROJECT_ID \
    --location=REGION

다음을 바꿉니다.

  • ENDPOINT_NAME: 삭제할 아웃바운드 엔드포인트의 이름
  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 엔드포인트가 배포된 리전

API

outboundEndpoints.delete 메서드를 사용합니다.

DELETE https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • REGION: 엔드포인트가 배포된 리전
  • ENDPOINT_NAME: 삭제할 아웃바운드 엔드포인트의 이름

문제 해결

아웃바운드 엔드포인트와 관련된 오류를 진단하고 해결하는 방법은 문제 해결을 참고하세요.

다음 단계