Google App Engine
초기 프로젝트: engine-main
최종 프로젝트: google-appengine-standard
이 튜토리얼에서는 Ktor 프로젝트를 Google App Engine 표준 환경에 준비하고 배포하는 방법을 보여줍니다. 이 튜토리얼은 engine-main 샘플 프로젝트를 시작 프로젝트로 사용합니다.
사전 준비
이 튜토리얼을 시작하기 전에 다음 단계를 수행해야 합니다:
- Google Cloud Platform에 등록합니다.
- Google Cloud SDK를 설치하고 초기화합니다.
- 다음 명령어를 사용하여 Java용 App Engine 확장을 설치합니다:Bash
gcloud components install app-engine-java
샘플 애플리케이션 클론
샘플 애플리케이션을 열려면 다음 단계를 따르세요:
- Ktor 문서 저장소를 클론하고 codeSnippets 프로젝트를 엽니다.
- engine-main 모듈을 엽니다.
Ktor는 서버를 생성하고 구성하는 두 가지 접근 방식을 제공합니다: 코드 내에서 또는 구성 파일을 사용하여. 이 튜토리얼에서는 두 접근 방식 모두 배포 프로세스가 동일합니다.
애플리케이션 준비
1단계: Shadow 플러그인 적용
이 튜토리얼은 fat JAR를 사용하여 애플리케이션을 Google App Engine에 배포하는 방법을 보여줍니다. fat JAR를 생성하려면 Shadow 플러그인을 적용해야 합니다. build.gradle.kts
파일을 열고 plugins
블록에 플러그인을 추가하세요:
plugins {
id("com.gradleup.shadow") version "8.3.9"
}
2단계: App Engine 플러그인 구성
Google App Engine Gradle 플러그인은 Google App Engine 애플리케이션을 빌드하고 배포하는 태스크를 제공합니다. 이 플러그인을 사용하려면 다음 단계를 따르세요:
settings.gradle.kts
파일을 열고 중앙 Maven 저장소에서 플러그인을 참조하기 위해 다음 코드를 삽입합니다:groovypluginManagement { repositories { gradlePluginPortal() mavenCentral() maven("https://maven.pkg.jetbrains.space/public/p/ktor/eap") } resolutionStrategy { eachPlugin { if (requested.id.id.startsWith("com.google.cloud.tools.appengine")) { useModule("com.google.cloud.tools:appengine-gradle-plugin:${requested.version}") } } } }
build.gradle.kts
를 열고plugins
블록에 플러그인을 적용합니다:kotlinplugins { id("com.google.cloud.tools.appengine") version "2.8.0" }
build.gradle.kts
파일에 다음 설정과 함께appengine
블록을 추가합니다:kotlinimport com.google.cloud.tools.gradle.appengine.appyaml.AppEngineAppYamlExtension configure<AppEngineAppYamlExtension> { stage { setArtifact("build/libs/${project.name}-all.jar") } deploy { version = "GCLOUD_CONFIG" projectId = "GCLOUD_CONFIG" } }
3단계: App Engine 설정 구성
app.yaml 파일에서 애플리케이션의 App Engine 설정을 구성합니다:
src/main
내부에appengine
디렉터리를 생성합니다.이 디렉터리 안에
app.yaml
파일을 생성하고 다음 내용을 추가합니다 (google-appengine-standard
를 프로젝트 이름으로 바꾸세요):yamlruntime: java21 entrypoint: 'java -jar google-appengine-standard-all.jar'
entrypoint
옵션에는 애플리케이션용으로 생성된 fat JAR를 실행하는 데 사용되는 명령어가 포함되어 있습니다.지원되는 구성 옵션에 대한 추가 문서는 Google App Engine 문서에서 찾을 수 있습니다.
애플리케이션 배포
애플리케이션을 배포하려면 터미널을 열고 다음 단계를 따르세요:
먼저 애플리케이션 리소스를 담는 최상위 컨테이너인 Google Cloud 프로젝트를 생성합니다. 예를 들어, 아래 명령은
ktor-sample-app-engine
이름을 가진 프로젝트를 생성합니다:Bashgcloud projects create ktor-sample-app-engine --set-as-default
Cloud 프로젝트용 App Engine 애플리케이션을 생성합니다:
Bashgcloud app create
애플리케이션을 배포하려면
appengineDeploy
Gradle 태스크를 실행하고...Bash./gradlew appengineDeploy
... Google Cloud가 애플리케이션을 빌드하고 게시할 때까지 기다립니다:
...done. Deployed service [default] to [https://ktor-sample-app-engine.ew.r.appspot.com]
빌드 중
Cloud Build has not been used in project
오류가 발생하면, 오류 보고서의 지침을 사용하여 활성화하세요.
완성된 예시는 다음에서 찾을 수 있습니다: google-appengine-standard.