Skip to content

AWS Elastic Beanstalk

初期プロジェクト: embedded-server または engine-main

最終プロジェクト: aws-elastic-beanstalk

このチュートリアルでは、Ktorアプリケーションを準備し、AWS Elastic Beanstalkにデプロイする方法を示します。Ktorサーバーを作成する方法に応じて、以下のいずれかの初期プロジェクトを使用できます。

Javaアプリケーションのデプロイに関する詳細については、Elastic Beanstalkのドキュメントを参照してください。

前提条件

このチュートリアルを開始する前に、AWSアカウントを作成する必要があります。

サンプルアプリケーションのクローン

サンプルアプリケーションを開くには、以下の手順に従ってください。

  1. Ktorドキュメントリポジトリをクローンし、codeSnippetsプロジェクトを開きます。
  2. 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パラメーター値を以下に示すように変更します。

    kotlin
    fun 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ブロックにプラグインを追加します。

groovy
plugins {
    id("io.ktor.plugin") version "3.2.3"
}

次に、メインアプリケーションクラスが設定されていることを確認してください。

kotlin
application {
    mainClass.set("io.ktor.server.netty.EngineMain")
}

Fat JARのビルド

Fat JARをビルドするには、ターミナルを開き、Ktorプラグインによって提供されるbuildFatJarタスクを実行します。

このビルドが完了すると、build/libsディレクトリにaws-elastic-beanstalk-all.jarファイルが表示されるはずです。

アプリケーションのデプロイ

アプリケーションをデプロイするには、AWSマネジメントコンソールにサインインし、以下の手順に従ってください。

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