본문 바로가기
CSP (Cloud Service Provider)/GCP

Serverless VPC

by BTC_문돌이 2022. 6. 30.

안녕하세요~! BTC Hallo팀입니다. 오늘은 GCP의 Serverless VPC에 대해서 소개해 보겠습니다.

 

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

 

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

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

서버리스 VPC 액세스는 내부 트래픽이 서버리스 VPC 액세스 커넥터를 통해 서버리스 환경에서 전송된 요청에 대한 응답인 경우에만 VPC 네트워크에서 서버리스 환경으로 내부 트래픽을 전송합니다. 여러 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 액세스 커넥터는 커넥터 인스턴스로 구성됩니다. 커넥터 인스턴스는 여러 머신 유형 중 하나를 사용할 수 있습니다. 머신 유형이 클수록 처리량이 높습니다.

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

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

 

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

 

네트워크 태그

 

서버리스 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을 통해 온프레미스 데이터베이스의 데이터에 액세스해야 합니다.

지원되는 환경

 

VPC, Shared VPC, Cloud interconnect에 연결된 네트워크, Cloud VPN에 연결된 네트워크, VPC Network 피어링에 연결된 네트워크는 서버리스 VPC 액세스를 사용하여 연결이 되지만 Lagacy Network에는 연결되지 않습니다.

 

서버리스 VPC 액세스를 지원하는 서버리스 환경은 Cloud Run, Cloud Functions, App Engine 표준 환경(PHP 5를 제외한 모든 런타입)입니다. 지원되지 않는 서버리스 환경은  Cloud Run for Anthos, App Engine 가변형 환경 입니다.

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

 

이상으로 GCP의 Serverless VPC에 대해서 알아보았습니다. 감사합니다.

 

출처: https://cloud.google.com/vpc/docs/serverless-vpc-access?hl=ko

댓글