macやec2やCentOS7などのサーバ上にMySQL(MariaDB)と連携したSpring Bootアプリの実行環境を構築する手順について説明しています。
※ 本ページはプロモーションが含まれています。
このページでは、Javaで人気のSpring Bootフレームワークを使ったWebアプリの実行環境を構築する流れを簡単にまとめています。想定として、DB(MySQL,MariaDB)と連携したSpring Bootアプリを考えて説明しています。
大まかな流れは、Linuxサーバ上にJavaの実行環境(JDKかJRE)とMySQL(MariaDB)をインストールして環境構築して、開発したSpring Bootアプリを.jarファイルでエクスポートして、サーバ上でjavaコマンドでSpring Bootアプリを実行するという感じになります。
Javaでウェブサイトやウェブアプリを開発する場合、Spring Boot + MySQL(DB)という構成は、サーバーサイドで結構よく使われるオーソドックスなものだと思います。実際のJava開発の仕事現場でもよくあると思います。
ここで説明しているJava(OpenJDK)とコミュニティ版MySQLやMariaDBはどれもオープンソースで、ライセンスに従えばフリー(無料)でインストールして利用する事ができるので、Spring Bootアプリの開発を勉強している入門者、初心者の方で、初めてサーバ上にJava実行環境を構築したいという方は是非参考にしてください。
◾️動作環境です
OS:macOS Big Sur、AWS ec2(Amazon Linux 2、Amazon Linux 2023)、CentOS7
Java:OpenJDK(JRE)
DB:MySQL、MariaDB
試した動作環境のOSは、macOSとLinuxのCentOS7とec2のAmazon Linux 2、2023で実際に試しましたが、その他のLinux(Unix)系OSでも同じ流れで環境構築する事ができると思います。あと、クラウド系のサーバなら問題ないけど、レンタルサーバだとそもそもJavaが入ってないしインストールもできないから使えないという場合もあるのでそこは注意です。レンタルサーバ会社のVPSでroot権限があるならJavaのインストールもできるので問題ないと思います。
まず最初に、Spring BootはJavaアプリなのでJava実行環境を作ります。そのためにOpenJDK(JRE)をインストールします。
OpenJDKはオープンソースでいくつかの種類(ディストリビューション)があります。OpenJDK - Wikipediaを見ると、Amazon Corretto、Eclipse Temurin、MicrosoftのOpenJDK、Oracle OpenJDK、Red Hat OpenJDKなどのディストリビューションのOpenJDKがあります。
あと、OpenJDK(JDK)にはJavaコンパイラやデバッガなどの開発ツールや、Java実行環境のJVM(Java仮想マシン)などが入っていますが、Linuxサーバ上にSpring Bootアプリの実行環境を作りたい場合、Java開発ツールは必要なくて、Java実行環境のJRE(Java Runtime Environment)だけあれば十分です。(もちろんJDKをインストールすればJREも含まれているので、Java実行環境の構築は問題なくできる。)
ですのでSpring Bootアプリの実行環境を作るためにOpenJDKをインストールする場合、OpenJDK(もしくはOpenJRE)をインストールします。
別ページで、OS環境ごとにOpenJDK(OpenJRE)のダウンロードからインストール方法について説明していますので参考にしてください。
mac環境に、Eclipse Temurin(Adoptium)のOpenJDK17(Java17)(OpenJDK20についても)のインストール方法について説明しています。
OpenJDK17をインストールする【macOS】
また、AWSのec2上にAmazonのAmazon CorrettoというOpenJDK(JRE)(バージョンはJava17とJava20)をインストールする方法について説明しています。
OpenJDKをインストールする【ec2(Amazon Linux 2,2023)】
また、CentOS7上にEclipse Temurin(Adoptium)やMicrosoftのディストリビューションのOpenJDK(JRE)(バージョンはJava17とJava20)をインストールする方法についても説明しています。
OpenJDKをインストールする【CentOS7】
次に、データベースのMySQLをインストールします。DBを使わないSpring BootアプリならもちろんMySQLをインストールする必要はないですし、Spring BootにはH2という簡易的なファイルベースやインメモリのDBがバンドルされているので、H2を使ってみるのも良いと思います。ただ、データをそれなりに扱うしっかりしたDBを使いたい場合、MySQLやMariaDB(他にはPostgreSQLなど)などのDBを用意して、Spring Bootアプリと連携して使うのが良いと思います。
MySQLをインストールする場合、MySQLにはいくつかのエディションがありますが、コミュニティエディション(Community Edition)のMySQLはよく使われるオープンソースのDBなので、個人でも使いやすいと思います。
MySQL Community Editionは、世界で最も多く使用されているオープンソース・データベースの、無償で自由にダウンロードして利用することができるバージョンです。GPLライセンスに従って利用することができ、
(引用元:MySQL Community Edition)
MySQLのインストール方法についてはOS環境ごとに別ページで説明しているので、そちらを参考にしてください。
MySQLのインストール【macOS】
MySQL8のインストール方法(ec2,CentOS7)
インストール方法だけでなく、インストール後のMySQLの新規ユーザ作成などについても説明しています。Spring BootでMySQLを使うとなると、セキュリティ的にMySQLのrootユーザを使うのはダメなので、Spring Bootアプリ用のMySQLユーザを作っておくのが良いです。
また、MariaDBはMySQLから派生したオープンソースのDBで使い方もMySQLに似ています。Spring BootアプリのDBとしてMariaDBを使ってみても良いと思います。MariaDBのインストール方法は別ページで説明しています。
MariaDB10.6(10.5)のインストール(Amazon Linux2(ec2),CentOS7)、WordPressの環境構築
サーバ上にJava実行環境のOpenJDKとMySQLをインストールできたら、Spring Bootアプリのファイルをサーバ上に用意します。
macOSやWindowsで環境構築したなら、ターミナルコマンド上からjar化したSpring Bootアプリを起動できますし、開発環境のEclipseではアプリをjar化する必要もなく実行できると思います。
Spring Bootアプリ(Javaアプリ)の開発環境は、EclipseやIntelliJ IDEAなどのIDE(統合開発環境) を使っていると思います。IDEでは、開発しているSpring BootアプリをビルドしてJarファイル化する事ができます。そして、JarファイルにしたSpring Bootアプリをサーバにアップロードして、サーバ上でjavaコマンドで実行する事ができます。
別ページでEclipseで開発しているSpring BootプロジェクトをビルドしてJarファイル化して、javaコマンドでJarファイル化したSpring Bootアプリを起動する方法について説明しています。
Spring Bootをjavaコマンドで起動する
JarファイルをクラウドやVPCのサーバ上に転送する(アップロードする)方法は何でもいいです。WinSCPやFileZillaのようなツールを使ってもいいし、Gitを使ってもいいし、scpコマンドでもいいです。Jarファイル1つならツールをインストールする手間が無いscpコマンドが良いですね。
■ec2にscpコマンドでファイルを転送する場合
例えば、AWSのec2にscpコマンドでJarファイルを転送したい場合のコマンドです。(キーペアファイル、ec2ユーザ名、IPアドレス、jarファイルは置き換えてください)
$ scp -i ~/.ssh/hogekeypair.pem springboot-app.jar ec2-user@***.***.***.***:/home/ec2-user
ec2ホストへのssh接続を~/.ssh/configファイルに設定していれば、もっとscpコマンドをシンプルにできます。(configファイルでHost名をmyec2hostと設定している場合)
$ scp springboot-app.jar myec2host:/home/ec2-user
サーバ上にSpring BootのJarファイルを転送できたら、javaコマンドでSpring Bootアプリを起動するだけです。
$ java -jar springboot-app.jar
説明は以上です。Spring Bootアプリのプログラミング開発についてはネットや本で多くの情報があるのでそちらを参考にしてください。体系的にしっかり学習したい場合はやっぱりSpring Bootの書籍で勉強するのが良いかもです。
Spring Boot3 + MySQL(MariaDB)のウェブ開発入門
Spring Boot2で日記投稿ウェブアプリ開発入門
DBをMySQLに変更する【Spring Boot2で日記ウェブアプリ】