#はじめに
この記事は「Springで作成したアプリをAWSとRDSとElastic Beanstalkを用いてデプロイする方法①」
の続きです。
前回までは、RDSからDBを作成しました。
今回はMySQLの設定とElasticBeanstalkの設定について執筆していきます。
#MySQLの設定
MySQLの設定は下記のような作業を行います。
##事前にRDSのDBのエンドポイントをコピーしておく。
理由は後程、MySQLに接続する際に利用するためです。
##MySQLWorkbenchのインストール
公式サイトのダウンロードページよりインストールする。(2021年9月3日現在の最新バージョンは8.0.26)
###MySQLの接続設定
インストール後、MySQLWorkbenchを開くと下記のような画面が表示される。
赤枠をクリックする。
赤枠をクリック後、下記のような画面が表示される。
「NEW」をクリックする。
下記の通り入力する。
Connection name:任意の名前
Hostname:RDSのDBのエンドポイントを入力
Username:RDSの作成時のユーザの名前
必要事項入力後、「Test Connection」をクリックし、赤枠のような画面が表示されればRDSのDBとの接続が完了!
###MySQLへのデータの追加
MySQLのデータベース(Schema)の新規登録、テーブル作成、データの反映は下記の記事を参考に作成する。
#Springの設定
Springの設定は下記のような作業を行います。
##Javaファイルの作成
STS(もしくはEclipse)を開いてスタータプロジェクトの新規作成を行う。
下記の通り入力し、完了ボタンをクリックする。
名前:任意の名前
タイプ:Maven
パッケージング:War
Javaバージョン:11(お使いのjavaのバージョンに合わせてください)
言語:Java
赤枠の通りのものを選択する。
(JDBCやThymeleafを使う前提で進めてます。)
数分後、ファイルが作成されます。
その後は下記のサイト等を参考にしてコントローラーやサービスを作成していきます。
##Javaファイルの作成後
コントローラーやサービス作成後に、ローカルで動かすことができるようになった後に下記のような設定を行います。
##application.propertiesにDB接続情報の記載
application.propertiesには下記のように追記する。
spring.datasource.url=jdbc:mysql://"RDSのDBのエンドポイント":3306/"DBのスキーマ名"
spring.datasource.username="DB作成時のユーザ名"
spring.datasource.password="DB作成時のパスワード"
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
##pom.xmlの書き換え
下記内容を追記します。
packagingとtomcatについての内容です。
筆者の場合は元々記載があったため、確認のみしました。
//省略
<packaging>war</packaging>
//省略
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
//省略
##"ファイル名"Application.javaの書き換え
筆者でいうと、下記のようなInquirySystemApplication.javaを書き換えます。
SpringBootServletInitializerを継承させ、
SpringApplicationBuilderを追記します。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class "ファイル名"Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources("ファイル名"Application.class);
}
public static void main(String[] args) {
SpringApplication.run("ファイル名"Application.class, args);
}
}
##maven installを実行してwarファイルの作成
Maven installを実行します。
作成したwarファイルはtargetフォルダ配下に格納されます。
#ElasticBeanstalkの設定
AWSへログイン後、ElasticBeanstalkの画面へ遷移し。Create Applicationをクリックする。
アプリケーション名には任意の名前を入力する。
タグは特に必要ないため、記載なしでも良い。
ソースコード元はローカルファイルを選択します。
ファイルを選択をクリックして、taeget配下のwarファイルを選択します。
ファイルのアップロードが完了後、環境の作成をクリックします。
数分後、下記のようなページ遷移します。
赤枠で囲われたURLをクリックすると、アプリケーションを使うことができるようになります。
#終わりに
以上でSpringで作成したアプリをAWSとRDSとElasticBeanstalkを用いてデプロイする方法は完結です。
Springの設定について書かれた日本語記事があまりなかったため苦戦していましたが、英語の記事(公式ドキュメント等)を読むことや英語版のUdemyを受講してようやくデプロイができました。そのため、これからエラーが出ても英語だからと言って逃げずに読むようにしたいです。
#参考
https://www.udemy.com/course/aws-and-infra/