QuickStart: Java アプリケーションを Elastic Beanstalk にデプロイする - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

QuickStart: Java アプリケーションを Elastic Beanstalk にデプロイする

この QuickStart チュートリアルでは、Java アプリケーションを作成して にデプロイするプロセスについて説明します。 AWS Elastic Beanstalk 環境。

注記

この QuickStart チュートリアルはデモンストレーションを目的としています。このチュートリアルで作成したアプリケーションを本番トラフィックに使用しないでください。

の AWS アカウント

をまだお持ちでない場合 AWS お客様は、 を作成する必要があります。 AWS アカウント。サインアップすると、Elastic Beanstalk やその他の にアクセスできます。 AWS 必要な サービス。

が既にある場合 AWS アカウント、 に進むことができます前提条件

にサインアップする AWS アカウント

をお持ちでない場合 AWS アカウントで、次の手順を実行して作成します。

にサインアップするには AWS アカウント
  1. https://portal.aws.amazon.com/billing/サインアップ を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、通話呼び出しを受け取り、電話キーパッドで検証コードを入力するように求められます。

    にサインアップするとき AWS アカウント、 AWS アカウントのルートユーザー が作成されます。ルートユーザーはすべての にアクセスできます AWS のサービス アカウントの および リソース。セキュリティのベストプラクティスとして、ユーザーに管理アクセスを割り当て、ルートユーザーのみを使用してルートユーザーアクセスが必要なタスクを実行してください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。https://aws.amazon.com/ に移動し、マイアカウント を選択すると、いつでも現在のアカウントアクティビティを表示し、アカウントを管理できます。

管理アクセスを持つユーザーを作成する

にサインアップした後 AWS アカウント、 をセキュリティで保護する AWS アカウントのルートユーザー、有効化 AWS IAM Identity Center、および 管理ユーザーを作成して、日常的なタスクにルートユーザーを使用しないようにします。

のセキュリティ保護 AWS アカウントのルートユーザー
  1. にサインインします。AWS Management Console ルートユーザーを選択し、 AWS アカウント E メールアドレス。次のページでパスワードを入力します。

    ルートユーザーを使用してサインインする方法については、「」の「ルートユーザーとしてサインインする」を参照してください。 AWS サインイン ユーザーガイド

  2. ルートユーザーの多要素認証 (MFA) を有効にします。

    手順については、「 の仮想MFAデバイスの有効化」を参照してください。 AWS アカウントIAM ユーザーガイドのルートユーザー (コンソール)

管理アクセスを持つユーザーを作成する
  1. IAM Identity Center を有効にします。

    手順については、「 の有効化」を参照してください。 AWS IAM Identity Center ()AWS IAM Identity Center ユーザーガイド

  2. IAM Identity Center で、ユーザーに管理アクセス権を付与します。

    の使用に関するチュートリアル IAM アイデンティティセンターディレクトリ ID ソースとして、「デフォルトを使用してユーザーアクセスを設定する」を参照してください。 IAM アイデンティティセンターディレクトリ ()AWS IAM Identity Center ユーザーガイド

管理アクセス権を持つユーザーとしてサインインする
  • IAM Identity Center ユーザーでサインインするには、IAMIdentity Center ユーザーの作成時に E メールアドレスにURL送信されたサインインを使用します。

    IAM Identity Center ユーザーを使用してサインインする方法については、「 へのサインイン」を参照してください。 AWS の アクセスポータル AWS サインイン ユーザーガイド

追加のユーザーにアクセス権を割り当てる
  1. IAM Identity Center で、最小特権のアクセス許可を適用するベストプラクティスに従うアクセス許可セットを作成します。

    手順については、「」の「アクセス許可セットの作成」を参照してください。 AWS IAM Identity Center ユーザーガイド

  2. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

    手順については、「」の「グループの追加」を参照してください。 AWS IAM Identity Center ユーザーガイド

前提条件

このガイドの手順に従うには、run command のためのコマンドラインターミナルまたはシェルが必要になります。コマンドは、該当する場合、プロンプト記号 ($) と現在のディレクトリの名前が前に付けられて、リストに示されます。

~/eb-project$ this is a command this is output

Linux および macOS では、任意のシェルとパッケージ管理者を使用できます。Windows では、Linux 用 Windows サブシステムをインストールして、Windows 統合バージョンの Ubuntu と Bash を取得できます。

EB CLI

このチュートリアルでは、Elastic Beanstalk コマンドラインインターフェイス (EB) を使用しますCLI。EB のインストールと設定の詳細についてはCLI、Elastic Beanstalk コマンドラインインターフェイスをインストールする「」および「」を参照してくださいEB CLI の設定

Java と Maven

ローカルマシンに Amazon Corretto がインストールされていない場合は、「Amazon Corretto ユーザーガイド」のインストール手順に従ってインストールできます。

次のコマンドを実行して、Java のインストールを確認します。

~$ java -version

このチュートリアルでは Maven を使用します。Apache Maven プロジェクトのウェブサイトのダウンロードインストールの手順に従います。Maven の詳細については、Apache Maven プロジェクトウェブサイトの Maven Users Centre を参照してください。

次のコマンドを実行して、Maven のインストールを確認します。

~$ mvn -v

ステップ 1: Java アプリケーションを作成する

プロジェクトディレクトリを作成します。

~$ mkdir eb-java ~$ cd eb-java

次に、Elastic Beanstalk を使用してデプロイするアプリケーションを作成します。「Hello WorldRESTful」ウェブサービスを作成します。

この例では、Spring Boot フレームワークを使用しています。このアプリケーションは、ポート 5000 でリスナーを開きます。デフォルトでは、Elastic Beanstalk はポート 5000 でアプリケーションにリクエストを転送します。

次のファイルを作成します。

このファイルはシンプルな Spring Boot アプリケーションを作成します。

~/eb-java/src/main/java/com/example/Application.java
package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

このファイルは、ここで定義する文字列を返すマッピングを作成します。

~/eb-java/src/main/java/com/example/Controller.java
package com.example; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class Controller { @GetMapping("/") public String index() { return "Hello Elastic Beanstalk!"; } }

このファイルは Maven プロジェクト設定を定義します。

~/eb-java/pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.3</version> </parent> <groupId>com.example</groupId> <artifactId>BeanstalkJavaExample</artifactId> <version>1.0-SNAPSHOT</version> <properties> <java.version>21</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

このプロパティファイルは、デフォルトのポートを 5000 に上書きします。これは、Elastic Beanstalk が for Java アプリケーションにトラフィックを送信するデフォルトのポートです。

~/eb-java/application.properties
server.port=5000

ステップ 2: アプリケーションをローカルで実行する

次のコマンドを使用してアプリケーションをパッケージ化します。

~/eb-java$ mvn clean package

次のコマンドを使用して、アプリケーションをローカルで実行します。

~/eb-java$ java -jar target/BeanstalkJavaExample-1.0-SNAPSHOT.jar

アプリケーションの実行中、ブラウザhttp://127.0.0.1:5000/で に移動します。「Hello Elastic Beanstalk!」というテキストが表示されます。

ステップ 3: EB を使用して Java アプリケーションをデプロイする CLI

Java アプリケーションを Elastic Beanstalk にデプロイする前に、ビルドアプリケーションをディレクトリからクリーンアップし、ビルドファイルProcfile を作成して、Elastic Beanstalk 環境でアプリケーションがどのように構築および実行されるかを制御します。

アプリケーションデプロイの準備と設定を行うには
  1. 構築されたアプリケーションをクリーンアップします。

    ~/eb-java$ mvn clean
  2. Buildfile を作成します。

    ~/eb-java/Buildfile
    build: mvn clean package

    これは、アプリケーションの構築に使用されるコマンドBuildfileを指定します。Java アプリケーションBuildfile用の を含めない場合、Elastic Beanstalk はアプリケーションの構築を試みません。

  3. Procfile を作成します。

    ~/eb-java/Procfile
    web: java -jar target/BeanstalkJavaExample-1.0-SNAPSHOT.jar

    これは、アプリケーションの実行に使用されるコマンドProcfileを指定します。Java アプリケーションProcfile用の を含めない場合、Elastic Beanstalk はソースバンドルのルートに 1 つのJARファイルがあると仮定し、 java -jar コマンドを使用して実行を試みます。

これで、アプリケーションを構築して起動するための設定ファイルがセットアップされたので、デプロイする準備が整いました。

環境を作成して Java アプリケーションをデプロイするには
  1. eb init コマンドを使用して EB CLIリポジトリを初期化します。

    ~/eb-java eb init -p corretto java-tutorial --region us-east-2 Application java-tutorial has been created.

    このコマンドは、 という名前のアプリケーションjava-tutorialを作成し、最新の Java プラットフォームバージョンで環境を作成するようにローカルリポジトリを設定します。

  2. (オプション) eb initを再度実行してデフォルトのキーペアを設定し、 SSHを使用してアプリケーションを実行しているEC2インスタンスに接続できるようにします。

    ~/eb-java$ eb init Do you want to set up SSH for your instances? (y/n): y Select a keypair. 1) my-keypair 2) [ Create new KeyPair ]

    1 つのキーペアがすでにある場合はそれを選択するか、またはプロンプトに従ってキーペアを作成します。プロンプトが表示されないか設定を後で変更する必要がない場合は、eb init -i を実行します。

  3. 環境を作成し、eb create を使用してそこにアプリケーションをデプロイします。Elastic Beanstalk はアプリケーション用の zip ファイルを自動的に構築し、ポート 5000 で起動します。

    ~/eb-java$ eb create java-env

    Elastic Beanstalk が環境を作成するまで約 5 分かかります。

ステップ 4: Elastic Beanstalk でアプリケーションを実行する

環境を作成するプロセスが完了したら、 でウェブサイトを開きますeb open

~/eb-java eb open

お疲れ様でした。Elastic Beanstalk で Java アプリケーションをデプロイしました。これにより、アプリケーション用に作成されたドメイン名を使用してブラウザ Window が開きます。

ステップ 5:クリーンアップ

アプリケーションの使用が終了したら、環境を終了できます。Elastic Beanstalk はすべての AWS 環境に関連付けられた リソース。

EB を使用して Elastic Beanstalk 環境を終了するには、次のコマンドCLIを実行します。

~/eb-java$ eb terminate

AWS アプリケーションの リソース

1 つのインスタンスアプリケーションを作成しました。単一のEC2インスタンスで簡単なサンプルアプリケーションとして機能するため、負荷分散や自動スケーリングは必要ありません。単一インスタンスアプリケーションの場合、Elastic Beanstalk は以下を作成します。 AWS リソース:

  • EC2 インスタンス – 選択したプラットフォームでウェブアプリケーションを実行するように設定された Amazon EC2仮想マシン。

    各プラットフォームは、それぞれ特定の言語バージョン、フレームワーク、ウェブコンテナ、またはそれらの組み合わせをサポートするための、さまざまなソフトウェア、設定ファイル、スクリプトを実行します。ほとんどのプラットフォームでは、ウェブアプリケーションの前にウェブトラフィックを処理するリバースプロキシとして Apache または nginx のいずれかを使用します。そのプロキシがリクエストをアプリケーションに転送し、静的アセットを提供して、アクセスログとエラーログを生成します。

  • インスタンスセキュリティグループ – ポート 80 で受信トラフィックを許可するように設定された Amazon EC2 セキュリティグループ。このリソースにより、ロードバランサーからのHTTPトラフィックがウェブアプリケーションを実行しているEC2インスタンスに到達できます。デフォルトでは、トラフィックは他のポート上で許可されません。

  • Amazon S3 バケット – Elastic Beanstalk の使用時に作成されるソースコード、ログ、その他のアーティファクトの保存場所。

  • Amazon CloudWatch アラーム – 環境内のインスタンスの負荷をモニタリングし、負荷が高すぎるか低すぎる場合にトリガーされる 2 つの CloudWatch アラーム。アラームがトリガーされると、Auto Scaling グループはレスポンスとしてスケールアップまたはダウンを行います。

  • AWS CloudFormation スタック — Elastic Beanstalk が使用する AWS CloudFormation 環境内のリソースを起動し、設定変更を伝達します。リソースは、 で表示できるテンプレートで定義されます。 AWS CloudFormation コンソール

  • ドメイン名 — フォームでウェブアプリケーションにルーティングするドメイン名 subdomain.region.elasticbeanstalk.com

Elastic Beanstalk は、これらのリソースをすべて管理します。環境を終了すると、Elastic Beanstalk は含まれているすべてのリソースを終了します。

次のステップ

アプリケーションを実行する環境を手に入れた後、アプリケーションの新しいバージョンや、異なるアプリケーションをいつでもデプロイできるようになります。新しいアプリケーションバージョンのデプロイは、EC2インスタンスのプロビジョニングや再起動を必要としないため、非常に高速です。Elastic Beanstalk コンソールを使用して新しい環境を調べることもできます。詳細な手順については、このガイドの「開始方法」の章の「環境を探索する」を参照してください。

さらにチュートリアルを試す

異なるサンプルアプリケーションで他のチュートリアルを試す場合は、「」を参照してくださいサンプルアプリケーションとチュートリアル

サンプルアプリケーションを 1 つまたは 2 つデプロイし、Java アプリケーションの開発と実行をローカルで開始する準備ができたら、「」を参照してくださいJava 開発環境をセットアップする

Elastic Beanstalk コンソールを使用してデプロイする

Elastic Beanstalk コンソールを使用してサンプルアプリケーションを起動することもできます。詳細な手順については、このガイドの「開始方法」の章の「サンプルアプリケーションの作成」を参照してください。