適当に作ったspring bootアプリをお試しレベルで安価で気軽にデプロイできる環境を探していたら、GoogleのPaaSである、Google App Engine(GAE)で無料で使えることに気がついたので使ってみた。
Google App Engineの無料枠
Fインスタンスなら無料で使えるらしい。
Java 11なら、メモリ256MB, CPU 600MHz。
Google Cloud の無料プログラム | Google Cloud Free Program
GAE(Google App Engine)でspring bootアプリをデプロイする(gradle)
GCPのコンソールで必要に応じてプロジェクトを作成しておく。(以下適当にprojectxとした)
gcloudのインストールなどが必要。ここでは割愛。
下記を参考にさせていただきました。
Google App Engine (Java 11) + Spring Boot + Gradle で Hello World - Qiita
概要Google App Engine Java 11 スタンダード環境 + Spring Boot の構成でシンプルな Hello World 表示 Web アプリケーションを作るGoogle…
build.gradleについて、下記コメント部分を追加。
// Google App Engine plugin設定
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.springframework.boot:spring-boot-gradle-plugin:2.2.0.RELEASE'
classpath 'com.google.cloud.tools:appengine-gradle-plugin:2.2.0'
}
}
plugins {
id 'org.springframework.boot' version '2.5.3'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
// Google App Engine plugin設定
apply plugin: 'com.google.cloud.tools.appengine'
group = 'net.uoneweb'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.google.appengine:appengine-api-1.0-sdk:+' // Google App Engine plugin設定
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
// Google App Engine plugin設定
appengine {
deploy {
projectId = 'projectx'
version = 'GCLOUD_CONFIG'
}
}
app.yamlを作成。
googleのドキュメントではsrc/main/appengine/に置くようになっているが、github-actionsの後述の方法でデプロイするなら、プロジェクトルートに置くのが無難そうである。
runtime: java11
instance_class: F1
コマンドラインから実行してみる。
まず、カレントプロジェクトを設定。
gcloud config set project projectx
プロジェクトルートで下記を実行。
gcloud app deploy
基本的にはこれだけでデプロイできてしまう。思っていたより簡単。
参考
コメント
[…] GoogleAppEngineの無料枠でspring bootアプリをデプロイする適当に作ったspring boot… […]