翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS DMS と Amazon Aurora によるクロスリージョンディザスタリカバリの実装
作成者: Mark Hudson (AWS)
環境:本稼働 | テクノロジー: データベース | AWS サービス: AWS DMS、Amazon RDS、Amazon Aurora |
[概要]
自然災害または人為的災害はいつでも発生する可能性があり、特定の Amazon Web Services (AWS) リージョンで実行されているサービスとワークロードの可用性に影響を与える可能性があります。リスクを軽減するには、 AWS サービスの組み込みのクロスリージョン機能を組み込むディザスタリカバリ (DR) 計画を策定する必要があります。本質的にクロスリージョン機能を提供しないAWSサービスの場合、DR プランはAWSリージョン間でのフェイルオーバーを処理するソリューションも提供する必要があります。
このパターンは、1 つのリージョンに 2 つの Amazon Aurora My SQL-Compatible Edition データベースクラスターを含むディザスタリカバリ設定をガイドします。DR 要件を満たすために、データベースクラスターは Amazon Aurora グローバルデータベース機能を使用するように設定され、1 つのデータベースが複数のAWSリージョンにまたがっています。AWS Database Migration Service (AWS DMS) タスクは、ローカルリージョンのクラスター間でデータをレプリケートします。AWS ただしDMS、現在、 はリージョン間のタスクフェイルオーバーをサポートしていません。このパターンには、この制限を回避し、両方のリージョンAWSDMSで個別に設定するために必要なステップが含まれています。
前提条件と制限
前提条件
Amazon Aurora グローバルデータベース をサポートする選択したプライマリリージョンとセカンダリAWSリージョン。 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraFeaturesRegionsDBEngines.grids.html#Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase
プライマリリージョンの 1 つのアカウントで 2 つの独立した Amazon Aurora My SQL互換エディションデータベースクラスター。
Database インスタンスクラスは db.r5 以上 (推奨)
既存のデータベースクラスター間で継続的なレプリケーションを実行するプライマリリージョンのAWSDMSタスク。
データベースインスタンスを作成するための要件を満たすための DR リージョンのリソースが整っている。詳細については、「 での DB インスタンスの使用VPC」を参照してください。
機能制限
Amazon Aurora Global Databaseの制限の全リストについては、「Amazon Aurora Global Databaseの制限」を参照してください。
製品バージョン
Amazon Aurora My SQL互換エディション 5.7 または 8.0。詳細については、「Amazon Auroraバージョン」を参照してください。
アーキテクチャ
ターゲットテクノロジースタック
Amazon Aurora My SQL-Compatible Edition グローバルデータベースクラスター
AWS DMS
ターゲット アーキテクチャ
次の図は、2 つのAWSリージョンのグローバルデータベースを示しています。1 つはプライマリメインデータベースとレポーターデータベースとAWSDMSレプリケーション、もう 1 つはセカンダリメインデータベースとレポーターデータベースです。
自動化とスケール
AWS CloudFormation を使用して、仮想プライベートクラウド (VPC)、サブネット、パラメータグループなどの前提条件インフラストラクチャをセカンダリリージョンに作成できます。AWS CloudFormation を使用して DR リージョンにセカンダリクラスターを作成し、グローバルデータベースに追加することもできます。 CloudFormation テンプレートを使用してプライマリリージョンにデータベースクラスターを作成した場合は、追加のテンプレートでテンプレートを更新または拡張して、グローバルデータベースリソースを作成できます。詳細については、「2 つの DB インスタンスを持つ Amazon Aurora DB クラスターの作成」と「Aurora My 用のグローバルデータベースクラスターの作成SQL」を参照してください。
最後に、フェイルオーバーイベントとフェイルバックイベントが発生した CloudFormation 後に を使用して、プライマリリージョンとセカンダリリージョンにAWSDMSタスクを作成できます。詳細については、AWS「::DMS::ReplicationTask
ツール
Amazon Aurora - Amazon Aurora は、MySQL および Postgre と互換性のあるフルマネージドリレーショナルデータベースエンジンですSQL。このパターンでは、Amazon Aurora My SQL互換エディションを使用します。
Amazon Aurora Global Database - Amazon Aurora Global Databaseは、グローバルに分散されたアプリケーション向けに設計されています。1 つの Amazon Aurora グローバルデータベースは、複数のAWSリージョンにまたがることができます。データベースのパフォーマンスに影響を与えずにデータを複製します。また、各リージョンで低レイテンシーで高速なローカル読み取りが可能になり、リージョン全体の障害からのディザスタリカバリが可能になります。
AWS DMS - AWS Database Migration Service (AWS DMS) は、1 回限りの移行または継続的なレプリケーションを提供します。継続的なレプリケーションタスクにより、ソースデータベースとターゲットデータベースの同期が保たれます。セットアップ後、進行中のレプリケーションタスクはソースの変更を最小限のレイテンシーでターゲットに継続的に適用します。データ検証や変換などのすべてのAWSDMS機能は、レプリケーションタスクで使用できます。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
データベースクラスターパラメータグループを変更します。 | 既存のデータベースクラスターパラメータグループで、 AWS DMS では、継続的なレプリケーションまたはデータキャプチャの変更を実行する際に、MYSQL互換性のあるデータベースの行レベルのバイナリログ記録が必要です (CDC)。詳細については、「 のソースとして AWSマネージド My SQL互換データベースを使用する」を参照してくださいAWSDMS。 | AWS 管理者 |
データベースのバイナリログの保持期間を更新します。 | エンドユーザーデバイスまたは Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにインストールされた MySQL クライアントを使用して、メインデータベースクラスターのライターノードで Amazon Relational Database Service (Amazon RDS) が提供する以下のストアドプロシージャを実行します。ここで、
次のコマンドを実行してこの設定を確認します。
バイナリログをできるだけ早くAWS消去することで管理される SQL互換データベース。したがって、保持期間は、AWSDMSタスクの実行前にログが消去されないように十分な長さである必要があります。通常 24 時間の値は十分ですが、値は DR リージョンでAWSDMSタスクを設定するために必要な時間に基づいている必要があります。 | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
AWS DMS タスク を記録しますARN。 | Amazon リソースネーム (ARN) を使用して、後で使用するためにAWSDMSタスク名を取得します。AWS DMS タスク を取得するにはARN、コンソールでタスクを表示するか、次のコマンドを実行します。
ARN は次のようになります。
最後のコロンの後の文字は、後のステップで使用されるタスク名に対応しています。 | AWS 管理者 |
チェックポイントを記録するように既存のAWSDMSタスクを変更します。 | AWS DMS は、レプリケーションエンジンが変更ストリームの復旧ポイントを認識できるように、情報を含むチェックポイントを作成します。チェックポイント情報を記録するには、コンソールで次のステップを実施します。
| AWS 管理者 |
チェックポイント情報を検証します。 | クラスターのライターエンドポイントに接続された MySQL クライアントを使用して、レポーターデータベースクラスター内の新しいメタデータテーブルをクエリして、レプリケーション状態情報が存在し、含まれていることを確認します。以下のコマンドを実行します。
のタスク名ARNは、 | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
DR リージョンに基本インフラを作成します。 | Amazon Aurora クラスターの作成とアクセスに必要な基本コンポーネントを作成します。
両方のパラメータグループの設定がプライマリリージョンの設定と一致していることを確認します。 | AWS 管理者 |
両方の Amazon Aurora クラスターに DR リージョンを追加します。 | メインクラスターとレポーターの Amazon Aurora クラスターにセカンダリージョン (DR リージョン) を追加します。詳細については、「Amazon Aurora グローバルデータベースへのAWSリージョンの追加」を参照してください。 | AWS 管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
AWS DMS タスクを停止します。 | フェイルオーバーが発生すると、プライマリリージョンのAWSDMSタスクは正常に機能せず、エラーを避けるために停止する必要があります。 | AWS 管理者 |
マネージドフェイルオーバーを実行してください。 | メインデータベースクラスターの DR リージョンへのマネージドフェイルオーバーを実行します。詳細については、「Amazon Aurora Global Databaseのマネージドプラン済みフェイルオーバーを実行」を参照してください。メインデータベースクラスターのフェイルオーバーが完了したら、レポーターデータベースクラスターで同じアクティビティを実行します。 | AWS 管理者 DBA |
メインデータベースにデータをロードします。 | DR データベースクラスター内のメインデータベースのライターノードにテストデータを挿入します。このデータは、レプリケーションが正常に機能していることを確認するために使用されます。 | DBA |
AWS DMS レプリケーションインスタンスを作成します。 | DR リージョンでAWSDMSレプリケーションインスタンスを作成するには、「レプリケーションインスタンスの作成」を参照してください。 | AWS 管理者 DBA |
AWS DMS ソースエンドポイントとターゲットエンドポイントを作成します。 | DR リージョンでAWSDMSソースエンドポイントとターゲットエンドポイントを作成するには、「ソースエンドポイントとターゲットエンドポイントの作成」を参照してください。ソースは、メインデータベースクラスターのライターインスタンスを指している必要があります。ターゲットは、Reporter Database クラスターのライターインスタンスを指します。 | AWS 管理者 DBA |
レプリケーションチェックポイントを取得します。 | レプリケーションチェックポイントを取得するには、My SQLクライアントを使用して、DR リージョンのレポーターデータベースクラスターのライターノードに対して以下を実行してメタデータテーブルをクエリします。
テーブルで、2 番目のエピックで取得したプライマリリージョンARNに存在するAWSDMSタスクに対応する task_name 値を見つけます。 | DBA |
AWS DMS タスクを作成します。 | コンソールを使用して、DR リージョンにAWSDMSタスクを作成します。タスクでは、「データ変更のみ複製」の移行方法を指定します。詳細については、「タスクの作成」を参照してください。
AWS DMS タスク 移行タスク設定の開始 を、 の作成時に自動的にに設定します。 | AWS 管理者 DBA |
AWS DMS タスク を記録しますARN。 | ARN を使用して、後で使用するためにAWSDMSタスク名を取得します。AWS DMS タスク を取得するにはARN、次のコマンドを実行します。
| AWS 管理者 DBA |
複製されたデータを検証します。 | DR リージョンのレポーターデータベースクラスターにクエリを実行して、メインデータベースクラスターに読み込んだテストデータが複製されていることを確認します。 | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
AWS DMS タスクを停止します。 | DR リージョンのAWSDMSタスクは、フェイルバックの発生後に正しく機能しないため、エラーを避けるために停止する必要があります。 | AWS 管理者 |
マネージドフェイルバックを実行してください。 | メインデータベースクラスターをプライマリリージョンにフェイルバックします。詳細については、「Amazon Aurora Global Databaseのマネージドプラン済みフェイルオーバーを実行」を参照してください。メインデータベースクラスターのフェイルバックが完了したら、レポーターデータベースクラスターで同じアクティビティを実行します。 | AWS 管理者 DBA |
レプリケーションチェックポイントを取得します。 | レプリケーションチェックポイントを取得するには、My SQLクライアントを使用して、DR リージョンのレポーターデータベースクラスターのライターノードに対して以下を実行してメタデータテーブルをクエリします。
テーブルで、4 番目のエピックで取得した DR リージョンARNに存在するAWSDMSタスクに対応する | DBA |
AWS DMS ソースエンドポイントとターゲットエンドポイントを更新します。 | データベースクラスターがフェイルバックしたら、プライマリリージョンのクラスターをチェックして、どのノードがライターインスタンスであるかを判断します。次に、プライマリリージョンの既存のAWSDMSソースエンドポイントとターゲットエンドポイントがライターインスタンスを指していることを確認します。そうでない場合は、ライターインスタンスのドメインネームシステム (DNS) 名でエンドポイントを更新します。 | AWS 管理者 |
AWS DMS タスクを作成します。 | コンソールを使用して、プライマリリージョンにAWSDMSタスクを作成します。タスクでは、「データ変更のみ複製」の移行方法を指定します。詳細については、「タスクの作成」を参照してください。
| AWS 管理者 DBA |
AWS DMS タスク Amazon リソースネーム () を記録しますARN。 | ARN を使用して、後で使用するためにAWSDMSタスク名を取得します。AWS DMS タスク を取得するにはARN、次のコマンドを実行します。
タスク名は、別のマネージドフェイルオーバーを実行するときや DR シナリオ中に必要になります。 | AWS 管理者 DBA |
AWS DMS タスクを削除します。 | プライマリリージョンの元の (現在停止している) AWSDMSタスクと、セカンダリリージョンの既存のAWSDMSタスク (現在停止している) を削除します。 | AWS 管理者 |
関連リソース
追加情報
この例では、Amazon Aurora グローバルデータベースが DR に使用されます。これは、1 秒の有効な復旧時間目標 (RTO) と 1 分未満の復旧ポイント目標 (RPO) を提供し、どちらも従来のレプリケートされたソリューションよりも低く、DR シナリオに最適です。
Amazon Aurora Global Databaseには、他にも次のような多くの利点があります。
ローカルレイテンシーによるグローバル読み取り — 世界中の消費者は、ローカルリージョンの情報にローカルレイテンシーでアクセスできます。
スケーラブルなセカンダリ Amazon Aurora DB クラスター — セカンダリクラスターは個別にスケーリングでき、最大 16 の読み取り専用レプリカを追加できます。
プライマリからセカンダリの Amazon Aurora DB クラスターへの迅速なレプリケーション-Aurora Global Database によるレプリケーションは、プライマリ DB クラスターのパフォーマンスにほとんど影響しません。これはストレージレイヤーで発生し、クロスリージョンレプリケーションのレイテンシーは通常 1 秒未満です。
このパターンはAWSDMSレプリケーションにも を使用します。Amazon Aurora データベースにはリードレプリカを作成できるため、レプリケーションプロセスと DR セットアップを簡素化できます。ただし、 AWSDMSは、データ変換が必要な場合や、ターゲットデータベースにソースデータベースにない追加のインデックスが必要な場合にレプリケートするために使用されます。