まえがき
こちらの記事の続編です。
目的
VueとSpringで作成したプロジェクトの構築手順の備忘録。 備忘録のため、詳細な説明を省略している部分があります。
前提
- 基本的なJavaの知識やSpring、Vueの知識があること。
- AWSに関する基本的な知識があること
- ネットワークに関する基本的な知識があること
環境
- Java 11
- Spring Boot2.5.6
- Gradle 7.1.1
- Vue2.6
- IDE:STS
- AWS(EC2)
やること
やらないこと
- RDSの導入
- Tomcatのインストール
構成
事前準備
- 一旦現状作成したfrontendのソースをJavaのstatic配下に格納する
gradle build
を実行- Buildが成功したことを確認し、8080ポートで想定通りの画面が表示されることを確認する
- git hub にpushする
AWSの設定
過去の記事で作成したVPCとEC2インスタンスを使っていきます。(OSはAmazon Linux2)
EC2に
sudo yum install git -y
を実行してgitをインストールする対象のgit hubリポジトリからcloneを行う
デフォルトでホームディレクトリにいるはずなので、User直下にcloneしたプロジェクトが存在する(はず)
sudo amazon-linux-extras install java-openjdk11 -y
を実行してJavaをinstallするjava -version
でJavaがインストールされていることを確認./gradlew build
を実行
失敗しました(笑)
- build.gradleにnpm installを実行するTaskが残されたままだったので、一旦そちらをコメントアウトして再度ビルド
MySQLのインストール
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yumリポジトリを取得するyum install -y mysql-server
を実行mysql --version
で存在確認sudo systemctl start mysqld
でサーバーの起動systemctl status mysqld
でStatusがActiveになっていることを確認
sudo grep 'temporary password' /var/log/mysqld.log
で初期パスワードを確認mysql -u root -p
で先ほどのパスワードを使ってアクセスが出来ることを確認して一旦ログアウトmysql_secure_installation
で設定を変更し、rootユーザーのパスワードなどを変更する変更したパスワードで再度ログインできることを確認
exit
コマンドでMySQLからログアウトsudo systemctl enable mysqld
を実行して自動起動設定を行うsystemctl is-enabled mysqld
を実行してenabled
が表示されれば設定完了`CREATE USER <User名> IDENTIFIED BY <パスワード>でユーザー作成
CREATE DATABASE <DB名>
でDB作成GRANT ALL PRIVILEGES ON
コマンドで権限の付与を行う認証の機構が組み込まれているアプリケーションをデプロイするので一旦必要なテーブルを作成して必要なユーザーのデータのみINSERTしておく
アプリケーションのデプロイ
- EC2にインストールしたMySQLに設定したユーザー名、パスワードでアクセスできるようにapplication.properties(またはyml)ファイルの設定値を書き換える
- IPアドレスもlocalhostになっていると思うので、EC2のパブリックIPアドレスに書き変える
- アプリケーションのルートディレクトリで
./gradlew build
を実行する(git cloneするのを忘れずに) - ビルドが成功したら、~/build/libs直下にjarなりwarなりが生成されていることを確認
- 今回はSpringに内包されているTomcatを一旦使用してアプリケーションを動かしていくので、アプリケーションのルートディレクトリに移動して
./gradlew bootRun
でアプリケーションを起動します - 起動を確認したら、EC2のElasticIPアドレスとTomcatのポート番号(たぶん8080になってると思いますが一応確認を)を使ってアクセスする
アクセスが弾かれたので、以下の記事に対応をまとめましたので参考まで(モヤっと解決されたので、よくわからないですが・・・)
今回はここまでです。 お付き合い頂きありがとうございます。