目次
エイリアスを設定する流れ
全体の流れ
| 1. RDS作成 ↓ 2. Route 53プライベートホストゾーン作成 ↓ 3. CNAMEレコード登録 ↓ 4. VPCに紐付け ↓ 5. アプリからエイリアスで接続 |
ステップ1: RDSを作成する
RDSを作成するとAWSがエンドポイントを自動付与します。
| mydb.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com |
このエンドポイントをメモしておきます。
ステップ2: Route 53プライベートホストゾーンを作成する
| 設定項目 | 入力値の例 |
|---|---|
| ドメイン名 | mycompany.internal |
| タイプ | プライベートホストゾーン |
| 紐付けるVPC | RDSが存在するVPC |
Route 53プライベートホストゾーンとは、VPC内部だけで使えるDNSレコードの管理場所(台帳)です。
ステップ3: CNAMEレコードを登録する
プライベートホストゾーン内にレコードを作成します。
Route 53プライベートホストゾーン(台帳)に、1行書き込むイメージです。
| レコード名 (別名) | db.mycompany.internal |
| タイプ | CNAME |
| 値 (正規の値) | mydb.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com |
| TTL | 300 |
CNAMEレコードは、ドメイン名に別名(エイリアス)をつけ正規のドメイン名に転送します。
ステップ4: 名前解決の確認
EC2インスタンスから動作確認します。
bash# 名前解決の確認
nslookup db.mycompany.internal
# 結果
Name: db.mycompany.internal
Address: 10.0.2.10(RDSのプライベートIP)
ステップ5: アプリからエイリアスで接続する
# 変更前(RDSエンドポイント直接指定)
DB_HOST=mydb.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
# 変更後(エイリアス指定)
DB_HOST=db.mycompany.internal
RDSの切り替えのイメージ
Route 53のCNAMEレコードだけ変更します。エイリアスを使うメリットです。
変更前
| レコード名 (別名) | db.mycompany.internal |
| タイプ | CNAME |
| 値 (正規の値) | mydb.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com |
| TTL | 300 |
変更後
| レコード名 (別名) | db.mycompany.internal |
| タイプ | CNAME |
| 値 (正規の値) | mydb-new.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com |
| TTL | 300 |
アプリは常にここ(db.mycompany.internal)を見ます。
アプリの設定ファイルは一切触らず、Route 53のCNAMEレコードの向き先を書き換えるだけで切り替えが完了します。
AWS側の構成変更がアプリに影響しないのがエイリアスのメリットです。
切り替えが必要になるシーン
| シーン | 説明 |
|---|---|
| RDSのリストア | バックアップから新しいインスタンスを作成した場合 |
| インスタンスクラスの変更 | スペックアップで新しいインスタンスに移行する場合 |
| 環境の複製 | 開発・ステージング・本番で同じホスト名を使う場合 |
| 障害時のフェイルオーバー | 手動で別インスタンスに切り替える場合 |
関連の記事
