SpringBoot

AWS Elastic BeanstalkでSpring Bootをデプロイするステップバイステップガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Elastic BeanstalkでSpring Bootアプリをデプロイする方法:ステップバイステップガイド

Elastic Beanstalk(EB)は、AWS上でアプリケーションを簡単にデプロイ・管理できるサービスです。特にJava開発者は、Spring BootアプリケーションのEBデプロイに際して、手順が不明瞭なケースが多い傾向があります。本記事では、AWSコンソール中心のステップバイステップガイドとEB CLIによるオートメーションを解説し、読者が実環境で即座に活用できるようにします。


Elastic Beanstalkの環境構築手順

Elastic Beanstalkは、アプリケーションのデプロイを自動化するためのサービスです。まず、AWSコンソール経由でEB環境を作成します。

AWSコンソールでの環境作成フロー

  1. AWSコンソールにログインし、「Elastic Beanstalk」を選択。
  2. 「今すぐ始める」ボタンをクリックすると、アプリケーションの基本設定画面が表示されます。
  3. 「Java」を選択し、リージョン(例:ap-northeast-1)とIAMロールを設定します。
  4. 環境名を入力後、「環境を作成」をクリックして完了。

注意点: Spring Boot 2.x以降はEBで自動検出されるため、アプリケーションタイプ選択時に「Spring Boot」を選べば問題ありません。


環境設定の基本構成確認

作成した環境では、以下が自動的に設定されます:

項目 補足
OS Amazon Linux 2 EBがサポートしている最新版
ロードバランサー Application Load Balancer HTTPS通信を標準で有効化
EC2インスタンス数 1(初期値) 自動スケーリング設定可能

この構成は、基本的なセキュリティとスケーラビリティを確保しています。


Spring Bootアプリの準備とパッケージング

EBデプロイでは、Spring BootアプリをJAR形式でパッケージングする必要があります。

Maven/Gradleでの配布用構成

  • Mavenの場合、pom.xmlに以下を追加します:

  • Gradleの場合、build.gradleに以下を記述:

JARファイルの出力確認

ビルドコマンドを実行し、生成されたJARファイルをテストします。

  1. mvn clean package(Maven)または ./gradlew bootJar(Gradle)でビルド
  2. ローカル環境でjava -jar your-app.jarを実行し、正しく起動するか確認

.ebextensions設定ファイルの作成

EBでは、.ebextensionsディレクトリに配置されたYAML/JSONファイルで環境設定が可能です。

環境変数設定例

以下は .ebextensions/environment.config の例:

  • PORT: アプリケーションがリッスンするポートを指定
  • SPRING_PROFILES_ACTIVE: 環境ごとのプロファイルを切り替え

Javaバージョン指定方法

EBはデフォルトでJava 17を使用しますが、必要に応じて変更可能です。.ebextensions/java.configを作成:

補足: Javaバージョンは、EB コンソールで「環境設定」→「ソフトウェア」からも変更可能です。ただし、最新のEB仕様ではコンソールでの変更が制限されている可能性があるため、事前に公式ドキュメントを確認してください。


ロードバランサーとの連携確認

Elastic Beanstalkはロードバランサー(ELB)を自動的に組み込みますが、正しい設定かを確認します。

ELBの設定状況確認

  1. EBコンソール → 環境名を選択 → 「リソース」タブを開く
  2. Application Load Balancerが表示され、以下の情報が含まれていることを確認:

  3. リスニングポート: 80(HTTP)または 443(HTTPS)

  4. ターゲットグループの健康チェックパス: /actuator/health(Spring Boot Actuator標準)

注意: Spring Boot Actuatorの/actuator/healthエンドポイントを使用する際、アプリケーションにActuator依存関係が含まれているか確認してください。以下をpom.xmlまたはbuild.gradleに追加:

ヘルスチェック構成

  1. EBコンソール → 「環境設定」→「リスニングルール」
  2. 以下を設定:
  3. プロトコル: HTTP
  4. ポート: 80
  5. パス: /actuator/health
  6. 閾値: 2回連続成功で正常と判定

.ebextensions設定ファイルのデバッグ手順

YAML形式の設定ファイルに誤りがある場合、以下のようなエラーが発生します。

エラーメッセージ例

デバッグ手順

  1. .ebextensionsファイルをAWS CloudWatch Logsで確認:
    bash
    eb logs tail -f

  2. YAMLErrorの内容に注意し、インデントやキー名の誤りを修正。

  3. eb deploy実行前にローカルでYAML構文チェック(例: yamllint)

自動スケーリングポリシーの設定

EBはEC2インスタンス数を自動で調整する機能を持っています。

CPU使用率ベースのスケールアウト

  1. EBコンソール → 環境名を選択 → 「監視」タブ → 「スケーリング」クリック
  2. 新しいポリシーを作成し、以下を設定:

  3. 起動条件: CPU使用率 > 70%(例)

  4. 停止条件: CPU使用率 < 40%
  5. スケールアウトのインスタンス数: +1
  6. スケールインのインスタンス数: -1

注意: 最大インスタンス数を設定しないと、無限に増加する可能性があります。


EB CLIによるデプロイオートメーション

EB CLIは、ローカルからコマンドでデプロイできるツールです。

ローカル環境でのCLIセットアップ

  1. AWS CLIをインストールし、認証情報を設定(aws configureコマンド)
  2. EB CLIをインストール:
    bash
    pip install awsebcli

    注意: pip使用時はPython環境のバージョンに注意してください。Python 3.xが推奨されます。

  3. プロジェクトディレクトリに移動後、EB初期化:
    bash
    eb init -p java17 your-app-name


eb deployコマンド実行フロー

  1. eb createで環境を作成(既存環境ならeb use ENV_NAME
  2. eb deployを実行すると、自動的にローカルの変更がAWSに反映されます
  3. デプロイステータスはeb statusで確認可能

補足: .ebextensionsファイルが存在する場合、デプロイ時に自動で適用されます。


まとめ

  • EB環境の作成にはコンソール経由で簡単に行えます
  • Spring BootアプリはJAR形式でパッケージングし、.ebextensionsで柔軟な設定が可能です
  • ELBと連携することで、高可用性を実現
  • 自動スケーリングの設定により、リソース最適化が可能
  • EB CLIを使うことで、ローカルでのデプロイオートメーションが構築できます

自社開発アプリのEBデプロイを試してみる
https://console.aws.amazon.com/elasticbeanstalk/home

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-SpringBoot