QuarkusをAWS Lambdaで動かす最小構成を完全解説!初心者向けサーバーレスJava入門
生徒
「Quarkusって最近よく聞くんですが、AWS Lambdaみたいなサーバーレスでも動くんですか?」
先生
「動きますよ。しかも起動が速いので、Javaでサーバーレスをやりたい人には相性がとても良いです。」
生徒
「AWS Lambdaで動かすには、難しい設定が必要ですか?」
先生
「最小構成であれば、意外とシンプルです。今回は初心者でも迷わない形で説明していきましょう。」
1. QuarkusとAWS Lambdaの基本関係
Quarkusは、Javaで高速に起動するアプリケーションを作るためのフレームワークです。 AWS Lambdaは、サーバーを用意せずにコードだけを実行できるサーバーレス環境です。 この二つを組み合わせることで、Javaでもコールドスタートの遅さを感じにくいサーバーレス構成を実現できます。 特にQuarkusは、AWS Lambda Javaランタイムやカスタムランタイムと相性が良く、 クラウドネイティブ、マイクロサービス、サーバーレスといったキーワードと強く結びついています。
2. 開発環境に必要なもの
QuarkusをAWS Lambdaで動かす最小構成を試すために、事前にいくつか準備が必要です。 JavaはLTSであるJava17が推奨され、ビルドツールはMavenを使います。 AWS側ではAWSアカウントとIAM権限が必要になります。 また、AWS CLIをインストールしておくと、デプロイ作業がスムーズになります。 これらはサーバーレス開発やクラウド学習でも頻繁に使われる基本要素なので、 早めに慣れておくと今後の学習が楽になります。
3. Quarkusプロジェクトの最小構成作成
まずはQuarkusのプロジェクトを作成します。 AWS Lambda向けには、専用のエクステンションを追加するだけで対応できます。 最小構成ではREST APIを一つだけ持つシンプルな構造にします。 以下は、Lambda上で呼び出される最小のハンドラクラス例です。
package org.example;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class HelloLambda implements RequestHandler<Object, String> {
@Override
public String handleRequest(Object input, Context context) {
return "Hello Quarkus on AWS Lambda";
}
}
4. application.propertiesの最小設定
Quarkusでは設定ファイルとしてapplication.propertiesを使います。 AWS Lambda向けの最小構成では、余計な設定は不要です。 Lambdaで動かすことを明示するための設定を入れることで、 QuarkusがLambda環境向けに最適化されます。
quarkus.lambda.handler=org.example.HelloLambda
5. MavenでビルドしてLambda用成果物を作成
次にMavenを使ってビルドします。 Quarkusでは、Lambda用のJarファイルを簡単に生成できます。 最小構成では、通常のパッケージングコマンドを実行するだけです。 ビルドが完了すると、AWS Lambdaにアップロード可能なJarが生成されます。 これはJavaサーバーレス開発において大きなメリットです。
mvn clean package
6. AWS Lambdaへのデプロイ手順
AWSマネジメントコンソールからLambda関数を作成します。 ランタイムはJavaを選択し、ハンドラにはQuarkusで指定したクラスを設定します。 作成後、ビルドしたJarファイルをアップロードするだけで実行可能になります。 この手軽さが、AWS LambdaとQuarkusを組み合わせる大きな魅力です。 サーバー管理が不要なので、学習用途や小規模システムにも向いています。
7. ローカルでの簡易動作確認
いきなりAWSにデプロイするのが不安な場合は、 ローカルで簡単なテストコードを書いて動作を確認できます。 以下は、Lambdaハンドラを直接呼び出すシンプルなJavaコード例です。
public class LocalTest {
public static void main(String[] args) {
HelloLambda lambda = new HelloLambda();
String result = lambda.handleRequest(null, null);
System.out.println(result);
}
}
Hello Quarkus on AWS Lambda
8. 最小構成で学ぶメリットと注意点
最小構成でQuarkusをAWS Lambdaで動かすことで、 サーバーレスの基本概念、Java Lambdaの仕組み、ビルドからデプロイまでの流れを一通り体験できます。 一方で、ログ管理や環境変数、セキュリティ設定などは省略されています。 これらは本番運用では重要になるため、 最小構成を理解した後に段階的に学んでいくのがおすすめです。