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

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

로컬에서 실행

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

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

애플리케이션 배포

시작하기 전에

애플리케이션을 배포하기 전에 해야 할 일은 다음과 같습니다.

서비스 배포

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

파일 무시

.gcloudignore 파일을 사용하여 서비스를 배포할 때 GCP에 업로드하지 않을 파일 및 디렉토리를 지정할 수 있습니다. 이렇게 하면 배포를 통해 업로드할 필요가 없는 빌드 아티팩트 및 기타 파일을 무시하는 경우에 유용합니다.

gcloud 참조에서 .gcloudignore 파일의 구문에 대해 자세히 알아보세요.

배포용 컨테이너의 수동 빌드

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

자동 연속 배포 파이프라인 사용

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

자바용 Docker 기본 이미지

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

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

애플리케이션 보기

애플리케이션을 App Engine에 배포한 후에는 다음 명령을 실행하여 브라우저를 실행하고 http://YOUR_PROJECT_ID.appspot.com에서 애플리케이션을 확인할 수 있습니다.

gcloud app browse

App Engine에서 테스트

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

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

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

    http://VERSION_ID.default.YOUR_PROJECT_ID.appspot.com
    

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

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

  3. 트래픽을 새 버전으로 전송하려면 GCP 콘솔을 사용하여 트래픽을 이전합니다.

    버전 관리

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

URL에서 default를 서비스 이름으로 대체하면 동일한 프로세스를 통해 다른 서비스의 새 버전을 테스트할 수 있습니다.

http://VERSION_ID.SERVICE_ID.YOUR_PROJECT_ID.appspot.com

특정 서비스 및 버전을 대상으로 지정하는 방법에 대한 자세한 내용은 요청이 라우팅되는 방법을 참조하세요.

문제해결

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

PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
GCP 프로젝트에 필요한 App Engine 애플리케이션이 포함되어 있지 않은 경우, gcloud app deploy 명령어를 실행하려고 시도하면 gcloud app create 명령어가 실패할 수 있습니다. 소유자 역할을 가진 계정만 App Engine 애플리케이션을 생성하는 데 필요한 권한을 갖습니다.
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

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

App Engine flexible environment for Java docs