A 레코드로 알려진 DNS의 주소 레코드는 IP 주소로 DNS 이름을 매핑하는 데 사용됩니다. 내부 부하 분산기의 전달 규칙을 만들 때 Google Cloud에서 부하 분산기에 고유한 Compute Engine 내부 DNS 이름을 만들도록 서비스 라벨을 선택적으로 지정할 수 있습니다. 이 내부 DNS 이름은 사용자가 지정한 프로젝트 ID, 전달 규칙 이름, 선택한 서비스 라벨로 구성됩니다.
사양
이 기능은 다음 부하 분산기의 전달 규칙에서 지원됩니다.
- 내부 TCP/UDP 부하 분산
- 내부 HTTP(S) 부하 분산
Google Cloud에서 부하 분산기에 대해 만드는 DNS 이름 형식에 대한 자세한 내용은 DNS 레코드 형식을 참조하세요. DNS 이름에는 전달 규칙의 이름이 포함되어 있으므로 여러 전달 규칙에 동일한 서비스 라벨을 사용하더라도 각 DNS 이름은 고유합니다.
대체 이름 서버가 구성된 경우가 아니라면 같은 프로젝트 및 VPC 네트워크의 모든 리전에 있는 클라이언트 VM이 부하 분산기의 내부 DNS 이름에 대한 DNS 조회를 수행할 수 있습니다. 전역 액세스를 사용할 수 있고 사용 설정되어 있는 경우가 아니라면 부하 분산기에 액세스하려면 클라이언트 VM이 같은 리전에 있어야 합니다. 내부 TCP/UDP 부하 분산에 대한 전역 액세스를 사용 설정하면 모든 리전의 클라이언트가 부하 분산기에 액세스할 수 있습니다.
전달 규칙을 생성할 때만 서비스 라벨을 지정할 수 있습니다. 서비스 라벨을 기존 전달 규칙에 추가할 수 없습니다. 하지만 기존 전달 규칙을 서비스 라벨이 있는 새 전달 규칙으로 바꿀 수 있습니다. 원본 전달 규칙을 먼저 삭제한 경우 이 새 전달 규칙은 동일한 내부 IP 주소를 원본으로 사용할 수 있습니다.
서비스 라벨에서 생성된 내부 DNS 이름에는 다음과 같은 제한 사항이 있습니다.
- 대응하는 역방향(PTR) 레코드가 생성되지 않습니다.
- 각 전달 규칙은 하나의 서비스 라벨만 가질 수 있습니다.
- 서비스 라벨 및 전달 규칙의 이름 이외에는 내부 DNS 이름의 다른 부분을 변경할 수 없습니다. 여기에는 형식 및 도메인 이름(
.internal
)이 포함됩니다.
내부 부하 분산기에 더 유연한 DNS 이름이 필요한 경우 Cloud DNS 관리 비공개 영역에서 커스텀 레코드를 만들 수 있습니다.
공유 내부 IP 주소를 참조하는 내부 전달 규칙에 서비스 라벨을 정의할 수 없습니다. 즉, 내부 전달 규칙 두 개 이상에서 주소를 사용하므로
--purpose=SHARED_LOADBALANCER_VIP
플래그가 있는 내부 IP 주소에 Compute Engine 내부 DNS A 레코드를 자동으로 만들 수 없습니다.
DNS 레코드 형식
전달 규칙에 서비스 라벨을 추가하면 Google Cloud는 다음 형식 중 하나를 사용하여 Compute Engine 내부 DNS A 레코드를 만듭니다.
내부 TCP/UDP 부하 분산의 경우:
SERVICE_LABEL.FORWARDING_RULE_NAME.il4.REGION.lb.PROJECT_ID.internal
내부 HTTP(S) 부하 분산의 경우:
SERVICE_LABEL.FORWARDING_RULE_NAME.il7.REGION.lb.PROJECT_ID.internal
SERVICE_LABEL은 지정한 전달 규칙의 서비스 라벨입니다. 다음 형식을 따라야 합니다.
- 최대 63자의 소문자(
a
~z
), 숫자(0
~9
) 또는 대시(-
)를 사용할 수 있습니다. - 서비스 라벨은 소문자로 시작해야 합니다.
- 서비스 라벨은 소문자 또는 숫자로 끝나야 합니다.
FORWARDING_RULE_NAME은 만들려는 전달 규칙의 이름입니다.
REGION은 부하 분산기 리전입니다.
PROJECT_ID는 프로젝트 ID입니다.
organization:project-id
형식의 프로젝트 ID는 project-id.organization
으로 변환됩니다. 예를 들어 프로젝트 ID가 example.com:example-marketing-prod
인 경우 Google Cloud는 example-marketing-prod.example.com
을 사용합니다.
서비스 라벨이 있는 전달 규칙 만들기
이 절차는 내부 TCP/UDP 부하 분산기 또는 내부 HTTP(S) 부하 분산기에 대한 서비스 라벨을 사용하여 전달 규칙을 만드는 방법을 보여줍니다.
이 절차 전용 서비스 라벨이 있는 전달 규칙을 만드는 방법에 중점을 둡니다. 부하 분산기의 백엔드 구성의 속성과 프런트엔드 구성의 다른 속성은 생략됩니다. 내부 TCP/UDP 부하 분산 또는 내부 HTTP(S) 부하 분산을 처음 사용하는 경우 다음 페이지에서 전체 예제를 참조하세요.
Console
- Google Cloud Console의 부하 분산 페이지로 이동합니다.
부하 분산 페이지로 이동 - 부하 분산기 만들기를 클릭합니다.
- HTTP(S) 부하 분산, TCP 부하 분산 또는 UDP 부하 분산에서 구성 시작을 클릭합니다.
- 인터넷 연결 또는 내부 전용에서 내 VM 사이에서만을 선택한 다음 계속을 클릭합니다.
- 부하 분산기의 이름을 입력합니다.
- 백엔드 구성을 완료합니다.
- 프런트엔드 구성을 클릭합니다. 프런트엔드 구성을 완료하고 해당 섹션의 하단에 서비스 라벨을 지정합니다.
- 완료를 클릭한 다음 검토 및 완료합니다.
gcloud
내부 TCP/UDP 부하 분산기에 대한 서비스 라벨을 사용하여 전달 규칙을 만들려면 다음 단계를 따르세요.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --region=REGION \ --backend-service-region=REGION \ --backend-service=BACKEND_SERVICE_NAME \ --network=NETWORK \ --subnet=SUBNET \ --address=INTERNAL_IP \ --ip-protocol=PROTOCOL \ --ports=PORTS \ --service-label=SERVICE_LABEL
내부 HTTPS 부하 분산기에 대한 서비스 라벨이 포함된 전달 규칙을 만들려면 다음 단계를 따르세요.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --region=REGION \ --target-https-proxy-region=REGION \ --target-https-proxy=TARGET_PROXY_NAME \ --network=NETWORK \ --subnet=SUBNET \ --address=INTERNAL_IP \ --ip-protocol=TCP \ --ports=443 \ --service-label=SERVICE_LABEL
내부 HTTP 부하 분산기에 대한 서비스 라벨이 포함된 전달 규칙을 만들려면 다음 단계를 따르세요.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --region=REGION \ --target-http-proxy-region=REGION \ --target-http-proxy=TARGET_PROXY_NAME \ --network=NETWORK \ --subnet=SUBNET \ --address=INTERNAL_IP \ --ip-protocol=TCP \ --ports=PORT \ --service-label=SERVICE_LABEL
각 자리표시자를 적절한 값으로 바꿉니다.
- FORWARDING_RULE_NAME은 부하 분산기의 전달 규칙 이름입니다.
- REGION은 부하 분산기 리전입니다.
- BACKEND_SERVICE_NAME은 내부 TCP/UDP 부하 분산기의 백엔드 서비스 이름입니다.
- TARGET_PROXY_NAME은 대상 HTTPS 프록시(내부 HTTPS 부하 분산기용) 또는 대상 HTTP 프록시(내부 HTTP 부하 분산기용)의 이름입니다.
- NETWORK는 부하 분산기가 생성되는 VPC 네트워크의 이름입니다.
- SUBNET은 VPC 네트워크의 서브넷 이름입니다. 서브넷은 부하 분산기의 백엔드 서비스 또는 대상 프록시와 동일한 리전에 있어야 합니다.
- INTERNAL_IP는 선택한 서브넷의 기본 IP 범위에 있는 내부 IP 주소입니다. Google Cloud에서 사용 가능한 IP 주소를 선택하도록
--address
플래그를 생략할 수 있습니다. - 내부 TCP/UDP 부하 분산기의 경우 PROTOCOL은 부하 분산기의 백엔드 서비스 프로토콜과 일치하는
TCP
또는UDP
입니다. 내부 HTTP 부하 분산기의 경우 프로토콜은TCP
이어야 합니다. - 내부 TCP/UDP 부하 분산기의 경우 PORTS는 숫자로 최대 5개의 포트 또는 단어
ALL
로 지정한 배열입니다. 내부 HTTPS 부하 분산기의 경우 포트에443
을 사용해야 합니다. 내부 HTTP 부하 분산기의 경우 PORT에80
또는8080
을 사용할 수 있습니다. 자세한 내용은 전달 규칙 개념의 포트 사양을 참조하세요. - SERVICE_LABEL은 원하는 서비스 라벨입니다. 이름 지정 규칙을 따라야 합니다.
API
다음 예시에서는 forwardingRules.insert
메서드를 사용하여 전달 규칙을 만듭니다.
내부 TCP/UDP 부하 분산기에 대한 서비스 라벨을 사용하여 전달 규칙을 만들려면 다음 단계를 따르세요.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "FORWARDING_RULE_NAME", "loadBalancingScheme": "INTERNAL", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/backendServices/BACKEND_SERVICE_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET", "IPAddress": "INTERNAL_IP", "IPProtocol": "PROTOCOL", "ports": PORTS, "serviceLabel": "SERVICE_LABEL" }
내부 HTTPS 부하 분산기에 대한 서비스 라벨이 포함된 전달 규칙을 만들려면 다음 단계를 따르세요.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "FORWARDING_RULE_NAME", "loadBalancingScheme": "INTERNAL_MANAGED", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/targetHttpsProxies/TARGET_PROXY_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET", "IPAddress": "INTERNAL_IP", "IPProtocol": "TCP", "ports": 443, "serviceLabel": "SERVICE_LABEL" }
내부 HTTP 부하 분산기에 대한 서비스 라벨이 포함된 전달 규칙을 만들려면 다음 단계를 따르세요.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "FORWARDING_RULE_NAME", "loadBalancingScheme": "INTERNAL_MANAGED", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/targetHttpProxies/TARGET_PROXY_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET", "IPAddress": "INTERNAL_IP", "IPProtocol": "TCP", "ports": PORT, "serviceLabel": "SERVICE_LABEL" }
각 자리표시자를 적절한 값으로 바꿉니다.
- FORWARDING_RULE_NAME은 부하 분산기의 전달 규칙 이름입니다.
- REGION은 부하 분산기 리전입니다.
- BACKEND_SERVICE_NAME은 내부 TCP/UDP 부하 분산기의 백엔드 서비스 이름입니다.
- TARGET_PROXY_NAME은 대상 HTTPS 프록시(내부 HTTPS 부하 분산기용) 또는 대상 HTTP 프록시(내부 HTTP 부하 분산기용)의 이름입니다.
- NETWORK는 부하 분산기가 생성되는 VPC 네트워크의 이름입니다.
- SUBNET은 VPC 네트워크의 서브넷 이름입니다. 서브넷은 부하 분산기의 백엔드 서비스 또는 대상 프록시와 동일한 리전에 있어야 합니다.
- INTERNAL_IP는 선택한 서브넷의 기본 IP 범위에 있는 내부 IP 주소입니다. Google Cloud에서 사용 가능한 IP 주소를 선택하도록
IPAddress
키를 생략할 수 있습니다. - 내부 TCP/UDP 부하 분산기의 경우 PROTOCOL은 부하 분산기의 백엔드 서비스 프로토콜과 일치하는
TCP
또는UDP
입니다. 내부 HTTP 부하 분산기의 경우 프로토콜은TCP
이어야 합니다. - 내부 TCP/UDP 부하 분산기의 경우 PORTS는 숫자로 최대 5개의 포트 또는 단어
ALL
로 지정한 배열입니다. 내부 HTTPS 부하 분산기의 경우 포트에443
을 사용해야 합니다. 내부 HTTP 부하 분산기의 경우 PORT에80
또는8080
을 사용할 수 있습니다. 자세한 내용은 전달 규칙 개념의 포트 사양을 참조하세요. - SERVICE_LABEL은 원하는 서비스 라벨입니다. 이름 지정 규칙을 따라야 합니다.
서비스 라벨 보기
Console
내부 부하 분산기의 각 내부 전달 규칙에 대한 Compute Engine 내부 DNS 이름(서비스 라벨에서 생성)을 볼 수 있습니다.
- Google Cloud Console의 부하 분산 페이지로 이동합니다.
부하 분산 페이지로 이동 - 세부정보 페이지를 보려면 내부 부하 분산기의 이름을 클릭합니다.
- 부하 분산기에 할당된 내부 전달 규칙은 프런트엔드 섹션에 나열됩니다. DNS 이름 열에는 각 전달 규칙에 할당된 Compute Engine 내부 DNS 이름이 표시됩니다. 서비스 라벨은 이름의 첫 부분(첫 번째 점 이전)입니다. 표시된 이름이 없으면 전달 규칙에 정의된 서비스 라벨이 없습니다.
gcloud
내부 TCP/UDP 부하 분산 또는 내부 HTTP(S) 부하 분산이 사용하는 프로젝트의 전달 규칙을 나열합니다. 필요한 단계를 찾은 다음 이름 및 리전을 메모하여 다음 단계를 진행합니다.
gcloud compute forwarding-rules list \ --filter="loadBalancingScheme=SCHEME"
SCHEME 값은 나열해야 하는 전달 규칙에 따라 다릅니다.
- 내부 TCP/UDP 부하 분산기의 경우
INTERNAL
을 사용합니다. - 내부 HTTP(S) 부하 분산기의 경우
INTERNAL_MANAGED
을 사용합니다.
- 내부 TCP/UDP 부하 분산기의 경우
전달 규칙을 설명하고 FORWARDING_RULE_NAME을 전달 규칙 이름으로, REGION을 전달 규칙 리전으로 바꿉니다.
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \ --region=REGION \ --format="get(serviceLabel)"
API
forwardingRules.get
메서드가 있는 전달 규칙 및 서비스 라벨을 확인합니다.
API 요청에 대한 응답에는 서비스 라벨(serviceLabel
) 및 Compute Engine 내부 DNS 이름(serviceName
)이 포함됩니다.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules/FORWARDING_RULE_NAME
TCP/UDP 응답:
{ ... "serviceLabel": "SERVICE_LABEL", "serviceName": "SERVICE_LABEL.FORWARDING_RULE_NAME.il4.REGION.lb.PROJECT.internal", ... }
HTTP(S) 응답:
{ ... "serviceLabel": "SERVICE_LABEL", "serviceName": "SERVICE_LABEL.FORWARDING_RULE_NAME.il7.REGION.lb.PROJECT.internal", ... }
예
다음 절차는 전달 규칙을 서비스 라벨이 있는 규칙으로 대체하는 방법을 보여줍니다. 이 절차는 내부 TCP/UDP 부하 분산 및 내부 HTTP(S) 부하 분산에 적용됩니다.
아직 내부 부하 분산기에 대한 전달 규칙을 만들지 않은 경우 이 예시를 건너뛰고 대신 서비스 라벨이 있는 전달 규칙 만들기를 참조하세요.
전달 규칙의 내부 IP 주소를 확인하여 부하 분산기의 기존 전달 규칙을 설명합니다.
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \ --region=REGION \ --format="get(IPAddress)
전달 규칙 삭제:
gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --region=REGION
서비스 라벨이 있는 동일한 이름 및 내부 IP 주소로 대체 전달 규칙을 만듭니다. 서비스 라벨이 있는 전달 규칙 만들기를 참조하세요.
다음 단계
- 중요한 기본 사항은 내부 TCP/UDP 부하 분산 개념을 참조하세요.
- 중요한 기본 사항은 내부 TCP/UDP 부하 분산 개념 및 내부 HTTP(S) 부하 분산 개념을 참조하세요.
- 장애 조치에 대한 중요한 정보는 내부 TCP/UDP 부하 분산용 장애 조치 개념을 참조하세요.
- 내부 TCP/UDP 부하 분산기 구성 예시에 대해서는 내부 TCP/UDP 부하 분산 설정을 참조하세요.
- 내부 부하 분산기 구성 등 내부 TCP/UDP 부하 분산 설정 및 내부 HTTP(S) 부하 분산 설정을 참조하세요.
- 내부 TCP/UDP 부하 분산기 장애 조치의 구성 단계 및 예시는 내부 TCP/UDP 부하 분산의 장애 조치 구성을 참조하세요.
- 내부 TCP/UDP 부하 분산에 대한 Stackdriver Logging 및 Monitoring 구성은 내부 TCP/UDP 부하 분산 로깅 및 모니터링을 참조하세요.
- VPC 네트워크에 연결된 피어 네트워크에서 내부 부하 분산기에 액세스하는 방법은 내부 부하 분산 및 연결된 네트워크를 참조하세요.
- 내부 TCP/UDP 부하 분산기와 관련된 문제해결 방법은 내부 TCP/UDP 부하 분산 문제해결을 참조하세요.