VPC 네트워크에 연결

서버리스 VPC 액세스를 사용하면 App Engine 앱에서 직접 Compute Engine VM 인스턴스, Cloud Memorystore 인스턴스, Cloud SQL 인스턴스, 내부 IP 주소가 있는 기타 리소스에 연결할 수 있습니다. 이렇게 하면 다음과 같은 경우에 유용합니다.

  • Compute Engine의 관리형 인스턴스 그룹에서 백엔드 서비스를 실행하고 앱이 공개 인터넷에 노출되지 않고 이 서비스와 통신해야 합니다.
  • 앱이 Compute Engine VM에서 실행되는 타사 소프트웨어를 사용합니다.
  • App Engine 앱의 데이터를 저장하는 데 Cloud Memorystore를 사용합니다.
  • 앱이 온프레미스 데이터베이스의 데이터를 Cloud VPN을 통해 액세스해야 합니다.

서버리스 VPC 액세스를 사용하면 앱에서 내부 IP 주소(RFC 1918에서 정의)로 전송된 요청이 서버리스 VPC 액세스 커넥터를 통해 VPC 네트워크로 라우팅됩니다. 공개 IP 주소로 전송된 요청은 인터넷을 통해 라우팅됩니다. Google Cloud Platform 서비스에서만 내부 IP 주소에 액세스할 수 있으므로 이를 사용하면 내부 리소스가 공개 인터넷에 노출되지 않고 서비스 간의 통신 지연 시간이 단축됩니다.

서버리스 VPC 액세스는 Cloud VPNVPC 네트워크 피어링을 통해 연결된 VPC 네트워크와의 통신을 지원합니다. 서버리스 VPC 액세스는 기존 네트워크 또는 공유 VPC 네트워크를 지원하지 않습니다. 서버리스 VPC 액세스 커넥터는 월별 요금이 부과됩니다. 자세한 내용은 서버리스 VPC 액세스 가격 책정을 참조하세요.

VPC 네트워크에 연결

App Engine 앱을 VPC 네트워크에 연결하는 작업은 2단계로 이루어집니다.

  1. 서버리스 VPC 액세스 커넥터 만들기
  2. 커넥터를 사용하도록 App Engine 서비스 구성

서버리스 VPC 액세스 커넥터는 커넥터를 사용하는 앱과 같은 프로젝트 및 리전에 있어야 하지만 커넥터는 다른 리전의 리소스로 트래픽을 보낼 수 있습니다. 여러 App Engine 서비스가 동일한 커넥터를 사용할 수 있습니다. 커넥터에 대한 자세한 내용은 서버리스 VPC 액세스 구성을 참조하세요.

커넥터 만들기

GCP Console 또는 gcloud 명령줄 도구를 사용하여 커넥터를 만들 수 있습니다.

Console

  1. 서버리스 VPC 액세스 개요 페이지로 이동합니다.

    서버리스 VPC 액세스로 이동

  2. 커넥터 만들기를 클릭합니다.

  3. 이름 필드에 커넥터 이름을 입력합니다.

  4. 리전 필드에서 앱이 위치한 리전을 선택합니다.

  5. 네트워크 필드에서 연결할 VPC를 선택합니다.

  6. IP 범위 필드에 사용하지 않은 CIDR /28 IP 범위를 입력합니다. 이 범위 내 주소는 커넥터를 통해 전송된 트래픽의 소스 주소로 사용됩니다. 이 IP 범위는 VPC 네트워크에서 예약된 기존 IP 주소와 겹치지 않아야 합니다.

  7. (선택사항) 최소 처리량최대 처리량 필드에 값을 설정하여 커넥터의 처리량을 제어할 수 있습니다.

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

사용할 준비가 되면 커넥터 이름 옆에 녹색 체크표시가 나타납니다.

gcloud

  1. 다음 명령어를 사용하여 프로젝트에 Serverless VPC Access API를 사용 설정합니다.

    gcloud services enable vpcaccess.googleapis.com
    
  2. 커넥터를 만듭니다.

    gcloud beta compute networks vpc-access connectors create CONNECTOR_NAME \
    --network VPC_NETWORK \
    --region REGION \
    --range IP_RANGE
    

    각 항목의 의미는 다음과 같습니다.

    • CONNECTOR_NAME은 커넥터 이름입니다.
    • VPC_NETWORK는 연결할 VPC 네트워크입니다.
    • REGION은 앱이 위치한 리전입니다.
    • IP_RANGE는 사용되지 않는 CIDR /28 IP 범위입니다. 이 범위 내 주소는 커넥터를 통해 전송된 트래픽의 소스 주소로 사용됩니다. 이 IP 범위는 VPC 네트워크에서 예약된 기존 IP 주소와 겹치지 않아야 합니다.
  3. 커넥터를 사용하기 전에 커넥터가 READY 상태인지 확인합니다.

    gcloud beta compute networks vpc-access connectors describe CONNECTOR_NAME --region REGION
    

    출력에 state: READY 줄이 있어야 합니다.

커넥터를 만드는 중에 오류가 발생하면 다음을 시도하여 커넥터를 다시 만듭니다.

  • VPC 네트워크에서 예약된 기존 IP 주소와 겹치지 않는 IP 범위를 지정합니다.
  • ID가 serverless-vpc-access-images인 프로젝트에서 Compute Engine VM 이미지 사용 권한을 프로젝트에 부여합니다. 이에 맞게 조직 정책을 업데이트하는 자세한 방법은 이미지 액세스 제약조건 설정을 참조하세요.

커넥터를 사용하도록 앱 구성

서버리스 VPC 액세스 커넥터를 만든 후에는 커넥터를 사용하도록 App Engine 앱의 서비스를 구성할 수 있습니다. 여러 서비스에서 동일한 커넥터를 사용할 수 있습니다.

커넥터를 앱의 서비스에 연결하려면 다음 안내를 따르세요.

  1. 서비스의 app.yaml 파일에 vpc_access_connector 섹션을 추가합니다.

    vpc_access_connector:
      name: "projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME"
    

    여기서 PROJECT_ID는 GCP 프로젝트 ID이고 REGIONCONNECTOR_NAME은 커넥터를 만들 때 선택한 리전과 이름입니다. 커넥터와 앱은 같은 리전에 있어야 합니다.

  2. 서비스를 배포합니다.

    gcloud beta app deploy
    

서비스를 배포한 후에는 내부 IP 주소로 요청을 보내 VPC 네트워크의 리소스에 액세스할 수 있습니다.

커넥터에서 앱 연결 해제

앱이 더 이상 VPC 네트워크에 연결할 필요가 없으면 서버리스 VPC 액세스 커넥터의 연결을 해제할 수 있습니다.

커넥터에서 서비스의 연결을 해제하려면 다음 안내를 따르세요.

  1. 서비스의 app.yaml 파일에서 vpc_access_connector 섹션을 삭제합니다.

  2. 서비스를 다시 배포합니다.

    gcloud app deploy
    

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Python 2용 App Engine 표준 환경