k8s/archive_1

21.Spring Bootのデプロイ、DBの連携(RDS、ECR)

YOOANT 2026. 3. 19. 14:09

✅ ローカル環境におけるアーキテクチャ

 

✅ デプロイ環境におけるアーキテクチャ

ローカル環境におけるアーキテクチャとの違いは、大きく2つである。

  1. ローカルにDockerイメージを保存せず、外部リポジトリであるAWS ECRにDockerイメージを保存する。
  2. ローカルのデータベースを使用せず、外部データベースであるAWS RDSを活用する。

上記のアーキテクチャで環境を構築していく。

 

1.RDSの作成

エンジンのタイプ:MySQL

テンプレート:無料利用枠を選択。

DBインスタンス識別子:kube-database

マスターユーザー名:amdin

マスターパスワード:任意

パブリックアクセス:あり

既存のVPCセキュリティグループ:db

インバウンドルール:MySQL/3306/すべてのIPv4許可

最新のデータベース名:mydb

他の設定はそのままで問題なし。

 

EC2ページでセキュリティグループを作成した後、既存のVPCセキュリティグループを選択する。

(その他のオプションはデフォルトのままとする)

正常に接続できるか確認する。

 

2.RDSの接続確認

HOST:RDSのENDPOINT

PORT:3306(MYSQL)

username:

password:

 

3.ECRの作成

ECR名:kube-ecr

ECRの作成は以下を参考

https://tokyoant.tistory.com/48

 

AWS ECR (Elastic Container Registry) の利用

✅ AWS CLI のインストール最新バージョンの AWS CLI インストールまたはアップデート - AWS Command Line Interface[Mac OS]$ brew install awscli$ aws --version # バージョンが表示されれば正常にインストールされ

tokyoant.tistory.com

4.SpringBootプロジェクトのクローン

$ git clone https://github.com/lioncubKR/kubernetes-backend.git

 

5.k8s Manifestファイルのクローン

 

$ git clone https://github.com/lioncubKR/kubernetes-manifests.git

 

[Spring Bootプロジェクト]

  • /boards GET:投稿取得API
  • /boards POST:投稿作成API
  • JPAを活用してDBと連携している状態
  • DockerイメージとしてビルドできるようにDockerfileを作成済みの状態

[Manifestファイル]

  • Spring Bootサーバーを起動するために必要なDeployment、Service、ConfigMap、Secretファイルで構成されている。
  • spring-secret.yamlには機密性の高い値が含まれているため、本来であれば.gitignoreに追加してバージョン管理の対象外にする必要がある。しかし、便宜上GitHubリポジトリに一緒にアップロードしている。spring-secret.yamlはサーバーに別途伝達して活用するか、SealedSecretを活用して管理するのが一般的である。(この他にもAWS Secrets Manager、Vaultなど、シークレット値を管理する多様なサービスが存在する。)

 

日本語