yaml 구성 파일 정리

리전 ID

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

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

다음 문서는 App Engine 앱의 서비스와 관련 리소스를 구조화하는 방법을 설명합니다.

디렉터리 구조

App Engine 서비스의 각 버전은 app.yaml 구성 파일에서 정의됩니다. 간단한 앱의 경우 app.yaml 파일만 정의하면 배포될 수 있습니다. app.yaml 파일은 배포 설명자 역할을 하며 서비스의 특정 버전에 대한 확장 유형, CPU, 디스크, 메모리 리소스를 정의합니다. 서비스의 여러 버전을 배포하려면 같은 디렉터리에 각 버전의 구성을 나타내는 YAML 파일을 여러 개 만들면 됩니다.

YAML 형식의 구성 파일은 Eclipse Jetty 9자바 8 런타임에 사용됩니다.

파일 구성은 사용 중인 자바 런타임에 따라 달라집니다. 앱의 각 서비스에 WAR 파일이나 JAR 파일이 필요할 수 있습니다. 자세한 내용은 해당 자바 런타임 개발자 가이드를 참조하세요.

인스턴스 업타임 설계 고려사항

조기 종료나 빈번한 인스턴스 다시 시작을 초래하는 하드웨어 또는 소프트웨어 오류는 예고 없이 발생할 수 있으며 해결하는 데 상당한 시간이 걸릴 수 있습니다. 애플리케이션은 이러한 오류에 대처할 수 있어야 합니다.

인스턴스 재시작으로 인한 다운타임 방지에 효과적인 전략은 다음과 같습니다.

  • 인스턴스 재시작 또는 새 인스턴스 시작에 걸리는 시간을 줄입니다.
  • 계산이 장기간 실행되는 경우 해당 상태부터 다시 시작할 수 있도록 정기적으로 체크포인트를 만듭니다.
  • 인스턴스에 아무것도 저장되지 않도록 앱이 '스테이트리스(Stateless)'이어야 합니다.
  • 큐를 사용하여 태스크를 비동기적으로 실행합니다.
  • 인스턴스를 수동으로 확장하도록 구성한 경우에는 다음을 수행합니다.
    • 여러 인스턴스에서 부하 분산을 사용합니다.
    • 일반적인 트래픽을 처리하는 데 필요한 수보다 많은 인스턴스를 구성합니다.
    • 수동 확장 인스턴스를 사용할 수 없는 경우에는 캐시된 결과를 사용하는 대체 로직을 작성합니다.

인스턴스에 대한 자세한 내용은 인스턴스 관리 방법을 참조하세요.

default 서비스

모든 App Engine 애플리케이션에는 default 서비스가 포함되어 있습니다. 서비스를 추가로 만들고 앱에 배포하려면 먼저 앱의 최초 버전을 default 서비스에 배포해야 합니다.

app.yaml에서 service: default 설정을 사용하여 기본 서비스를 선택적으로 지정할 수도 있습니다.

Cloud 프로젝트를 사용하여 앱에 보낸 요청은 default 서비스(예: https://PROJECT_ID.REGION_ID.r.appspot.com)로 전송됩니다. 다른 서비스 타겟팅에 대한 자세한 내용은 서비스 간 통신을 참조하세요.

선택적 구성 파일

다음 구성 파일은 개별 앱의 모든 서비스에 적용되는 선택적 기능을 제어합니다. 각 선택적 기능에 대한 자세한 내용은 다음 주제를 참조하세요.

  • dispatch.yaml는 URL의 경로 또는 호스트 이름에 따라 수신 요청을 특정 서비스로 보내어 기본 규칙을 라우팅합니다.
  • index.yaml는 Datastore 쿼리를 사용할 경우 앱에 필요한 색인을 지정합니다.
  • cron.yaml는 정의된 시간 또는 일정한 간격으로 작동하는 정기 예약 태스크를 구성합니다.

데이터 및 파일 스토리지 고려사항

App Engine에서 Datastore, Cloud SQL, Cloud Storage와 같은 다른 Google Cloud 서비스에 간편하게 액세스할 수 있습니다.

외부 또는 타사 데이터베이스가 사용자 언어로 지원되고 App Engine 인스턴스에서 액세스할 수 있으면 해당 데이터베이스를 사용할 수 있습니다.

파일을 Google Cloud 또는 외부에 저장하는 방법에 대한 자세한 내용은 데이터 및 파일 스토리지 이해를 참조하세요.

또한 정적 콘텐츠를 제공할 방법을 선택할 수 있습니다. 정적 콘텐츠를 App Engine에서 애플리케이션으로 직접 제공하거나, Cloud Storage와 같은 Google Cloud 옵션으로 호스팅하거나, 타사 콘텐츠 전송 네트워크(CDN)를 사용하는 방법 중 선택할 수 있습니다. 정적 콘텐츠 제공에 대한 자세한 내용은 정적 파일 제공을 참조하세요.

다음 단계

여러 서비스로 작업하는 경우, 이를 함께 배포하려면 여러 서비스 배포 단계를 참조하세요.