RDS入門 — クラウドのデータベース設定と接続方法
はじめに
RDS(Relational Database Service)はAWSのマネージドデータベースサービスです。
MySQLやPostgreSQLをAWSが管理してくれるため、バックアップ・パッチ適用・冗長化を自前で対応する必要がなくなります。
RDSの特徴
| 機能 | 詳細 |
|---|---|
| 自動バックアップ | 最大35日間の自動スナップショット |
| マルチAZ | 別のアベイラビリティゾーンに自動でレプリカ作成 |
| パッチ適用 | メンテナンスウィンドウで自動適用 |
| スケールアップ | インスタンスタイプ変更でCPU・メモリを増強 |
RDSインスタンスの作成
- AWSコンソールでRDSを開く
- 「データベースの作成」をクリック
- エンジンを選択: MySQL(またはPostgreSQL)
- テンプレート: 無料利用枠(学習・検証用)
- DBインスタンス識別子・マスターユーザー名・パスワードを設定
- インスタンスクラス: db.t3.micro
- ストレージ: 20GB(gp2)
- パブリックアクセス: EC2から接続する場合は「なし」が推奨
- セキュリティグループ: EC2からMySQL(3306番ポート)を許可
セキュリティグループの設定
RDSのセキュリティグループでEC2からの接続のみ許可します。
| 設定 | 値 |
|---|---|
| タイプ | MySQL/Aurora |
| ポート | 3306 |
| ソース | EC2のセキュリティグループID |
インターネットから直接RDSに接続しないよう、パブリックアクセスはOFFが基本です。
Spring Bootからの接続設定
application.propertiesのデータソース設定をRDSのエンドポイントに変えるだけです。
# application.properties
spring.datasource.url=jdbc:mysql://<RDSエンドポイント>:3306/mydb
spring.datasource.username=admin
spring.datasource.password=your-password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
RDSのエンドポイントはAWSコンソールのRDS詳細画面から確認できます(例: mydb.xxxxxxxxx.ap-northeast-1.rds.amazonaws.com)。
ローカルDBとRDSの切り替え
環境ごとにプロファイルを分けるのが一般的です。
# application-local.properties(ローカル開発用)
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
# application-prod.properties(本番・EC2用)
spring.datasource.url=jdbc:mysql://<RDSエンドポイント>:3306/mydb
# EC2上での起動
java -jar myapp.jar --spring.profiles.active=prod
まとめ
| やること | 方法 |
|---|---|
| RDS作成 | コンソールからエンジン・インスタンス・SG設定 |
| EC2からの接続許可 | SGでポート3306をEC2のSGから許可 |
| Spring Boot接続 |
spring.datasource.urlをRDSエンドポイントに変更 |
| 環境切り替え |
application-prod.propertiesでプロファイル分離 |
ローカルのMySQLからRDSへの移行は接続先URLを変えるだけなので、Spring Bootの場合は非常にシンプルです。