비공개 내부 전용 서비스 구성

이 페이지에서는 내부 IP 주소에만 App Engine 가변형 환경 서비스를 노출하는 데 필요한 구성에 대하여 설명합니다.

기본적으로 가변형 환경 서비스는 처음 배포될 때 내부 IP 주소와 임시 외부 IP 주소를 모두 받습니다. 임시 외부 IP 주소를 사용하면 서비스에서 인터넷의 커스텀 도메인 및 리소스가 있는 App Engine 서비스에 요청을 보낼 수 있습니다. 임시 외부 IP 주소는 비용이 발생합니다.

서비스에 외부 IP 주소가 필요하지 않으면 내부 IP 주소만 사용하도록 서비스를 제한하여 서비스에서 인터넷의 리소스에 요청을 보내지 않도록 하고 비용을 줄일 수 있습니다. 그러나 서비스의 정규화된 도메인 이름은 계속 표시되므로 커스텀 도메인이 있는 인터넷 또는 App Engine 서비스로부터 서비스가 요청을 수신하는 것을 차단하지 않습니다.

제한사항

임시 외부 IP 주소를 사용 중지하는 데에는 다음과 같은 제한사항이 있습니다.

  • 커스텀 도메인이 있는 서비스: 커스텀 도메인으로 App Engine 서비스에 요청을 보내려면 Cloud NAT를 구성해야 합니다.
  • 외부 리소스: 외부 리소스에 요청을 전송하려면 Cloud NAT를 구성해야 합니다.
  • 비공개 Google 액세스 종속 항목: IP 모드가 internal로 설정된 인스턴스는 대상 서브네트워크에 비공개 Google 액세스가 필요합니다.
  • 기존 네트워크: 기존 네트워크는 비공개 Google 액세스를 사용할 수 없으므로 임시 외부 IP 주소를 중지할 수 없습니다.

시작하기 전에

외부 IP 주소가 없는 가변형 환경 앱을 배포하려면 대상 서브네트워크에서 비공개 Google 액세스를 사용 설정해야 합니다.

공유 VPC 네트워크 준비

공유 VPC를 사용하는 경우 추가 구성을 위해 다음 단계에 따라 공유 VPC 네트워크를 준비합니다.

  1. 비공개 Google 액세스와 호환되는 경로가 있는지 확인합니다. 일반적으로 네트워크의 기본 경로는 비공개 Google 액세스와 호환됩니다. 다른 경로의 경우 경로가 다음과 같이 구성되었는지 확인합니다.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Instance tags: INSTANCE_TAGS
    Next hop: DEFAULT_INTERNET_GATEWAY
    

    다음을 바꿉니다.

    • SHARED_VPC_NETWORK_NAME: 공유 VPC 네트워크 이름입니다.
    • INSTANCE_TAGS: 인스턴스 태그를 사용하지 않는 경우 이 필드에 아무것도 지정하지 마세요. 인스턴스 태그를 사용하는 경우 인스턴스 태그 목록에 aef-instances를 포함하세요.
    • DEFAULT_INTERNET_GATEWAY: 기본 인터넷 게이트웨이입니다.

    비공개 Google 액세스의 호환 경로에 대한 자세한 내용은 라우팅 옵션에 대한 비공개 Google 액세스 문서를 참조하세요.

  2. 비공개 Google 액세스와 호환되는 방화벽 규칙이 있는지 확인합니다. 방화벽 규칙은 다음과 같이 구성해야 합니다.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Destination filter: IP ranges
    Direction of traffic: Egress
    Attach on match: Allow
    Instance tags: INSTANCE_TAGS
    

    다음을 바꿉니다.

    • SHARED_VPC_NETWORK_NAME: 공유 VPC 네트워크 이름입니다.
    • INSTANCE_TAGS: 인스턴스 태그를 사용하지 않는 경우 이 필드에 아무것도 지정하지 마세요. 인스턴스 태그를 사용하는 경우 인스턴스 태그 목록에 aef-instances를 포함하세요.

    비공개 Google 액세스에 호환되는 방화벽 규칙에 대한 자세한 내용은 방화벽 구성에 대한 비공개 Google 액세스 문서를 참조하세요.

내부 IP 주소만 사용하도록 서비스 구성

  1. Google Cloud CLI를 업데이트합니다. 이렇게 하면 가변형 환경 앱에 비공개 IP 주소를 지원하는 gcloud CLI 버전을 사용할 수 있습니다.

    gcloud components update
    
  2. app.yaml 파일에서 instance_ip_mode 필드를 network 섹션에 추가하고 internal로 설정합니다.

    • app.yaml 파일에 이미 network 섹션이 있는 경우 network 섹션 내에 다음 줄을 추가합니다.

      instance_ip_mode: internal
      

    • app.yaml 파일에 network 섹션이 없으면 섹션을 만들고 다음 줄을 추가하여 인스턴스 IP 모드를 지정합니다.

      network:
       instance_ip_mode: internal
      

    이 변경사항을 저장합니다.

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

    gcloud beta app deploy
    
  4. Google Cloud 콘솔의 인스턴스 페이지를 점검하여 구성이 맞는지 확인합니다.

    인스턴스로 이동

    아래로 스크롤하여 인스턴스 테이블(요약 차트 아래)로 이동합니다. VM IP 열에 나열된 IP 주소가 없는지 확인합니다. 이 열에 IP 주소가 없으면 인스턴스에 외부 IP 주소가 없다는 것을 의미합니다. 이 필드가 비어 있어도 인스턴스에는 여전히 내부 IP 주소가 있습니다.

외부 IP 주소 없이 외부 요청 전송

서비스에서 인터넷으로 요청을 전송하되 내부 IP 주소만 사용하도록 제한하려면 Cloud NAT를 사용하여 게이트웨이를 만들면 됩니다. 서비스에서 기본 임시 외부 IP 주소를 사용하지 않아도 Cloud NAT 게이트웨이를 통해 외부 요청을 전송할 수 있습니다.

  1. 내부 IP 주소만 사용하도록 서비스 구성 섹션의 단계를 따르세요.

  2. Cloud NAT 구성 단계를 따릅니다.

이 방법에 대한 자세한 내용은 클라우드 아키텍처 센터 문서에서 가져오기를 위한 Cloud NAT 배포를 참조하세요.