0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Spring BootアプリをAWS EC2とRDSにデプロイする手順

Posted at

はじめに

Spring Bootでアプリを作成したので、せっかくならAWSにデプロイしてみようと思い、実際に試してみました。

AWS構成

今回は試験的にAWS環境へデプロイするため、以下のようなシンプルな構成で環境を構築しました。
Reptalicious構成図.png

前提条件

本記事では、すでにEC2インスタンスとRDSインスタンスが作成済みであることを前提とします。
私の場合、以下の環境を用意しました。
・EC2:Amazon Linux 2023
・RDS:MySQL 8.0

手順

EC2にSSH接続

まずは、EC2に接続します。

必要なツールをインストール

今回はGitHubからプロジェクトをEC2にcloneするため、Gitをインストールします。

sudo dnf install -y git

DBとしてMySQLを使用するため、MySQLをインストールします。

sudo dnf -y install https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
sudo dnf -y install mysql mysql-community-client

Java21でアプリを作成したので、Java21をインストールします。

sudo dnf install -y java-21-amazon-corretto

Spring Bootプロジェクトをビルド・実行するために、Mavenをインストールします。

sudo dnf install -y maven

MySQLへの接続を確認

mysql -h RDSのエンドポイント -u username -p

passwordの入力を求められるので、設定したpasswordを入力します。
以下の画面のように接続が成功することを確認します。
MySQL接続成功.png

GitHubからプロジェクトをclone

git clone https://github.com/USERNAME/REPOSITORY.git

application.propatiesを編集

application.propatiesを開いてdatabase情報を編集します。

application.propaties
spring.datasource.url=jdbc:mysql://[RDSのエンドポイント]:3306/[DB名]?useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=[RDSのusername]
spring.datasource.password=[RDSのpassword]

SpringBootを起動

mvn spring-boot:run
BUILD FAILURE

私が最初にSpringBootを起動させたとき、次のエラーが発生しました。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) on project [プロジェクト名]: Fatal error compiling: error: release version 21 not supported -> [Help 1]

Mavenの maven-compiler-plugin がJava21をに対応していなかったため、JAVA_HOME の設定を見直します。

echo 'export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))' >> ~/.bashrc
source ~/.bashrc

その後、再び mvn spring-boot:run でSpringBootを起動させます。

アクセス確認

http://EC2のIP:8080 にアクセスして、画面が表示されることを確認します。

まとめ

今回、無事にSpring BootアプリをAWS環境にデプロイすることができました。
しかし、Security Groupのポート設定忘れなど、基本的なミスもいくつかあり、環境構築の重要性を改めて実感しました。
今回はシンプルな構成でしたが、今後はELBの追加やマルチAZ構成など、より実践的な構成を学びながら取り入れていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?