はじめに
Spring Bootで作成したWebアプリケーションを、AWSのEC2を利用してインターネット上に公開する手順をまとめることにします。
なお、今回はパート3ですので、パート1のこちらの記事から読むのが望ましいです。
パート2は
- JARをEC2に送る
- Spring Bootを起動する
- AWSの通信設定をする
をやります。
もくじ
- AWSアカウントを作る
- EC2を作る
- EC2にSSH接続する
- EC2にJavaをインストールする
- Spring BootアプリをJAR化する
-
JARをEC2に送る
-
Spring Bootを起動する
-
AWSの通信設定をする
-
ブラウザからアクセスする
- systemdで自動起動させる
- Webアプリの停止方法を学ぶ
6. JARをEC2へ送る
前回作成したWindows PCで作成したJARを、EC2へ転送します。
6-1. scpを利用する
scpコマンドを利用します。
例えば、SpringBootプロジェクト内でターミナルを起動している場合、
scp -i "C:\Users\あなたの名前\Downloads\springboot-key.pem" "target\MySpringBoot-0.0.1-SNAPSHOT.jar" ubuntu@13.123.45.67:/home/ubuntu/
とします。.pemファイルのパスやパブリック IPv4 アドレスは各自環境に合わせて変更してください。
これで、
Windows PC
↓ scp
EC2
↓
/home/ubuntu/
へJARが転送されます。
6-2. EC2で確認
EC2へSSH接続し、
ls
を実行します。
MySpringBoot-0.0.1-SNAPSHOT.jar
が表示されれば転送成功です。
7. Spring Bootを起動する
EC2上でJARを起動します。
java -jar MySpringBoot-0.0.1-SNAPSHOT.jar
正常に起動すると、
Tomcat started on port 8080
や、
Started MySpringBootApplication
などのログが表示されます。
8. AWSの通信設定
Spring Bootはデフォルトでは8080番ポートで起動します。
そのため、外部からアクセスするにはEC2のセキュリティグループで8080番ポートを許可します。
実はこの設定はパート1ですでにしています。ただ、私がつまずいた場所なので口説くもう一度設定内容をまとめておきます。
EC2のインスタンス確認画面にあるセキュリティを確認します。
例えば以下のように設定されていれば問題ありません。
| タイプ | ポート範囲 | ソース |
|---|---|---|
| SSH | 22 | マイIP |
| HTTP | 80 | 0.0.0.0/0 |
| カスタムTCP | 8080 | 0.0.0.0/0 |
9. ブラウザからアクセスする
セキュリティグループで8080番ポートを許可したら、ブラウザから、
http://13.123.45.67:8080/hello
のようにアクセスします。
Spring BootのHTMLが表示されれば、AWS EC2上でWebアプリを公開できています。
次回予告
次回は
- systemdで自動起動させる
- Webアプリの停止方法を学ぶ
をやります。