AWS Outposts 上での Amazon RDS のマルチ AZ 配置の使用
マルチ AZ 配置の場合、Amazon RDS はプライマリ DB インスタンスを 1 つのAWS Outpost に作成します。RDS は別の Outpost 上にあるスタンバイ DB インスタンスにデータを同期的にレプリケートします。
AWS Outposts のマルチ AZ 配置は、AWS リージョン のマルチ AZ 配置のように機能しますが、以下の違いがあります。
-
2 つ以上の Outposts 間のローカル接続が必要です。
-
顧客所有の IP (CoIP) プールが必要です。詳細については、「AWS Outposts での Amazon RDS 用の顧客所有の IP アドレス」を参照してください。
-
レプリケーションは、ローカルネットワークで実行されます。
AWS Outposts でのマルチ AZ は、RDS on Outposts 上で MySQL および PostgreSQL のすべてのサポートされているバージョンで使用できます。ローカルバックアップは、マルチ AZ 配置ではサポートされていません。詳細については、「AWS Outposts の Amazon RDS での DB インスタンスの作成」を参照してください。
責任共有モデルの使用
AWS は高可用性を実現する DB インスタンスを提供するために商業的に合理的な努力を行っていますが、その可用性では責任共有モデルが使用されます。RDS on Outposts の DB インスタンスをフェイルオーバーおよび修復を行う機能には、各 Outposts が AWS リージョン に接続されている必要があります。
また、RDS on Outposts では、プライマリ DB インスタンスをホストしている Outpost と、同期レプリケーションのためにスタンバイ DB インスタンスをホストしている Outpost との間の接続も必要です。この接続に影響があると、RDS on Outposts がフェイルオーバーを実行できなくなる可能性があります。
同期的データレプリケーションの結果、スタンダード DB インスタンスのデプロイのレイテンシーが高くなる可能性があります。プライマリ DB インスタンスをホストしている Outpost とスタンバイ DB インスタンスをホストしている Outpost の間の接続の帯域幅とレイテンシーは、直接レイテンシーに影響します。詳細については、「前提条件」を参照してください。
可用性の向上
可用性を改善するには、次のアクションをお勧めします。
-
基になるホストの問題が発生した場合に回復とフェイルオーバーを可能にするために、ミッションクリティカルなアプリケーション用に十分な追加容量を割り当てます。これは、DB サブネットグループ内のサブネットを含むすべての Outposts に適用されます。詳細については、「AWS Outposts の耐障害性」を参照してください。
-
Outposts に冗長ネットワーク接続を提供します。
-
Outposts を 3 つ以上使用してください。3 つ以上の Outposts を使用すると、Amazon RDS は DB インスタンスを回復できます。現在の Outpost に障害が発生した場合、RDS は、DB インスタンスを別の Outpost に移動させることで回復します。
-
Outpost にデュアル電源と冗長ネットワーク接続を提供します。
ローカルネットワークに次のことをお勧めします。
-
プライマリ DB インスタンスをホストしている Outpost とスタンバイ DB インスタンスをホストしている Outpost の間のラウンドトリップ時間 (RTT) レイテンシーは、書き込みレイテンシーに直接影響します。AWS Outposts 間の RTT レイテンシーを低い 1 桁ミリ秒に保ちます。5 ミリ秒以下をお勧めしますが、要件は異なる場合があります。
ネットワークレイテンシーへの正味の影響は、
WriteLatency
の Amazon CloudWatch メトリクスで確認できます。詳細については、「Amazon RDS の Amazon CloudWatch メトリクス」を参照してください。 -
Outposts 間の接続の可用性は、DB インスタンスの全体的な可用性に影響します。Outposts 間に冗長なネットワーク接続があります。
前提条件
RDS on Outposts でのマルチ AZ 配置には、次の前提条件があります。
-
ローカル接続を介して接続され、AWS リージョン に異なるアベイラビリティーゾーンに接続されている Outposts が少なくとも 2 つある。
-
DB サブネットグループに以下が含まれていることを確認します。
-
任意の AWS リージョン にある 2 つ以上のアベイラビリティーゾーンにある 2 つ以上のサブネット。
-
Outposts 内のみのサブネット
-
同じ仮想プライベートクラウド (VPC) 内の 2 つ以上の Outposts 内の 2 つ以上のサブネット。
-
-
DB インスタンスの VPC をすべてのローカルゲートウェイルートテーブルに関連付けます。レプリケーションは、Outposts のローカルゲートウェイを使用してローカルネットワーク上で実行されるため、この関連付けが必要です。
例えば、VPC では、Outpost-A にサブネット A、Outpost-B にサブネット B が含まれているとします。Outpost-A は LocalGateway-A (LGW-A)、Outpost-B は LocalGateway-B (LGW-B) を使用します。LGW-A には RouteTable-A があり、LGW-B には RouteTable-B があります。レプリケーショントラフィックには、RouteTable-A と RouteTable-B の両方を使用します。これを行うには、VPC を RouteTable-A と RouteTable-B の両方に関連付けます。
関連付けの作成方法の詳細については、Amazon EC2 create-local-gateway-route-table-vpc-association AWS CLI コマンドを参照してください。
-
Outposts が顧客所有の IP (CoIP) ルーティングを使用していることを確認します。また、各ルートテーブルには、少なくとも 1 つのアドレスプールが必要です。Amazon RDS は、データの同期のために、プライマリ DB インスタンスとスタンバイ DB インスタンスに対してそれぞれ追加の IP アドレスを割り当てます。
-
RDS DB インスタンスを所有する AWS アカウント が、ローカルゲートウェイのルートテーブルおよび CoIP プールを所有していることを確認します。または、ローカルゲートウェイルートテーブルおよび CoIP プールへのアクセスを持つ Resource Access Manager 共有の一部であることを確認します。
-
CoIP プール内の IP アドレスが、1 つの Outpost ローカルゲートウェイから別のゲートウェイにルーティングできることを確認します。
-
VPC の CIDR ブロック (10.0.0.0/4 など) と CoIP プール CIDR ブロックにクラス E (240.0.0.0/4) からの IP アドレスが含まれていないことを確認します。RDS はこれらの IP アドレスを内部的に使用します。
-
アウトバウンドおよび関連するインバウンドトラフィックが正しく設定されていることを確認します。
RDS on Outposts は、プライマリ DB インスタンスとスタンバイ DB インスタンスの間に仮想プライベートネットワーク (VPN) 接続を確立します。これを正しく機能させるには、インターネットセキュリティアソシエーションおよびキー管理プロトコル (ISAKMP) のアウトバウンドおよび関連するインバウンドトラフィックがローカルネットワークで許可されている必要があります。UDP ポート 4500 を使用して、ユーザーデータグラムプロトコル (UDP) ポート 500 と IP セキュリティ (IPsec) ネットワークアドレス変換トラバーサル (NAT-T) を使用します。
CoIP の詳細については、このガイドの AWS Outposts での Amazon RDS 用の顧客所有の IP アドレス と AWS Outposts ユーザーガイドの顧客所有の IP アドレスを参照してください。
Amazon EC2 許可に対する API オペレーションの使用
AWS Outposts で DB インスタンスに CoIP を使用するかどうかにかかわらず、RDS には CoIP プールリソースへのアクセスが必要です。RDS は、マルチ AZ 配置の代わりに、CoIP の次の EC2 許可 API オペレーションを呼び出すことができます。
-
CreateCoipPoolPermission
— RDS on Outposts のマルチ AZ DB インスタンスを作成する場合 -
DeleteCoipPoolPermission
— RDS on Outposts のマルチ AZ DB インスタンスを削除する場合
これらの API オペレーションは、許可で指定された CoIP プールから Elastic IP アドレスを割り当てる許可を内部 RDS アカウントに付与、または削除します。これらの IP アドレスは、DescribeCoipPoolUsage
API オペレーションを使用して表示できます。CoIP の詳細については、AWS Outposts での Amazon RDS 用の顧客所有の IP アドレス と AWS Outposts ユーザーガイドの顧客所有の IP アドレスを参照してください 。
RDS は、マルチ AZ 配置の代わりに、ローカルゲートウェイルートテーブルの次の EC2 許可 API オペレーションを呼び出すことができます。
-
CreateLocalGatewayRouteTablePermission
— RDS on Outposts のマルチ AZ DB インスタンスを作成する場合 -
DeleteLocalGatewayRouteTablePermission
— RDS on Outposts のマルチ AZ DB インスタンスを削除する場合
これらの API オペレーションは、内部 RDS アカウントに内部 RDS VPC をローカルゲートウェイルートテーブルに関連付ける許可を付与または削除します。DescribeLocalGatewayRouteTableVpcAssociations
API オペレーションを使用して、これらのルートテーブルと VPC の関連付けを表示できます。