Note
このリポジトリは try-aws-github-learning の演習題材の実装をHelidonからSpring Bootに変えたものになります。 PDFの説明資料の内容は変えていませんが、勉強会 補足情報は必要な個所は修正しています。Spring Boot版における実行コマンド等はこちらを参考にしてください。
- 第1回 キックオフ
- 第2回 GitHub CodespacesとHelidonの利用
- 第3回 GitHub Actionsを使ったCI環境の構築
- 第4回 GitHub Actionsを使ったCD環境の構築
- 第5回 AWS EC2環境の構築
- 第6回 AWS ECS Fargate環境の構築
# ビルド
mvn clean package
# 起動
java -jar target/hello-app-spring.jar
# REST APIへのリクエスト
curl -X GET localhost:8080/api/hello
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub Packages</name>
<url>https://maven.pkg.github.com/@your_account@/@your_repository@</url>
</repository>
</distributionManagement>
※snippetの右上のアイコンをクリックするとコピーできる
# jarのビルド
mvn clean package
# コンテナイメージのビルド
docker build -t hello-app-spring .
# ローカルリポジトリに登録されていることの確認(hello-appがあること)
docker images hello-app-spring
# コンテナの実行
docker run -p 8080:8080 --name hello-app-spring --rm hello-app-spring
# REST APIへのリクエスト(別のターミナルから)
curl -X GET localhost:8080/api/hello
- pemファイルをダウンロードしたディレクトリに移動
- AWSコンソールの「接続」で確認したコマンドを実行(4回目資料のp.32)
- EC2インスタンスに割り当てられるパブリックIPアドレスはEC2の起動ごとに変わる
- なので、EC2を再起動した場合はAWSコンソールの「接続」で再度接続に必要なコマンドを確認し、それを利用すること
- なお、Windowsは標準でSSHクライアントがインストールされていないため、適当なツールをインストールする必要がある
# タイムゾーンの変更
sudo timedatectl set-timezone Asia/Tokyo
# 変更後の確認
timedatectl status
# ロケールの変更
sudo localectl set-locale LANG=ja_JP.UTF-8
# keymapの変更
sudo localectl set-keymap jp106
# 変更後の確認
localectl status
実行結果は4回目資料のp.34で確認
# インストールするパッケージの最新化
sudo yum update -y
# Dockerのインストール
sudo amazon-linux-extras install -y docker
# Dockerサービスの開始
sudo systemctl start docker
# Dockerサービスの起動確認
sudo systemctl status docker
# Dockerの自動起動の登録
sudo systemctl enable docker
実行結果は4回目資料のp.35-37で確認
# コンテナの起動
sudo docker run -d --rm --name hello-app-spring -p 8080:8080 ghcr.io/[自分のGitHubユーザ名]/hello-app-spring:latest
# 起動ログの確認
sudo docker logs hello-app-spring
実行結果は4回目資料のp.38で確認
# コンテナの起動
curl -X GET http://[EC2インスタンスのパブリックIP]:8080/api/hello
実行結果は4回目資料のp.39で確認 なお、EC2インスタンスに割り当てられるパブリックIPアドレスはEC2の起動ごとに変わるので、EC2を再起動した場合はAWSコンソールから再度パブリックIPアドレスを確認すること(IPアドレスの確認方法は4回目資料のp.30を参照)
- AWSコンソールの「接続」で確認したコマンドを実行(4回目資料のp.32)
# 最新のコンテナイメージの取得
sudo docker pull ghcr.io/[自分のGitHubユーザ名]/hello-app-spring:latest
# コンテナの起動
sudo docker run -d --rm --name hello-app-spring -p 8080:8080 ghcr.io/[自分のGitHubユーザ名]/hello-app-spring:latest
# 起動ログの確認
sudo docker logs hello-app-spring
# レスポンスの確認
curl localhost:8080/api/hello
> Helllo
# コンテナの起動(-eオプションを追加)
sudo docker run -d --rm --name hello-app-spring -p 8080:8080 -e CONFIG_VAL=changed ghcr.io/[自分のGitHubユーザ名]/hello-app-spring:latest
# 起動ログの確認
sudo docker logs hello-app-spring
# レスポンスの確認
curl localhost:8080/api/hello
> changed