スポンサーリンク

AWS Elastic Beanstalk デプロイ(CD/CI)

ELB+BeanstalkでSpringBoot+RDS

投稿日:

ELB+BeanstalkでSpringBoot+RDSの概要

Beanstalkを使ってSpringBootアプリを構築するのは、
最も簡単にAWS上にアプリをデプロイする方法だと考えます。

手順としても、
・RDSを作成する
・SpringBootの.jarを作成する
・BeanstalkにSpringBootの.jarをアップする
と言う単純なものです。

Step1.RDSを作成する

Amazon RDSでMySQLやPostgreSQLのインスタンスを作成してください。

ステータスが「利用可能」であることを確認します。

エンドポイントを控えておきます。

Step2.SpringBootの.jarを作成する

次に、SpringBootの.jarを作成します。
gradle bootJar で作成しますが、設定ファイルを編集しておきます。

spring:
    ## DB接続情報
    dataSource:
        url: jdbc:mysql://okozukai-db.cgzqjfdvnh64.ap-northeast-1.rds.amazonaws.com:3306/okozukai
        username: okozukaiadmin
        password: lknuve7gAre%
        driver-class-name: com.mysql.cj.jdbc.Driver

# サーバー設定
server:
    port: 5000

DB接続先をRDSのエンドポイントに変更します。

サーバーのポートは5000番を設定しておく必要があります。
Beanstalkでは、EC2上にnginxが構築され、
nginxは80番を5000番ポートにプロキシされるようになっているからです。

gradle buildgradle bootJarを実行すると、
build/libs 配下にxxxxx-0.0.1-SNAPSHOT.jarができます。

Step3.BeanstalkにSpringBootの.jarをアップする

.jarができたら早速Beanstalkにアップします。

Elastic Beanstalkの画面から、環境>新しい環境の作成ボタンを押します。

「環境枠の選択」は「ウェブサーバー環境」を選択します。

ウェブサーバー環境の作成>アプリケーション情報>アプリケーション名 はあなたのアプリのアプリ名を任意の形式で入力します。

環境情報>環境名はそのままでOKです。
環境情報>ドメインは空白のままでOKです。

本番では環境名は、
xxxxapp-env-develop
xxxxapp-env-test1
xxxxapp-env-test2
xxxxapp-env-test3
xxxxapp-env-staging
xxxxapp-env-production
のような使われ方になります。

プラットフォーム>プラットフォームは「Java」を選択します。
java -jar コマンドが使用できれば良いため。)

アプリケーションコード>コードのアップロードを選択して、
ソースコード元>ローカルファイルからファイルを選択して、
作成しておいた.jarをアップします。

最後にオレンジに環境の作成ボタンを押します。

数分したら起動されています。

Beanstalkの画面のサイドバー環境を押します。
すると、すべての環境に作成した環境が表示されています。
URLを押してください。

すると、アプリが使用できるようになっているはずです。
DB接続のある機能を使用して、RDSとも接続できることを確認してください。

手順は以上です。

EC2を複数台にしてELBを適用するには?

上記の手順では、指定しなかったため、EC2は1台作成されています。
EC2の台数を指定して、ELBを適用する手順を示します。

環境の作成のボタンの横に「より多くのオプションの設定」があるので、押してください。

プリセットが、デフォルトでは単一インスタンスなので、EC2は1インスタンスとなっていました。

台数を指定するため、カスタム設定を選択します。

容量の変更>Auto Scaling グループにインスタンス数を指定できる箇所があるので、希望の最小〜最大を指定します。

プリセットをカスタム設定にした時点で、ロードバランサーが設定されます。

この状態で、環境の作成を完了してください。

 

EC2のインスタンスは指定した最小数が起動されています。

ロードバランサーが作成されています。

インスタンス数を増減させるために、Auto Scalingグループが作成されています。

参考リンク

AWS デベロッパーガイド Elastic Beanstalk での Java の開始方法

Spring Boot アプリケーションのデプロイ 1.5.1. AWS Elastic Beanstalk

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-AWS Elastic Beanstalk, デプロイ(CD/CI)

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.