読み込みリクエストを複数の Amazon RDS リードレプリカに分散させる方法を教えてください。
最終更新日: 2019 年 7 月 19 日
複数の Amazon Relational Database Service (Amazon RDS) リードレプリカに読み込みリクエストを分散させる方法を教えてください。
簡単な説明
Amazon Route 53 加重レコードセットを使用すると、リクエストを複数のリードレプリカに分散させることができます。Route 53 ホストゾーン内で、リードレプリカに関連付けられた各 DNS エンドポイントに対して、個々のレコードセットを作成して、それぞれに同じ重みを割り当てます。次に、要求をレコードセットのエンドポイントに向かわせます。
解決方法
リードレプリカの DNS エンドポイントの URL を見つける
- Amazon RDS コンソールを開きます。
- ナビゲーションペインで、[Databases] (データベース) を選択し、各リードレプリカを選択します。
- [Endpoint] (エンドポイント) の横にある DNS エンドポイントの URL をメモ (またはコピー) します。
Route 53 ホストゾーンを作成する
注: 既にホストゾーンがある場合は、この手順をスキップできます。
- Route 53 コンソールを開き、ナビゲーションペインで [Hosted zones] (ホストゾーン) を選択します。
- [Create Hosted Zone] (ホストゾーンの作成) を選択します。
- [Domain Name] と [Comment] に名前とコメントを入力します。外部リソースからのリードレプリカへのアクセスをブロックするには、[Type] (タイプ) でリードレプリカが存在している VPC の [Private Hosted Zone] (プライベートホストゾーン) を選択します。それ以外の場合、[Type] (タイプ) は [Public] (パブリック) のままにしておきます。
注: [Public] (パブリック) と指定する場合、ホストゾーンで指定したドメインの所有権を持っている必要があります。 - [Create] (作成) を選択します。
レコードセットの作成
ホストゾーンを作成した後、それを選択して、[Create Record Set] を選択し、以下の属性を使用します。
- [Name] に名前を入力します。これはリードレプリカにアクセスするためのエンドポイントの URL として使用します。
- [Type] (タイプ) を [CNAME] に設定します。
- [TTL value] (TTL 値) には、ニーズに合わせて任意の値を設定することができます。これにより、各リードレプリカがどのくらいの頻度でリクエストを受け付けるかが決まります。
- [Value] (値) フィールドに、最初のリードレプリカの DNS エンドポイントを貼り付けます。
- [Routing Policy] (ルーティングポリシー) で、[Weighted] (加重) を選択します。
- 各レプリカのレコードセットで同じ値を使用する場合、[Weight] (加重) フィールドに値を入力します。
- [Set ID] (ID を設定) で、名前を入力します。
- [Health Check] (ヘルスチェック) の設定はオプションですが、ベストプラクティスです。詳細については、「Amazon Route 53 ヘルスチェックの作成と DNS フェイルオーバーの設定」をご参照ください。
レコードセットを設定したら、[Create] (作成) を選択します。
以上のステップを繰り返して、各追加リードレプリカのレコードセットを作成します。すべてが同じ名前、同じ生存時間 (TTL) の値、および同じ重みの値を使用していることを確認します。これにより、要求を均等に分散させることができます。
アプリケーションのエンドポイントを変更せずに、より多くのリードレプリカを追加し、さらに多くの接続あるいは高いリソース使用率に対応することができます。Route 53 ヘルスチェックを導入すれば、Route 53 が利用できないリードレプリカ以外のトラフィックへと確実に向かわせることができます。