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.2.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サービスを開きます。
- 開いたページで、アプリケーションの作成をクリックします。
- 以下のアプリケーション設定を指定します。
- アプリケーション名: アプリケーション名を指定します(例:Sample Ktor app)。
- プラットフォーム: リストから_Java_を選択します。
- プラットフォームブランチ: _64bit Amazon Linux 2で実行されるCorretto 11_を選択します。
- アプリケーションコード: _コードのアップロード_を選択します。
- ソースコードのオリジン: _ローカルファイル_を選択します。次に、ファイルの選択ボタンをクリックし、前の手順で生成されたFat JARを選択します。ファイルがアップロードされるまで待ちます。
- アプリケーションの作成ボタンをクリックし、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