

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# DR 戦略を自動化する
<a name="automating"></a>

ディザスタリカバリをより適切に制御するために、完全自動化または部分自動化のどちらを実装するかを任意で選択できます。DR のバックアップと復元オプションを使用している場合は、[AWS Backup](https://aws.amazon.com/backup/) を使用してバックアップを自動化できます。これは、DynamoDB、Amazon DocumentDB、Amazon Neptune のテーブルだけでなく、すべての Amazon RDS データベースのサービスをサポートしています。

## 災害事象の検出
<a name="detection"></a>

復旧時間を短縮するには、リージョン全体のイベントの検出を自動化して DR リージョンへのフェイルオーバーを開始することを検討してみましょう。自動検出を実装して積極的な RTO を実現するには、[ヘルスチェック](https://aws.amazon.com/builders-library/implementing-health-checks/)に基づくソリューションを構築できます。これらのヘルスチェックは、ハートビート (ネットワーク内のコントロールプレーンモジュールとデータプレーンモジュールが相互に通信できるかどうかをチェックするもの) で終わるのではなく、正確な予測を立てるためにアプリケーションコンポーネントの相互関係をより深く評価します。ただし、自動化されたソリューションにより誤ったアラームが発生し、不要なフェイルオーバーにつながるリスクがあります。この場合、不必要なフェイルオーバーはビジネスに可用性の問題を引き起こすため、注意が必要です。また、ワークフローに手動のオーバーライドを構築して、フェイルオーバーが実行されたことを確認することもできます。[Service Health Dashboard](https://docs.aws.amazon.com/health/latest/ug/aws-health-dashboard-status.html) の RSS フィードをサブスクライブしておけば、サービスレベルの中断を常に把握できます。さらに、プライマリリージョンと AWS アカウント内で [AWS Health Dashboard](https://phd.aws.amazon.com/phd/home#/) (アカウントが必要) を使用して、アカウントに影響を与える可能性のあるイベントを常に把握できます。これを利用して、リージョン全体に影響するイベントが発生した場合に、情報に基づいてフェイルオーバーを決定できます。

## フェイルオーバー
<a name="failover"></a>

どの DR 戦略を選択したとしても、カスタム DR 自動化ソリューションを構築して DR リージョンへのフェイルオーバーを実行できます。この自動化により、手動による介入の必要性を最小限に抑え、DR ソリューションのテストをより細かく制御できます。[AWS サービス APIs](https://aws.amazon.com/tools/) から選択できます。サービス API AWS は、組織の好みに応じて、JavaScript、Python、PHP、.NET、Ruby、Java、Go、Node.js、C\+\+ などの複数の言語で を提供します。これらの AWS サービス APIs を使用するオートメーションを構築するには、まずデータベースインフラストラクチャを AWS CloudFormation または Terraform テンプレートの形式でコードに変換することに焦点を当てる必要があります。これらのテンプレートは、複数のデータベースのフェイルオーバーを自動化するのに役立つほか、アプリケーションとデータベースコンポーネントが DR リージョンに戻される順序を維持するのにも役立ちます。

DR の目的では、次の 2 つの目標に焦点を当てることを推奨します。
+ 既存の [CloudFormation のスタックは、インスタンス名やエンドポイントなど、データベースに関する関連情報エクスポートする必要があります](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html)。自動化プロセスはリージョン内のこれらのエクスポート値を参照して、DR オペレーションに役立つオペレーションを実行できます。
+ 本番稼働環境のリソースはあるが、関連する CloudFormation スタックがない場合は、それらのリソース用にスタックを作成することに集中する必要があります。また、前述したポイントで説明したように、これらのスタックが適切なエクスポート値をカバーしていることを確認します。

この 2 つの目標を達成したら、組織が選択した言語で自動化ソリューションを構築して、CloudFormation のエクスポートを活用し、災害発生時に必要なカットオーバーアクションを自動的に実行できます。例えば、CloudFormation テンプレートとしてデプロイされた ElastiCache (Redis OSS) Global Datastore がある場合、自動化コードは Global Datastore に関する詳細を提供する CloudFormation エクスポートにアクセスできます。災害が発生した場合、コードは ElastiCache (Redis OSS) サービス APIs。

一般的なシナリオでは、組織内の複数のデータベースに合わせて自動化をスケールできるはずです。[AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) または [AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/what-is-batch.html) を使用して、自動化ソリューションを複数のデータベースにスケールできます。