App Engine 가변형 환경의 알려진 문제

리전 ID

REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google에서 할당하는 축약된 코드입니다. 일부 리전 ID는 일반적으로 사용되는 국가 및 주/도 코드와 비슷하게 표시될 수 있지만 코드는 국가 또는 주/도와 일치하지 않습니다. 2020년 2월 이후에 생성된 앱의 경우 REGION_ID.r이 App Engine URL에 포함됩니다. 이 날짜 이전에 만든 기존 앱의 경우 URL에서 리전 ID는 선택사항입니다.

리전 ID에 대해 자세히 알아보세요.

알려진 문제의 전체 목록이 필요하거나 새 문제를 신고하려면 문제 추적기를 참조하세요.

  • gcloud app deploy로 애플리케이션을 배포한 후 애플리케이션이 https://PROJECT_ID.REGION_ID.r.appspot.com에서 서비스 제공을 시작하기까지 1~2분이 소요될 수 있습니다. 그때까지 HTTP 503 오류가 표시될 수 있습니다.

  • 프로젝트에 외부 IP에 대한 액세스를 제한하는 조직 정책이 있는 경우 외부 IP 주소를 사용하여 App Engine 가변형 환경 앱을 배포할 수 없습니다. 예를 들어 조직 정책은 다음과 같이 표시될 수 있습니다.

    • constraints/compute.vmExternalIpAccess에 관한 유효 정책은 DENY_ALL로 설정됩니다.
    • constraints/compute.vmExternalIpAccess에 관한 유효 정책은 특정 VM 인스턴스만 허용하도록 설정됩니다.

    이러한 제약은 자동으로 감지되지 않으므로 배포 시간이 초과되어 배포에 실패할 수 있습니다. gcloud beta resource-manager org-policies describe compute.vmExternalIpAccess --project=my-project --effective 명령어를 실행하여 프로젝트의 조직 정책을 확인할 수 있습니다. 특정 프로젝트의 조직 정책을 재정의할 수도 있습니다.

    그러나 이러한 조직 정책을 설정한 경우에도 내부 IP 주소만 사용하는 비공개 App Engine 가변형 환경 앱을 배포할 수 있습니다.

  • gcloud app deploy를 사용하여 App Engine 가변형 환경에 기존 서비스의 새 버전을 배포한 후 App Engine 대시보드의 '요약' 그래프에 표시되는 '개수/초' 측정항목이 현저하게 줄어들 수 있습니다. 측정항목은 앞으로 5~10분 동안 예상되는 요청 수로 점차 되돌아갑니다.

    그렇다고 해서 애플리케이션의 요청 수가 줄어든 것은 아닙니다. 애플리케이션의 새 버전을 배포할 때 새 버전의 요청을 처리할 준비가 된 시간과 새 인스턴스의 측정항목을 사용할 수 있게 된 시간 사이에 지연이 발생합니다.

    이 측정항목이 새 버전 배포의 영향을 받지 않도록 하려면 다음 안내를 따르세요.

    1. gcloud app deploy --no-promote를 사용하여 새 버전을 배포합니다.
    2. 배포가 완료되면 15분 동안 기다립니다.
    3. 트래픽을 새 버전으로 마이그레이션

    --no-promote를 사용하여 배포하되 배포가 완료된 후 15분 전에 새 버전에 일정량의 트래픽을 할당하면 이 측정항목이 영향을 받을 수 있습니다.

  • App Engine 가변형 환경에서는 앱이 항상 HTTPS를 사용하도록 자동으로 요청을 리디렉션하므로 app.yaml을 구성할 수 없습니다. 하지만 App Engine 표준 환경에서는 다릅니다. 여기서는 secure 설정을 사용할 수 있습니다.

    대안으로 X-Forwarded-Proto 헤더 값을 파싱하여 애플리케이션 코드 내 리디렉션을 처리할 수 있습니다. 또한 클라이언트가 Strict-Transport-Security 헤더를 사용하도록 권장할 수 있습니다.

  • App Engine 가변형 환경 버전에 사용자 관리 서비스 계정을 할당하면 agent.googleapis.com 프리픽스가 붙은 측정항목의 비용이 프로젝트에 청구될 수 있습니다. 일반적으로 이러한 에이전트 측정항목은 프로젝트에 요금이 청구되지 않습니다. 이 문제가 해결될 때까지 App Engine 기본 서비스 계정을 계속 사용하는 것이 좋습니다.

  • IAP를 사용하여 VM 인스턴스에 SSH 연결을 설정할 수 없습니다.

예기치 않은 인스턴스 수 감소

  • 드물지만 영역 장애로 인해 또는 전체 인스턴스 그룹이 응답하지 않는 경우 애플리케이션에서 예기치 않게 인스턴스 수가 감소할 수 있습니다. 이를 방지하려면 시스템이 최소 인스턴스 수 미만으로 떨어지지 않도록 애플리케이션을 오버프로비저닝하는 것이 좋습니다. App Engine 가변형 환경 애플리케이션을 배포할 때 min_num_instances 크기를 설정할 수 있습니다. App Engine 가변형 환경의 최소 인스턴스 수에 영향을 줄 수 있는 이벤트는 다음과 같습니다.

    1. 가변형 환경 인스턴스 업데이트 출시
    2. 영역 장애(리전에서 선택한 CPU 용량에 도달하는 등의 소진 문제)

    App Engine 가변형 환경은 3개 영역을 사용하여 인스턴스를 배포하며, 이러한 구성에서는 필요한 인스턴스보다 50% 많은 인스턴스를 프로비저닝하는 것이 권장됩니다.