LoginSignup
6
2

More than 1 year has passed since last update.

Spring BootのプロジェクトをAWSで公開するまで

Last updated at Posted at 2022-11-22

目的

この記事では以下2点を目的にしている

  • Spring Boot 開発環境の構築
  • 自作したwebサービスをAWS上で公開

Spring Bootを使う開発環境の構築

この章でやることは3つ

  • Javaのinstall
  • Spring Bootの雛形ダウンロード
  • 実際の動作確認

Javaのinstall

Spring Bootを開発する上で必要なのことはJavaをinstallすることだけでOK

今回はsdkmanを使用する。
sdkmanの導入はこちらから

  1. installできるjavaのリストを見る
    $ sdk list java

  2. listの中から好きなバージョンを選んでインストールする(11.0.17-amzn をinstallする場合)
    $ sdk install java 11.0.17-amzn

  3. バージョンを確認する
    $ java -version
    11.0.17-amzn  の場合 下記のように出ればOK

openjdk version "11.0.17" 2022-10-18 LTS
OpenJDK Runtime Environment Corretto-11.0.17.8.1 (build 11.0.17+8-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.17.8.1 (build 11.0.17+8-LTS, mixed mode)

Spring Boot の雛形の生成

Spring inirializrを使用する

  1. 下記の画像の様に設定する(Dependenciesは後々自分でも追加できる)
    image.png

  2. zipファイルを解凍するば雛形は完成

  3. 公開時の確認のためにサンプルコードを作成する
    ./demo/src/main/java/com/example/demoHelloWorld.javaを置く

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("sample")
public class HelloWorld {
    
    @GetMapping
    public String greet(){
        return "Hello World";
    }
}

実際に起動してみる

  1. プロジェクトのルートディレクトリで下記を実行
    $ ./gradlew bootrun
    画像のような画面が出る
    スクリーンショット 2022-11-14 14.14.12.png
  2. http://localhost:8080/sample にアクセスする
    画像の様になっていればこの章はOK!!
    image.png

AWSの設定(入力内容は画像の様に行う)

この章でやることは大きく言えば2つ

  • GUIによるAWSの設定
  • CLIによるEC2の環境構築

GUIによるAWSの設定

  1. 画像の様にVPCを作成する
    「東京」になっているか確認する
    image.png
  2. パブリックサブネットを作成する
    VPC IDには1で作成したものを選択する
    image.png
  3. インターネットゲートウェイの設定
    image.png
  4. VPCにアタッチする
    使用可能なVPCが複数あるときは1で作成したものと同じIDのものを選ぶ
    image.png
  5. ルートテーブルを作成する
    image.png
  6. サブネットの関連付けを編集する
    image.png
  7. ルートを編集する
    ターゲットは3で作成したインターネットゲートウェイを設定する
    image.png
  8. EC2を起動する
    image.png
    キーペアは候補がなければ横の新しいキーペアから作成する
    image.png
    VPC、サブネットはそれぞれこの章で作成したものを選択する
    スクリーンショッっと.png
    image.png
  9. セキュリティグループを設定する
    EC2→セキュリティ→セキュリティグループ→インバウンドルール
    スクリーンショット 2022-11-14 13.51.33.png

CLIによるEC2の環境構築

ここからはさAWSのサイトを離れてターミナルで操作を行います。
目的は1つ

  • Javaのinstall
  1. sshで接続する
    $ ssh -i {秘密鍵へのパス} ec2-user@{前で作成したEC2のパブリックIP}

  2. javaのインストール
    $ sudo yum install java-17-amazon-corretto.x86_64
    聞かれる質問はyesでOK

  3. バージョンの設定
    sudo alternatives --config java
    聞かれる質問はエンターでOK

Spring Bootのプロジェクトを公開する

目的は1つ

  • サーバーに公開して誰でもアクセスできる様にする
  1. Spring Bootのプロジェクtを.jarにする
    プロジェクトのルートディレクトリで下記実行する
    $ ./gradlew bootjar

  2. jarファイルをサーバーにアップロード
    $ scp -i {秘密鍵へのパス} {jarファイルへのパス} ec2-user@@{前で作成したEC2のパブリックIP}:~

  3. jarファイルを実行する
    $ java -jar {jarファイルまでのパス}

  4. http://{グローバルIP}:8080/sample へアクセス
    画像のようなら終了!
    image.png

参考資料

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版
大澤 文孝 (著), 玉川 憲 (著), 片山 暁雄 (著), 今井 雄太 (著)
日経BP (2020/2/6)

[Linux] AmazonLinuxに、最新のJavaをインストールする

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2