애플리케이션 테스트 및 배포

리전 ID

REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google에서 할당하는 축약된 코드입니다. 일부 리전 ID는 일반적으로 사용되는 국가 및 주/도 코드와 비슷하게 표시될 수 있지만 코드는 국가 또는 주/도와 일치하지 않습니다. 기존 앱은 App Engine URL에 REGION_ID.r을 포함하는 것이 선택사항이지만 신규 앱은 모두 곧 필수가 될 예정입니다.

원활한 전환을 위해 리전 ID를 사용하도록 App Engine을 천천히 업데이트하고 있습니다. 아직 Google Cloud 프로젝트가 업데이트되지 않은 경우에는 앱의 리전 ID가 표시되지 않습니다. 기존 앱에서 ID는 선택사항이므로 기존 앱에서 리전 ID를 사용할 수 있게 되더라도 URL을 업데이트하거나 다른 변경을 수행할 필요가 없습니다.

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

애플리케이션을 로컬에서 실행하고, 배포하고, App Engine에서 테스트하는 방법에 대해 알아봅니다.

로컬에서 실행

배포 전에 애플리케이션 기능을 테스트하려면 자주 사용하는 개발 도구로 로컬 환경에서 애플리케이션을 실행합니다.

플러그인에 따른 특정 명령어를 포함한 자세한 내용은 자바 8/Jetty 9 런타임 로컬 테스트 또는 자바 8 런타임 로컬 테스트를 참조하세요.

애플리케이션 배포

시작하기 전에

애플리케이션을 배포하기 전에 다음을 확인합니다.

서비스 배포

지원되는 도구를 사용하여 자바 애플리케이션을 App Engine 가변형 환경에 배포할 수 있습니다. 명령줄 배포의 경우 Cloud SDK에서 gcloud app deploy를 사용하거나 Maven 또는 Gradle 플러그인을 사용합니다. IDE를 사용하여 배포하려면 IntelliJ 또는 Eclipse 플러그인을 사용합니다. 앱을 프로그래매틱 방식으로 배포하려면 Admin API를 사용합니다.

파일 무시

서비스를 배포할 때 .gcloudignore 파일을 사용하여 Google Cloud에 업로드하지 않을 파일과 디렉터리를 지정할 수 있습니다. 이 작업은 배포를 통해 업로드하지 않아도 되는 빌드 아티팩트와 기타 파일을 무시하는 경우에 유용합니다.

.gcloudignore 파일의 구문에 대해 자세한 내용은 gcloud 참조를 확인하세요.

배포를 위해 수동으로 컨테이너 빌드

Google Cloud Platform 외부에서 컨테이너 이미지를 빌드할 경우 gcloud app deploy 명령어를 사용하여 이미지를 App Engine에 배포하려면 먼저 이미지를 컨테이너 이미지 저장소에 업로드해야 합니다.

예를 들어 Docker를 사용하여 컨테이너 이미지를 로컬로 빌드하려면 이미지를 Google Container Registry로 내보낸 후 이미지의 URL을 명령어의 --image-url 플래그에 지정하면 됩니다.

gcloud app deploy src/main/appengine/app.yaml --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGE

자동화된 지속적 배포 파이프라인 사용

Cloud Build를 사용하여 지속적인 배포 파이프라인에서 배포를 자동화할 수 있습니다. 자세한 내용은 Cloud Build 문서에서 아티팩트 배포빌드 트리거를 사용하여 빌드 자동화를 참조하세요.

자바용 Docker 기본 이미지

자바 커스텀 런타임 애플리케이션을 처음부터 빌드하려면 Dockerfile에 제공된 기본 이미지를 사용합니다.

런타임 Docker 명령어
자바 8 FROM gcr.io/google_appengine/openjdk
자바 8/Jetty 9 FROM gcr.io/google-appengine/jetty

애플리케이션 보기

애플리케이션을 App Engine에 배포한 후 다음 명령어를 실행하면 브라우저를 시작하고 https://PROJECT_ID.REGION_ID.r.appspot.com에서 애플리케이션을 볼 수 있습니다.

gcloud app browse

App Engine에서 테스트

새 버전에서 트래픽을 수신하도록 구성하기 전에 App Engine에서 버전을 테스트할 수 있습니다. 예를 들어 default 서비스의 새 버전을 테스트하려면 다음 안내를 따르세요.

  1. promote 매개변수를 false로 설정하여 새 버전을 배포합니다.

  2. 다음 URL로 이동하여 새 버전에 액세스합니다.

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

    이제 App Engine 런타임 환경에서 새 버전을 테스트할 수 있습니다. Google Cloud Console 로그 뷰어에서 로그를 확인하여 애플리케이션을 디버깅할 수 있습니다. 자세한 내용은 애플리케이션 로그 작성을 참조하세요.

    https://PROJECT_ID.REGION_ID.r.appspot.com으로 전송된 요청은 여전히 이전에 트래픽을 수신하도록 구성된 버전으로 라우팅됩니다.

  3. 트래픽을 새 버전으로 전송하려면 Cloud Console을 사용하여 트래픽을 마이그레이션합니다.

    버전 관리하기

    방금 배포한 버전을 선택하고 트래픽 마이그레이션을 클릭합니다.

URL의 default를 서비스 이름으로 바꾸면 동일한 프로세스를 사용하여 다른 서비스의 새 버전을 테스트할 수 있습니다.

특정 서비스와 버전 타겟팅에 대한 자세한 내용은 요청 라우팅 방법을 참조하세요.

문제 해결

다음은 앱을 배포할 때 발생할 수 있는 일반적인 오류 메시지입니다.

PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
Cloud 프로젝트에 필수 App Engine 애플리케이션이 포함되어 있지 않은 경우 gcloud app create 명령어 실행을 시도하면 gcloud app deploy 명령어가 실패할 수 있습니다. 소유자 역할이 있는 계정에만 App Engine 애플리케이션을 생성하는 데 필요한 권한이 있습니다.
502 Bad Gateway
app.yaml이 잘못 구성된 경우 Cloud 프로젝트를 시작할 수 없습니다. 자세한 오류 메시지는 앱 로그를 확인하세요.