AWS Elastic Beanstalk
初期プロジェクト: embedded-server または engine-main
最終プロジェクト: aws-elastic-beanstalk
このチュートリアルでは、Ktorアプリケーションを準備し、AWS Elastic Beanstalkにデプロイする方法を説明します。Ktorサーバーを作成する方法に応じて、以下のいずれかの初期プロジェクトを使用できます。
Javaアプリケーションのデプロイについての詳細は、Elastic Beanstalkのドキュメントを参照してください。
前提条件
このチュートリアルを開始する前に、AWSアカウントを作成する必要があります。
サンプルアプリケーションのクローン
サンプルアプリケーションを開くには、以下の手順に従います。
- Ktorドキュメントのリポジトリをクローンし、codeSnippets プロジェクトを開きます。
- embedded-server または engine-main サンプルを開きます。これらのサンプルは、コード内または設定ファイルを使用して Ktorサーバーを作成および設定するための、異なるアプローチを示しています。これらのプロジェクトをデプロイする際の唯一の違いは、着信リクエストをリッスンするために使用する ポートの指定方法 です。
アプリケーションの準備
ステップ 1: ポートを設定する
まず、着信リクエストをリッスンするために使用するポートを指定する必要があります。Elastic Beanstalkは、ポート 5000 でアプリケーションにリクエストを転送します。オプションで、PORT 環境変数を設定することでデフォルトのポートをオーバーライドできます。Ktorサーバーを設定する方法に応じて、以下のいずれかの方法でポートを設定できます。
コードでサーバー設定を指定する embedded-server サンプルを選択した場合は、
System.getenvを使用して環境変数の値を取得するか、環境変数が指定されていない場合はデフォルトの 5000 の値を使用できます。src/main/kotlin/com/exampleフォルダにあるApplication.ktファイルを開き、以下に示すようにembeddedServer関数のportパラメータ値を変更します。kotlinfun main() { embeddedServer(Netty, port = (System.getenv("PORT")?:"5000").toInt()) { // ... }.start(wait = true) }application.confファイルでサーバー設定を指定する engine-main サンプルを選択した場合は、${ENV}構文を使用してportパラメータに環境変数を割り当てることができます。src/main/resourcesにあるapplication.confファイルを開き、以下のように更新します。ktor { deployment { port = 5000 port = ${?PORT} } }
ステップ 2: Ktorプラグインを適用する
このチュートリアルでは、fat JAR を使用してアプリケーションを Elastic Beanstalk にデプロイする方法を示します。fat JARを生成するには、Ktorプラグインを適用する必要があります。build.gradle.kts ファイルを開き、plugins ブロックにプラグインを追加します。
plugins {
id("io.ktor.plugin") version "3.4.3"
}次に、メインアプリケーションクラスが設定されていることを確認してください。
application {
mainClass.set("io.ktor.server.netty.EngineMain")
}Fat JAR のビルド
Fat JARをビルドするには、ターミナルを開き、Ktorプラグインによって提供される buildFatJar タスクを実行します。
このビルドが完了すると、build/libs ディレクトリに aws-elastic-beanstalk-all.jar ファイルが確認できるはずです。
アプリケーションのデプロイ
アプリケーションをデプロイするには、AWS マネジメントコンソールにサインインし、以下の手順に従います。
- AWS サービスグループの Elastic Beanstalk サービスを開きます。
- 開いたページで、アプリケーションの作成 (Create Application) をクリックします。
- 以下のアプリケーション設定を指定します。
- アプリケーション名 (Application name): アプリケーション名を指定します (例: Sample Ktor app)。
- プラットフォーム (Platform): リストから Java を選択します。
- プラットフォームブランチ (Platform branch): Corretto 11 running on 64bit Amazon Linux 2 を選択します。
- アプリケーションコード (Application code): コードのアップロード (Upload your code) を選択します。
- ソースコードのオリジン (Source code origin): ローカルファイル (Local file) を選択します。次に、ファイルの選択 (Choose file) ボタンをクリックし、前のステップで生成した Fat JAR を選択します。ファイルがアップロードされるまで待ちます。
- アプリケーションの作成 (Create application) ボタンをクリックし、Beanstalk が環境を作成してアプリケーションを公開するまで数分待ちます。
INFO Instance deployment completed successfully. INFO Application available at Samplektorapp-env.eba-bnye2kpu.us-east-2.elasticbeanstalk.com. INFO Successfully launched environment: Samplektorapp-env
