이중 스택 서브넷을 사용하면 App Engine 리소스에서 직접 VPC 이그레스를 사용하여 IPv4 및 IPv6 트래픽을 VPC 네트워크로 전송할 수 있습니다. 기존 IPv4 전용 (단일 스택) 서브넷을 이중 스택 서브넷으로 변경할 수 있습니다.
서브넷 유형
VPC 네트워크에서는 다음과 같은 Compute Engine 서브넷 유형을 지원합니다.
IPv4 서브넷 범위만 있는 IPv4 전용(단일 스택) 서브넷
IPv4 및 IPv6 서브넷 범위가 있는 IPv4 및 IPv6 (이중 스택) 서브넷
이중 스택 제한사항
기존 App Engine 리소스의 스택 유형을 변경하기 전에 다음 제한사항을 고려하세요.
커스텀 모드 VPC 네트워크의 서브넷에서만 이중 스택 지원을 사용할 수 있습니다. 이중 스택 서브넷에 내부 액세스 유형을 사용할 수 있게 하려면 VPC 네트워크 내부 IPv6 범위를 사용 설정해야 합니다. VPC 네트워크를 설정하거나 커스텀 모드로 변환합니다.
IPv4 전용 서브넷에 비해 이중 스택 서브넷에서는 콜드 스타트 지연 시간이 길어져 애플리케이션 수직 확장 속도가 제한될 수 있습니다.
NAT64는 지원되지 않습니다.
시작하기 전에
외부 IPv6로 서브넷을 사용하려면 App Engine 서비스 에이전트에 Compute 공개 IP 관리자 역할 (roles/compute.publicIpAdmin)이 있어야 합니다.
이중 스택 서브넷 설정
이중 스택 서브넷에는 IPv4 및 IPv6 주소 범위가 모두 있습니다.
이중 스택 서브넷을 설정하려면 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하면 됩니다.
콘솔
Google Cloud 콘솔로 이동하여 Compute Engine API를 사용 설정합니다.
VPC 네트워크 페이지로 이동합니다.
새 커스텀 모드 네트워크를 만드는 경우 VPC 네트워크 만들기를 클릭합니다. 기존 VPC 네트워크를 사용하는 경우 VPC 네트워크 이름을 클릭하여 VPC 네트워크 세부정보 페이지를 표시합니다.
새 네트워크를 만들거나 기존 네트워크를 변환하는 경우 이름을 입력하고 서브넷 생성 모드가 커스텀으로 설정되어 있는지 확인한 후 이 VPC 네트워크에 ULA 내부 IPv6 범위 구성을 선택합니다.
서브넷 탭에서 서브넷 추가를 클릭합니다. 표시되는 패널에서 다음을 설정합니다.
- 이름을 입력합니다.
- 리전을 선택합니다.
- IP 스택 유형에 IPv4 및 IPv6(이중 스택)을 선택합니다.
- IPv4 범위를 입력합니다. 이 범위는 서브넷의 기본 IPv4 범위입니다.
IPv6 액세스 유형을 선택합니다.
내부 옵션을 사용할 수 없지만 필요한 경우 네트워크에 내부 IPv6 범위가 할당되었는지 확인합니다.
추가를 클릭합니다.
gcloud
이중 스택 서브넷을 지원하는 커스텀 모드 네트워크를 만들려면
gcloud compute networks create명령어를 실행합니다.이 네트워크의 서브넷에서 내부 IPv6 범위를 구성하려면
--enable-ula-internal-ipv6플래그를 사용합니다. 이 옵션은 내부 IPv6 서브넷 범위에 대해 Google Cloud 에서 사용하는fd20::/20범위 내에서/48ULA 프리픽스를 할당합니다.gcloud compute networks create NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
NETWORK를 새 서브넷이 포함될 VPC 네트워크의 이름으로 바꿉니다.
이중 스택 서브넷을 지원하도록 커스텀 모드 네트워크로 변환하거나 업데이트하려면 다음 명령어를 실행합니다.
gcloud compute networks update NETWORK \ --switch-to-custom-subnet-mode \ --enable-ula-internal-ipv6
NETWORK를 새 서브넷이 포함될 VPC 네트워크의 이름으로 바꿉니다.
IPv6 범위가 있는 이중 스택 서브넷을 만들려면 이중 스택 설정을 사용하여
subnets create명령어를 실행합니다.gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --range=PRIMARY_IPv4_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=IPV6_ACCESS_TYPE \ --region=REGION
다음을 바꿉니다.
- SUBNET: 새 서브넷의 이름
- NETWORK: 새 서브넷을 포함할 VPC 네트워크의 이름
- PRIMARY_IPv4_RANGE: CIDR 표기법으로 표시된 새 서브넷의 기본 IPv4 주소 범위. 자세한 내용은 IPv4 서브넷 범위를 참조하세요.
- IPV6_ACCESS_TYPE: 새 서브넷의 IPv6 액세스 유형(
internal또는external)입니다. - REGION: 새 서브넷이 생성될 Google Cloud 리전입니다.
App Engine 리소스에 이중 스택 서브넷 추가
이중 스택 서브넷을 만든 후 서브넷을 사용하도록 App Engine 서비스를 구성합니다.
app.yaml파일의vpc_access필드에서 네트워크와 서브넷을 지정합니다.vpc_access: network_interface: network: NETWORK subnet: SUBNET vpc_egress: EGRESS_SETTING
다음을 바꿉니다.
NETWORK: 이전 단계에서 만든 네트워크의 이름입니다.
SUBNET: 이전 단계에서 만든 서브넷의 이름입니다.
선택사항: EGRESS_SETTING: 아웃바운드 트래픽이 라우팅되는 방식을 제어합니다. 이 필드는 다음 구성 설정을 지원합니다.
all-traffic: 모든 아웃바운드 요청이 VPC 네트워크를 통해 라우팅됩니다.private-ranges-only(기본값): 내부 IP 주소로 향하는 트래픽만 VPC 네트워크를 통해 라우팅됩니다. 인터넷 트래픽은 기본 App Engine 경로를 사용합니다.
다음 명령어를 실행하여 App Engine에 배포합니다.
gcloud beta app deploy
단일 스택에서 이중 스택으로 서브넷 변경
커스텀 모드 VPC 네트워크의 기존 IPv4 전용 서브넷에 IPv6 서브넷 범위를 추가하려면 서브넷의 스택 유형을 이중 스택으로 변경을 참고하세요. 그런 다음 이중 스택 서브넷에 App Engine 서비스를 배포합니다.
이중 스택에서 단일 스택으로 서브넷 변경
리소스의 이중 스택 서브넷을 단일 스택 서브넷으로 변경하려면 이중 스택 서브넷을 IPv4 전용으로 변경을 참고하세요. 그런 다음 이중 스택 서브넷에 App Engine 서비스를 배포합니다.
네트워크 및 서브넷 확인
리소스가 VPC 네트워크에 있는지 확인하려면 다음 명령어를 실행합니다.
gcloud beta app versions describe VERSION --service=SERVICE
다음을 바꿉니다.
- VERSION: 배포된 서비스 버전
- SERVICE: 배포된 서비스
다음 출력 예시에서는 네트워크와 서브넷을 보여줍니다.
vpcAccess:
networkInterfaces:
- network: projects/YOUR_PROJECT/global/networks/YOUR_NETWORK
subnet: projects/YOUR_PROJECT/regions/YOUR_REGION/subnetworks/YOUR_SUBNET
vpcEgress: ALL_TRAFFIC/PRIVATE_RANGES_ONLY