AWS の EC2 の Amazon Linux 2023 に Java インストールして SpringBoot の jarファイルを置いて 起動して外部から接続した時の備忘録メモ
実施したのは 2024/04/04 時点です
-
ざっくり流れ
- EC2インスタンス起動
- EC2ログイン
- Javaインストール
- ローカルから SpringBoot で作った jar を転送
- SpringBoot 起動
-
環境情報
- EC2 (Amazon Linux 2023)
- SpringBoot v3.2.3
- Java v21
- Windows11
- Tera Term v5.2
EC2インスタンス起動
AMI は Amazon Linux 2023にして ssh で接続するのでキーペアとかちゃんと設定する
SpringBoot で使うポート(デフォルトは 8080 )を外部から接続できるようにセキュリティグループを追加
そのほかは自由でOK
EC2 ログイン
windows pc でTeraTerm だとファイルのドラック&ドロップで転送できるので TeraTerm を使う
最近リリースあった v5 だと ssh も問題なく使えるみたいです
ホストに EC2 の パブリックIP、ユーザ名 ec2-user
、認証方式を RSA 鍵使うにして秘密鍵に pem ファイルを指定
root でログイン
sudo -i
Java インストール
-
インストール(v21)
sudo yum install java-21-amazon-corretto
-
インストール確認(バージョン出力)
java -version
-
補足:複数バージョンで切替えたいとき
Javaの他のバージョンの SpringBoot 使いたいときのため念のため...
他のバージョンの Java をインストールして以下のコマンド実行して選択する感じsudo alternatives --config java
他のバージョンのインストールは数字変えるだけ
sudo yum install java-17-amazon-corretto sudo yum install java-11-amazon-corretto sudo yum install java-1.8.0-amazon-corretto
jar を EC2 に転送
TeraTerm だと SpringBoot の jar を選択してドラッグ&ドロップするだけでOK
送信先にパス指定できるけどデフォルトだと ec2-user の home ディレクトリ /home/ec2-user/
にアップロードされる
SpringBoot の jar は環境によるけど maven のプロジェクトだとデフォルトではプロジェクトフォルダの直下にある target の中に作られます
SpringBoot 起動
SpringBoot の jar の名前は上で転送した jar に合わせてください
起動したらブラウザから接続 http://パブリックipアドレス:ポート/urlpath
して確認してみよう
パブリックIP, ポート(デフォルト8080), urlpath は自分のやつに合わせる
java -jar /home/ec2-user/spring-boot.jar