カットオーバー - AWS 規範ガイダンス

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

カットオーバー

データベースのカットオーバー戦略は、通常、アプリケーションのダウンタイム要件と密接に結びついています。データベースのカットオーバーに使用できる戦略には、オフライン移行、フラッシュカット移行、アクティブ/アクティブデータベース設定、増分移行などがあります。これらについては、以降のセクションで説明します。

オフライン移行

書き込み操作中にアプリケーションを長期間オフラインにできる場合は、AWS DMS 全ロードタスク設定またはいずれかのオフライン移行オプションをデータ移行に使用できます。この移行の進行中も読み取りトラフィックは継続できますが、書き込みトラフィックは停止する必要があります。すべてのデータをソースデータベースからコピーする必要があるため、I/O や CPU などのソースデータベースのリソースが使用されます。

大まかに言うと、オフライン移行には次のステップが含まれます。

  1. スキーマの変換を完了します。

  2. 書き込みトラフィックのダウンタイムを開始します。

  3. いずれかのオフライン移行オプションを使用してデータを移行します。

  4. データを検証します。

  5. アプリケーションを新しいデータベースに向けます。

  6. アプリケーションのダウンタイムを終了します。

フラッシュカット移行

フラッシュカット移行の主な目的は、ダウンタイムを最小限に抑えることです。この戦略は、ソースデータベースからターゲットデータベースへの連続データレプリケーション (CDC) に依存しています。データの移行中も、すべての読み取り/書き込みトラフィックは現在のデータベースで継続されます。すべてのデータをソースデータベースからコピーする必要があるため、I/O や CPU などのソースサーバーのリソースが使用されます。このデータ移行アクティビティがアプリケーションのパフォーマンス SLA に影響しないことを確認するためにテストする必要があります。

フラッシュカット移行の大まかなステップは次のとおりです。

  1. スキーマの変換を完了します。

  2. 連続データレプリケーションモードで AWS DMS をセットアップします。

  3. ソースデータベースとターゲットデータベースが同期したら、データを検証します。

  4. アプリケーションのダウンタイムを開始します。

  5. 新しいデータベースに向ける新しいバージョンのアプリケーションをロールアウトします。

  6. アプリケーションのダウンタイムを終了します。

アクティブ/アクティブデータベース設定

アクティブ/アクティブデータベース設定には、ソースデータベースとターゲットデータベースが書き込みトラフィックに使用されている間、両データベースを同期させるメカニズムを設定する必要があります。この戦略では、オフライン移行やフラッシュカット移行よりも多くの作業が必要ですが、移行中の柔軟性も高まります。例えば、移行中のダウンタイムが最小限に抑えられるだけでなく、1 回限りのカットオーバーを実行する代わりに、管理された小さなバッチで本番環境トラフィックを新しいデータベースに移動できます。二重書き込み操作を実行して両方のデータベースに変更を加えることも、HVR などの双方向レプリケーションツールを使用してデータベースの同期を維持することもできます。この戦略はセットアップとメンテナンスの面でより複雑なので、データ整合性の問題を避けるためにはより多くのテストが必要です。

大まかに言うと、アクティブ/アクティブデータベースの設定には以下のステップが含まれます。

  1. スキーマの変換を完了します。

  2. ソースデータベースからターゲットデータベースに既存のデータをコピーし、双方向レプリケーションツールを使用するか、アプリケーションからの二重書き込みを使用して 2 つのデータベースを同期させます。

  3. ソースデータベースとターゲットデータベースが同期したら、データを検証します。

  4. トラフィックのサブセットを新しいデータベースに移動し始めます。

  5. データベーストラフィックがすべて新しいデータベースに移動されるまで、トラフィックを移動し続けます。

増分移行

増分移行では、1 回限りの完全カットオーバーを行うのではなく、アプリケーションを小さな部分に分けて移行します。このカットオーバー戦略には、現在のアプリケーションアーキテクチャや、アプリケーションで実行したいリファクタリングに応じて、さまざまなバリエーションがあります。

[ 設計パターン ]を使用して新しい独立したマイクロサービスを追加し、既存のモノリシックレガシーアプリケーションの一部を置き換えることができます。これらの独立したマイクロサービスには独自のテーブルがあり、アプリケーションの他の部分では共有もアクセスもされません。他のカットオーバー戦略のいずれかを使用して、これらのマイクロサービスを新しいデータベースに 1 つずつ移行します。移行されたマイクロサービスは読み取り/書き込みトラフィックに新しいデータベースを使用し始め、アプリケーションの他のすべての部分は引き続き古いデータベースを使用します。すべてのマイクロサービスが移行されたら、レガシーアプリケーションを廃止します。この戦略は、移行を小規模で管理しやすい部分に分割するため、1 つの大規模な移行に伴うリスクを軽減できます。