##初めに
【初心者必見】Eclipseで作成したJavaWebアプリケーションをAWSにデプロイする。その①
【初心者必見】Eclipseで作成したJavaWebアプリケーションをAWSにデプロイする。その②
の作業の続きの記事になるのでそちらを読んでからお越しください。
##STEP7 : jdbcドライバのダウンロードと配置
MySQLのjdbcドライバを以下からインストールする
https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.20
ここからは対象のWebアプリケーションにDLしたjarファイルを配置する。
DLしたmysql-connector-java.8.0.20.jarをProjectのWebContent/WEB-INF/libへ配置。
その後プロジェクト名で右クリック>ビルド・ビルドパス>ビルドパスの構成
「jarの追加」から、今配置したjarへの参照を追加
##STEP8 : DAOやDB接続のjavaファイルの設定
DBとの接続設定を記述する.javaファイルにて、
DRIVER_NAME = "com.mysql.jdbc.Driver";
URL = "jdbc:mysql://RDSのエンドポイント名/DB名?serverTimezone=JST";
と設定する。
赤字のところがないと動作しない。気が狂うほど悩んで解決した。多分AWSの地域設定の関係
ローカルでやってるときはあんまり考えないけど、AWSは世界的なサービスだからちゃんとタイムゾーンを設定しないとダメみたい。
USER,PASSWORDも自分で設定したものを打ち込む。
上のように記述してローカル環境でプログラムを動かせばRDSにアクセスできる。
適当にローカルで動作確認はしておこう(一旦デプロイしてからの修正は面倒なので)
##STEP9 : jdbcドライバとwarファイルのデプロイ
動作確認までした問題なければアプリをwarファイルに固めていよいよデプロイ。
TeratermからEC2にログインし、mysql-connector-java.8.0.20.jarと作成したwarファイルをTeratermにドラッグ&ドロップ
次のような画面が出てくるが、そのままOKを押す。→warファイルがホームディレクトリに入る
さて、最後のコマンド操作
先ほど取り込んだ二つのファイルを然るべき場所に配置する。
//コネクタをインストール
sudo yum -y install mysql-connector-java
//指定の位置にコピー
cp /usr/share/java/mysql-connector-java /usr/libexec/tomcat8/bin/
//rootで操作していた場合は一度exitし一般ユーザに戻る
//homeディレクトリに戻るのでそこでlsして取り込んだmysql-connector-java.8.0.20.jar、hogehoge.warがあるか確認しておこう
//二つを然るべき場所に配置
sudo mv mysql-connector-java.8.0.20.jar /usr/libexec/tomcat8/bin/
sudo mv historyProgram.war /usr/libexec/tomcat8/webapps/
##LAST STEP : 動作確認
次のようにURLを打ち込むとデプロイしたアプリが確認できる。
###http://[EC2のIPアドレス]:8080/[アプリの構成(indexとか)]
DB連携もできるかどうか、 TeratermでMySQLを叩きながら確認しよう。
###ここまで長いこと本当にお疲れ様でした!!!
##残課題
- 今回はVPCの設定などはデフォルトだが、本来はサブネットなど適切に設定が必要
- https(セキュア接続)とかもチャレンジしてみたい
- URLにIPアドレスが入っているのでAWSのRoute53などのDNSサービスを適切に使いたい
##最後に
ここまで読んでいただきありがとうございます。
ストック、LGTM、励みになります。
この記事が何かお役に立てれば幸いです。
[p.s]
二人とも一緒に勉強してくれてありがとう!
https://qiita.com/SG_Sg
https://qiita.com/sukiJava