翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
DR Orchestrator Framework を使用してクロスリージョンフェイルオーバーとフェイルバックを自動化する
作成者: Jitendra Kumar (AWS)、Ocketr Francis (AWS)、Pavithra Balasubramanian (AWS)
概要
このパターンでは、DR Orchestrator Framework を使用して、エラーが発生しやすい手動ステップをオーケストレーションおよび自動化し、Amazon Web Services (AWS) リージョン全体でディザスタリカバリを実行する方法について説明します。このパターンは、次のデータベースを対象としています。
Amazon Relational Database Service (Amazon RDS) for MySQL、Amazon RDS for PostgreSQL、または Amazon RDS for MariaDB
Amazon Aurora MySQL-Compatible Edition または Amazon Aurora PostgreSQL-Compatible Edition (一元化されたファイルを使用)
Amazon ElastiCache (Redis OSS)
DR Orchestrator Framework の機能を実証するには、2 つの DB インスタンスまたはクラスターを作成します。プライマリは にあり AWS リージョン us-east-1
、セカンダリは にありますus-west-2
。これらのリソースを作成するには、aws-cross-region-dr-databasesApp-Stack
フォルダにある AWS CloudFormation テンプレートを使用します。
前提条件と制限
一般的な前提条件
プライマリとセカンダリの両方にデプロイされた DR オーケストレーターフレームワーク AWS リージョン
2 つの Amazon Simple Storage Service
バケット 2 つのサブネットと 1 つの AWS セキュリティグループを持つ仮想プライベートクラウド (VPC)
エンジン固有の前提条件
Amazon Aurora – 少なくとも 1 つの Aurora Global Database を 2 つで利用できる必要があります AWS リージョン。をプライマリリージョン
us-east-1
として使用し、 をセカンダリリージョンus-west-2
として使用できます。Amazon ElastiCache (Redis OSS) – ElastiCache Global Datastore は 2 つで利用できる必要があります AWS リージョン。をプライマリリージョン
use us-east-1
として、 をセカンダリリージョンus-west-2
として使用できます。
Amazon RDS の制限事項
DR Orchestrator Framework は、フェイルオーバーまたはフェイルバックを実行する前にレプリケーションラグをチェックしません。レプリケーションラグは手動で確認する必要があります。
このソリューションは、1 つのリードレプリカを持つプライマリデータベースインスタンスを使用してテストされています。複数のリードレプリカを使用する場合は、本番環境に実装する前に、ソリューションを徹底的にテストしてください。
Aurora の制限事項
機能の可用性とサポートは、各データベースエンジンの特定のバージョンと全体で異なります AWS リージョン。クロスリージョンレプリケーションの機能とリージョンの可用性の詳細については、「クロスリージョンリードレプリカ」を参照してください。
Aurora Global Database には、サポートされている Aurora DB インスタンスクラスと の最大数に関する特定の設定要件があります AWS リージョン。詳細については、「Amazon Aurora Global Database の設定要件」を参照してください。
このソリューションは、1 つのリードレプリカを持つプライマリデータベースインスタンスを使用してテストされています。複数のリードレプリカを使用する場合は、本番環境に実装する前に、ソリューションを徹底的にテストしてください。
ElastiCache 制限事項
Global Datastore のリージョンの可用性と ElastiCache 設定要件については、 ElastiCache ドキュメントの「前提条件と制限」を参照してください。
Amazon product RDS のバージョン
Amazon は、次のエンジンバージョンRDSをサポートしています。
MySQL – Amazon は、My 8.0 SQLとSQL My SQL5.7 の バージョンを実行する DB インスタンスRDSをサポートしています。
PostgreSQL – Amazon RDS for Postgre のサポートされているバージョンについてはSQL、「利用可能な PostgreSQL データベースのバージョン」を参照してください。
MariaDB – Amazon は、次のバージョンの MariaDB を実行する DB インスタンスRDSをサポートしています。
MariaDB 10.11
MariaDB 10.6
MariaDB 10.5
Aurora 製品バージョン
Amazon Aurora グローバルデータベースのスイッチオーバーには、My 5.7 SQL互換、バージョン 2.09.1 以降との Aurora MySQL 互換が必要です
詳細については、「Amazon Aurora グローバルデータベースの制限」を参照してください。
ElastiCache (Redis OSS) 製品バージョン
Amazon ElastiCache (Redis OSS) では、以下の Redis バージョンがサポートされています。
Redis 7.1 (拡張)
Redis 7.0 (拡張)
Redis 6.2 (拡張)
Redis 6.0 (拡張)
Redis 5.0.6 (拡張)
詳細については、「Supported ElastiCache (Redis OSS) versions」を参照してください。
アーキテクチャ
Amazon RDSアーキテクチャ
Amazon RDSアーキテクチャには、次のリソースが含まれています。
クライアントの読み取り/書き込みアクセス権を持つプライマリリージョン (
us-east-1
) で作成されたプライマリ Amazon RDS DB インスタンスクライアントに読み取り専用アクセス権を持つセカンダリリージョン (
us-west-2
) RDS で作成された Amazon リードレプリカプライマリリージョンとセカンダリリージョンの両方にデプロイされた DR オーケストレーターフレームワーク

図に示す内容は以下のとおりです。
プライマリインスタンスとセカンダリインスタンス間の非同期レプリケーション
プライマリリージョンのクライアントの読み取り/書き込みアクセス
セカンダリリージョンのクライアントの読み取り専用アクセス
Aurora アーキテクチャ
Amazon Aurora アーキテクチャには、次のリソースが含まれています。
アクティブライターエンドポイントを持つプライマリリージョン (
us-east-1
) で作成されたプライマリ Aurora DB クラスター非アクティブライターエンドポイントを持つセカンダリリージョン (
us-west-2
) で作成された Aurora DB クラスタープライマリリージョンとセカンダリリージョンの両方にデプロイされた DR オーケストレーターフレームワーク

図に示す内容は以下のとおりです。
プライマリクラスターとセカンダリクラスター間の非同期レプリケーション
アクティブライターエンドポイントを持つプライマリ DB クラスター
非アクティブライターエンドポイントを持つセカンダリ DB クラスター
ElastiCache (Redis OSS) アーキテクチャ
Amazon ElastiCache (Redis OSS) アーキテクチャには、次のリソースが含まれています。
2 つのクラスターで作成された ElastiCache (Redis OSS) Global Datastore:
プライマリリージョンのプライマリクラスター (
us-east-1
)セカンダリリージョンのセカンダリクラスター (
us-west-2
)
2 つのクラスター間の 1.2 TLS 暗号化を使用した Amazon クロスリージョンリンク
プライマリリージョンとセカンダリリージョンの両方にデプロイされた DR オーケストレーターフレームワーク

自動化とスケール
DR Orchestrator Framework はスケーラブルで、複数の AWS データベースのフェイルオーバーまたはフェイルバックを並行してサポートします。
次のペイロードコードを使用して、アカウント内の複数の AWS データベースをフェイルオーバーできます。この例では、3 つの AWS データベース (Aurora My-Compatible や Aurora PostgreSQL-Compatible などの SQL2 つのグローバルデータベース、および 1 つの Amazon RDS for MySQL インスタンス) が DR リージョンにフェイルオーバーします。
{ "StatePayload": [ { "layer": 1, "resources": [ { "resourceType": "PlannedFailoverAurora", "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (MySQL)", "parameters": { "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-mysql-global-identifier", "DBClusterIdentifier": "!Import dr-globaldb-cluster-mysql-cluster-identifier" } }, { "resourceType": "PlannedFailoverAurora", "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (PostgreSQL)", "parameters": { "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-postgres-global-identifier", "DBClusterIdentifier": "!Import dr-globaldb-cluster-postgres-cluster-identifier" } }, { "resourceType": "PromoteRDSReadReplica", "resourceName": "Promote RDS for MySQL Read Replica", "parameters": { "RDSInstanceIdentifier": "!Import rds-mysql-instance-identifier", "TargetClusterIdentifier": "!Import rds-mysql-instance-global-arn" } } ] } ] }
ツール
AWS サービス
Amazon Aurora は、クラウド向けに構築され、MySQL および Postgre と互換性があるフルマネージドのリレーショナルデータベースエンジンですSQL。
Amazon ElastiCache は、 で分散インメモリキャッシュ環境をセットアップ、管理、スケーリングするのに役立ちます AWS クラウド。このパターンでは Amazon ElastiCache (Redis OSS) を使用します。
AWS Lambda
は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。このパターンでは、Lambda 関数は AWS Step Functions によってステップの実行に使用されます。 Amazon Relational Database Service (Amazon RDS) は、 でリレーショナルデータベースをセットアップ、運用、スケーリングするのに役立ちます AWS クラウド。このパターンは、Amazon RDS for MySQL、Amazon RDS for PostgreSQL、および Amazon RDS for MariaDB をサポートしています。
AWS SDK for Python (Boto3)
は、Python アプリケーション、ライブラリ、またはスクリプトを と統合するのに役立ちます AWS のサービス。このパターンでは、Boto3 APIsはデータベースインスタンスまたはグローバルデータベースとの通信に使用されます。 AWS Step Functions
は、 AWS Lambda 関数と他の を組み合わせてビジネスクリティカルなアプリケーション AWS のサービス を構築するのに役立つサーバーレスオーケストレーションサービスです。このパターンでは、Step Functions ステートマシンを使用して、データベースインスタンスまたはグローバルデータベースのクロスリージョンフェイルオーバーとフェイルバックをオーケストレーションして実行します。
コードリポジトリ
このパターンのコードは、 の aws-cross-region-dr-databases
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
GitHub リポジトリのクローンを作成します。 | リポジトリのクローンを作成するには、次のコマンドを実行します。
| AWS DevOps、AWS管理者 |
Lambda 関数コードを .zip ファイルアーカイブにパッケージ化します。 | Lambda 関数のアーカイブファイルを作成して、DR Orchestrator Framework の依存関係を含めます。
| AWS 管理者 |
S3 バケットを作成します。 | DR Orchestrator Framework を最新の設定とともに保存するには、S3 バケットが必要です。2 つの S3 バケットを作成します。1 つはプライマリリージョン (
をランダムな値 | AWS 管理者 |
サブネットとセキュリティグループを作成します。 | プライマリリージョン (
| AWS 管理者 |
DR Orchestrator パラメータファイルを更新します。 |
次のパラメータ値を使用して、
| AWS 管理者 |
DR Orchestrator Framework コードを S3 バケットにアップロードします。 | コードは、ローカルディレクトリよりも S3 バケットの方が安全です。すべてのファイルとサブフォルダを含む コードをアップロードするには、次の手順を実行します。
| AWS 管理者 |
DR Orchestrator Framework をプライマリリージョンにデプロイします。 | DR Orchestrator Framework をプライマリリージョン (
| AWS 管理者 |
DR Orchestrator Framework をセカンダリリージョンにデプロイします。 | セカンダリリージョン (
| AWS 管理者 |
デプロイメントを確認する | AWS CloudFormation コマンドが正常に実行されると、次の出力が返されます。
または、 AWS CloudFormation コンソールに移動して | AWS 管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
データベースサブネットとセキュリティグループを作成します。 | でVPC、プライマリ (
| AWS 管理者 |
プライマリ DB インスタンスまたはクラスターのパラメータファイルを更新します。 |
Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
| AWS 管理者 |
DB インスタンスまたはクラスターをプライマリリージョンにデプロイします。 | インスタンスまたはクラスターをプライマリリージョン ( Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
AWS CloudFormation リソースが正常にデプロイされたことを確認します。 | AWS 管理者 |
セカンダリ DB インスタンスまたはクラスターのパラメータファイルを更新します。 |
Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
| AWS 管理者 |
DB インスタンスまたはクラスターをセカンダリリージョンにデプロイします。 | データベースエンジンに基づいて、次のコマンドを実行します。 Amazon RDS
Amazon Aurora
Amazon ElastiCache (Redis OSS)
AWS CloudFormation リソースが正常にデプロイされたことを確認します。 | AWS 管理者 |
関連リソース
のデータベースのディザスタリカバリ戦略 AWS (AWS 規範ガイダンス戦略)
のリレーショナルデータベースの DR ソリューションを自動化する AWS (AWS 規範ガイダンスガイド)
のリレーショナルデータベースの DR ソリューションを自動化する AWS (AWS 規範ガイダンスガイド)