서버리스 VPC 액세스

서버리스 VPC 액세스를 사용하면 Cloud Run, App Engine, Cloud Functions와 같은 서버리스 환경에서 Virtual Private Cloud(VPC) 네트워크에 직접 연결할 수 있습니다. 서버리스 VPC 액세스를 구성하면 RFC 1918RFC 6598에서 정의된 대로 서버리스 환경에서 내부 DNS 및 내부 IP 주소를 사용하여 VPC 네트워크에 요청을 보낼 수 있습니다. 이러한 요청에 대한 응답도 내부 네트워크를 사용합니다.

서버리스 VPC 액세스를 사용하면 다음과 같은 두 가지 주요 이점이 있습니다.

  • VPC 네트워크로 전송된 요청은 절대 인터넷에 노출되지 않습니다.
  • 서버리스 VPC 액세스를 통한 통신은 인터넷에 비해 지연 시간이 짧을 수 있습니다.

서버리스 VPC 액세스는 내부 트래픽이 서버리스 VPC 액세스 커넥터를 통해 서버리스 환경에서 전송된 요청에 대한 응답인 경우에만 VPC 네트워크에서 서버리스 환경으로 내부 트래픽을 전송합니다. 서버리스 환경으로 다른 내부 트래픽을 전송하는 방법에 대한 자세한 내용은 비공개 Google 액세스를 참조하세요.

여러 VPC 네트워크 및 Google Cloud 프로젝트에서 리소스에 액세스하려면 공유 VPC 또는 VPC 네트워크 피어링도 구성해야 합니다.

작동 방식

서버리스 VPC 액세스는 커넥터라는 리소스를 토대로 합니다. 커넥터는 서버리스 환경과 VPC 네트워크 간의 트래픽을 처리합니다. Google Cloud 프로젝트에서 커넥터를 생성할 때 특정 VPC 네트워크 및 리전에 연결합니다. 그런 다음 아웃바운드 네트워크 트래픽에 커넥터를 사용하도록 서버리스 서비스를 구성할 수 있습니다.

IP 주소 범위

커넥터의 IP 주소 범위를 설정하는 방법은 두 가지가 있습니다.

  • 서브넷: 이미 서브넷을 사용 중인 리소스가 없으면 기존 /28 서브넷을 지정할 수 있습니다.
  • CIDR 범위: 사용되지 않은 /28 CIDR 범위를 지정할 수 있습니다. 이 범위를 지정할 때는 사용 중인 CIDR 범위와 겹치지 않는지 확인하세요.

커넥터를 통해 VPC 네트워크로 전송된 트래픽은 지정된 서브넷 또는 CIDR 범위에서 시작됩니다.

방화벽 규칙

서브넷이 공유 서브넷이 아닌 경우, 우선순위가 1,000인 암묵적인 방화벽 규칙이 VPC 네트워크에 생성되어 커넥터의 서브넷이나 커스텀 IP 범위에서 네트워크의 모든 대상으로 이동하는 인그레스를 허용합니다. 묵시적인 방화벽 규칙은 Google Cloud Console에 표시되지 않으며 연결된 커넥터가 존재하는 경우에만 존재합니다.

처리량 및 확장

서버리스 VPC 액세스 커넥터는 커넥터 인스턴스로 구성됩니다. 커넥터 인스턴스는 여러 머신 유형 중 하나를 사용할 수 있습니다. 머신 유형이 클수록 처리량이 높습니다. Google Cloud Console 및 다음 표에서 각 머신 유형의 예상 처리량과 비용을 볼 수 있습니다.

머신 유형 Mbps의 예상 처리량 범위* 가격
(커넥터 인스턴스와 네트워크 아웃바운드 데이터 전송 비용)
f1-micro 100-500 f1-micro 가격
e2-micro 200-1000 e2-micro 가격
e2-standard-4 3200-16000 e2 표준 가격 책정

* 최대 처리량 범위는 일반 작업 기반의 예측입니다. 실제 처리량은 여러 요인에 따라 달라집니다. VM 네트워크 대역폭을 참조하세요.

.

커넥터에 허용되는 커넥터 인스턴스의 최소 및 최대 수를 설정할 수 있습니다. 최솟값은 2 이상이어야 합니다. 최댓값은 10 이하여야 하며 최솟값보다 커야 합니다. If you 커넥터의 최소 및 최대 인스턴스 수를 지정하지 않으면 기본적으로 최솟값 2와 최댓값 10이 적용됩니다. Google에서 보안 업데이트와 같은 유지보수를 수행할 때 커넥터가 최대 인스턴스 수 설정 값을 일시적으로 초과할 수 있습니다. 유지보수 중에 서비스가 중단되지 않도록 추가 인스턴스를 추가할 수 있습니다. 유지보수가 완료되면 커넥터는 유지보수 기간 전과 동일한 수의 인스턴스로 돌아갑니다. 유지보수는 일반적으로 몇 분 동안 지속됩니다.

서버리스 VPC 액세스는 트래픽이 증가함에 따라 커넥터의 인스턴스 수를 자동으로 수평 확장합니다. 추가된 인스턴스는 커넥터에 지정된 유형입니다. 커넥터는 머신 유형을 혼합할 수 없습니다. 커넥터는 축소되지 않습니다. 커넥터가 원하는 만큼 이상으로 수평 확장되지 않도록 하려면 최대 인스턴스 수를 낮게 설정합니다. 커넥터가 수평 확장되었고 더 적은 인스턴스가 필요한 경우 원하는 인스턴스 수로 커넥터를 다시 만듭니다.

머신 유형으로 f1-micro를 선택하고 최소 및 최대 인스턴스 수에 기본값(각각 2, 10)을 사용하는 경우 커넥터의 예상 처리량은 인스턴스 수가 기본 최솟값이면 100Mbps, 인스턴스 수가 기본 최댓값이면 500Mbps입니다.

처리량 차트

Google Cloud console의 커넥터 세부정보 페이지에서 현재 처리량을 모니터링할 수 있습니다. 이 페이지의 처리량 차트에는 커넥터 처리량 측정항목에 대한 세부 보기가 표시됩니다.

네트워크 태그

서버리스 VPC 액세스 네트워크 태그를 사용하면 방화벽 규칙경로에서 VPC 커넥터를 참조할 수 있습니다.

모든 서버리스 VPC 액세스 커넥터는 자동으로 다음 두 가지 네트워크 태그(인스턴스 태그라고도 함)를 수신합니다.

  • 범용 네트워크 태그(vpc-connector): 모든 기존 커넥터와 향후의 커넥터에 적용됩니다.

  • 고유 네트워크 태그(vpc-connector-REGION-CONNECTOR_NAME): REGION 리전의 CONNECTOR_NAME 커넥터에 적용됩니다.

이러한 네트워크 태그를 삭제할 수 없습니다. 새 네트워크 태그를 추가할 수 없습니다.

사용 사례

서버리스 VPC 액세스를 사용하여 Compute Engine VM 인스턴스, Memorystore 인스턴스, 내부 DNS 또는 내부 IP 주소가 있는 기타 리소스에 액세스할 수 있습니다. 다음은 몇 가지 예시입니다.

  • Memorystore를 사용하여 서버리스 서비스의 데이터를 저장합니다.
  • 서버리스 워크로드는 Compute Engine VM에서 실행되는 서드 파티 소프트웨어를 사용합니다.
  • Compute Engine의 관리형 인스턴스 그룹에서 백엔드 서비스를 실행한 상태에서 인터넷에 노출되지 않고 이 백엔드와 통신하기 위해 서버리스 환경이 필요합니다.
  • 서버리스 환경은 Cloud VPN을 통해 온프레미스 데이터베이스의 데이터에 액세스해야 합니다.

이 예시에서 Google Cloud 프로젝트는 App Engine, Cloud Functions, Cloud Run과 같은 서버리스 환경에서 여러 서비스를 실행합니다.

서버리스 VPC 액세스 커넥터가 생성되고 IP 범위 10.8.0.0/28이 할당되었습니다. 따라서 커넥터에서 전송된 요청의 소스 IP 주소는 이 범위에 있습니다.

VPC 네트워크에는 두 개의 리소스가 있습니다. 이러한 리소스 중 하나는 내부 IP 주소 10.0.0.4를 가집니다. 다른 리소스는 내부 IP 주소 10.1.0.2를 가지며 서버리스 VPC 액세스 커넥터와 다른 리전에 있습니다.

커넥터는 이러한 내부 IP 주소로부터 직접 요청과 응답을 주고받습니다. 커넥터가 내부 IP 주소가 10.1.0.2인 리소스에 요청을 전송하는 경우 리소스는 다른 리전에 있으므로 아웃바운드 데이터 전송 비용이 적용됩니다.

서버리스 환경과 VPC 네트워크의 리소스 간의 모든 요청과 응답은 내부적으로 전달됩니다.

외부 IP 주소로 전송된 요청은 여전히 인터넷을 통해 전달되며 서버리스 VPC 액세스 커넥터를 사용하지 않습니다.

다음 다이어그램은 이 구성을 보여줍니다.

서버리스 VPC 액세스 예(확대하려면 클릭)
서버리스 VPC 액세스 예시(확대하려면 클릭)

가격 책정

서버리스 VPC 액세스 가격 책정은 VPC 가격 책정 페이지의 서버리스 VPC 액세스를 참조하세요.

지원되는 서비스

다음 표는 서버리스 VPC 액세스를 사용하여 연결할 수 있는 네트워크의 유형을 보여줍니다.

연결 서비스 서버리스 VPC 액세스 지원
VPC
공유 VPC
이전 네트워크
Cloud Interconnect에 연결된 네트워크
Cloud VPN에 연결된 네트워크
VPC 네트워크 피어링에 연결된 네트워크

다음 표에는 서버리스 VPC 액세스를 지원하는 서버리스 환경이 나와 있습니다.

서버리스 환경 서버리스 VPC 액세스 지원
Cloud Run
Knative serving*
Cloud Functions
App Engine 표준 환경 PHP 5를 제외한 모든 런타임
App Engine 가변형 환경*

Knative serving 또는 App Engine 가변형 환경에서 연결할 때 내부 IP 주소를 사용하려는 경우에는 서버리스 VPC 액세스를 구성하지 않아도 됩니다. 원하는 리소스에 연결할 수 있는 VPC 네트워크에 서비스가 배포되었는지 확인하세요.

지원되는 네트워킹 프로토콜

다음 표에서는 서버리스 VPC 액세스 커넥터가 지원하는 네트워킹 프로토콜을 설명합니다.

프로토콜 VPC 커넥터를 통해 비공개 IP에 대한 요청만 라우팅 VPC 커넥터를 통해 모든 트래픽 라우팅
TCP
UDP
ICMP 외부 IP 주소만 지원됩니다.

지원되는 리전

서버리스 VPC 액세스 커넥터는 Cloud Run, Cloud Functions, App Engine 표준 환경을 지원하는 모든 리전에서 지원됩니다.

사용 가능한 리전을 보려면 다음 안내를 따르세요.

gcloud compute networks vpc-access locations list

다음 단계