AWS RDSのエイリアスで切り替えを行うときの流れ

目次

エイリアスを設定する流れ

全体の流れ

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のリストア バックアップから新しいインスタンスを作成した場合
インスタンスクラスの変更 スペックアップで新しいインスタンスに移行する場合
環境の複製 開発・ステージング・本番で同じホスト名を使う場合
障害時のフェイルオーバー 手動で別インスタンスに切り替える場合

関連の記事

AWS RDSでDBパラメータグループを切替(変更)と比較

△上に戻る