レプリケーションインスタンス向けの最適なサイズの選択 - AWS Database Migration Service

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

レプリケーションインスタンス向けの最適なサイズの選択

適切なレプリケーション インスタンスの選択は、ユースケースのいくつかの要因によって異なります。レプリケーション インスタンスリソースの使用方法を理解しやすいように、次の説明をご参照ください。全ロードと CDC タスクの一般的なシナリオを説明します。

フルロードタスク中、 はテーブルを個別に AWS DMS ロードします。デフォルトでは、一度に 8 つのテーブルがロードされます。 は、フルロードタスク中にソースへの継続的な変更 AWS DMS をキャプチャするため、変更は後でターゲットエンドポイントに適用できます。変更はメモリにキャッシュされます。使用可能なメモリがなくなると、変更はディスクにキャッシュされます。テーブルのフルロードタスクが完了すると、 はキャッシュされた変更をターゲットテーブルに AWS DMS 直ちに適用します。

テーブルのキャッシュされた変更がすべて適用されると、ターゲットエンドポイントはトランザクション上一貫性のある状態になります。この時点で、ターゲットは最後にキャッシュされた変更に関してソースエンドポイントと同期しています。 AWS DMS その後、 はソースとターゲットの間で継続的なレプリケーションを開始します。そのために、 はソーストランザクションログから変更オペレーション AWS DMS を受け取り、トランザクション整合性のある方法でターゲットに適用します。(このプロセスでは、バッチ最適化適用が選択されていないことを前提としています)。 は、可能であれば、レプリケーションインスタンスのメモリを介して進行中の変更を AWS DMS ストリーミングします。それ以外の場合、 はターゲットに適用できるようになるまで、レプリケーション インスタンスのディスクに変更を AWS DMS 書き込みます。

レプリケーション インスタンスが変更処理をどのように処理するか、およびそのプロセスでメモリがどのように使用されるかについて、何らかの制御があります。変更処理のチューニング方法の詳細については、「変更処理のチューニング設定」をご参照ください。

考慮すべき要素

メモリとディスク容量は、ユースケースに適したレプリケーションインスタンスを選択する際の重要な要素です。レプリケーションインスタンスを選択するために分析すべきユースケースの特徴について次に説明します。

  • データベースとテーブルのサイズ

    データ量は、フルロードパフォーマンスを最適化するためのタスクの設定を決定するうえで役立ちます。例えば、1 TB スキーマが 2 つある場合、テーブルをパーティション化して 500 GB の 4 つのタスクの分割して、それらを並列で実行できます。レプリケーションインスタンスで使用できる CPU リソースにより、実行できる並列処理は異なります。このため、フルロードパフォーマンスを最適化するには、データベースのサイズとテーブルのサイズを把握することをお勧めします。これにより、実行できるタスクの数を判断できます。

  • ラージオブジェクト

    移行の範囲内のデータ型がパフォーマンスに影響を及ぼす場合があります。特にラージオブジェクト (LOB) は、パフォーマンスとメモリ消費に影響します。LOB 値を移行するには、 は 2 ステップのプロセス AWS DMS を実行します。まず、 AWS DMS は LOB 値なしで行をターゲットに挿入します。次に、LOB 値で行 AWS DMS を更新します。このプロセスはメモリに影響を及ぼすため、ソース内の LOB 列を特定し、そのサイズを分析しておくことが重要です。

  • ロード頻度とトランザクションのサイズ

    ロード頻度と 1 秒あたりのトランザクション数 (TPS) は、メモリ使用量に影響します。TPS またはデータ操作言語 (DML) のアクティビティ数が多いと、メモリの使用量が上がります。これが発生するのは、変更内容をターゲットに適用するまで DMS はキャッシュするためです。これにより、CDC の実行中にスワッピング (メモリオーバーフローによる物理ディスクへの書き込み) が発生し、レイテンシーが発生します。

  • テーブルキーと参照整合性

    テーブルのキーに関する情報により、データの移行に使用する CDC モード (バッチ適用またはトランザクション適用) が定まります。通常、トランザクションの適用はバッチの適用よりも遅くなります。長時間実行されるトランザクションの場合、多くの変更を移行する必要がある可能性があります。トランザクション適用を使用する場合、バッチ適用と比較して変更を保存するためにより多くのメモリが必要になる AWS DMS 場合があります。プライマリキーなしでテーブルを移行すると、一括適用が失敗し、DMS タスクはトランザクション適用モードに変更されます。CDC 中にテーブル間で参照整合性がアクティブな場合、 はデフォルトでトランザクション適用 AWS DMS を使用します。バッチ適用とトランザクション適用との比較の詳細については、「DMS バッチ適用機能を使用して CDC レプリケーションパフォーマンスを向上させるにはどうすればよいですか?」を参照してください。

このようなメトリクスを使用して、レプリケーションインスタンスをコンピューティング最適化またはメモリ最適化する必要があるかを判断します。

一般的な問題

移行中にレプリケーションインスタンスでのリソースの競合の原因となる次のとおりの一般的な問題に直面する場合があります。レプリケーションインスタンスメトリクスの詳細については、「レプリケーションインスタンスのメトリクス」を参照してください。

  • レプリケーションインスタンスのメモリが不足すると、データはディスクに書き込まれます。ディスクからの読み取りによってレイテンシーが発生する可能性があります。ただしこれは、十分なメモリを備えたレプリケーションインスタンスのサイズを設定することで回避できます。

  • レプリケーションインスタンスに割り当てられるディスクサイズは、必要となるより小さいサイズでも構いません。ディスクサイズは、メモリ内のデータがオーバーフローした場合や、タスクログの保存にも使用されます。最大 IOPS もこれに依存します。

  • 複数のタスクや並列処理の高いタスクを実行すると、レプリケーションインスタンスの CPU 消費量に影響します。これにより、タスクの処理が遅くなり、レイテンシーが発生します。

ベストプラクティス

レプリケーションインスタンスのサイジングを行う際は、次の 2 つの最も一般的なベストプラクティスの採用を検討します。詳細については、「AWS Database Migration Service のベストプラクティス」を参照してください。

  1. ワークロードのサイジングを行い、コンピューティング集約型であるか、メモリ集中型であるかを判断しておきます。これに基づいて、レプリケーションインスタンスのクラスとサイズを決定できます。

    • AWS DMS はメモリ内の LOBsを処理します。この操作にはかなりの量のメモリが必要です。

    • タスクの数とスレッドの数は CPU 消費に影響します。フルロード操作中は MaxFullLoadSubTasks の使用を最大 8 に抑えます。

  2. フルロード中のワークロードが高い場合は、レプリケーションインスタンスに割り当てられるディスク容量を増やします。これにより、レプリケーションインスタンスは割り当てられた IOPS を最大限に利用できます。

上記のガイドラインは考えられるすべてのシナリオをカバーしているわけではありません。レプリケーションインスタンスのサイジングを行う際は、特定のユースケースの詳細を考慮することが重要です。

上記のテストにより、CPU とメモリはワークロードによって異なることが明らかになっています。具体的には、LOB はメモリに影響し、タスク数や並列処理は CPU に影響します。移行の実行後、レプリケーションインスタンスのCPU、解放可能なメモリ、空きストレージ、IOPS をモニタリングします。収集したデータに基づいて、必要に応じてレプリケーション インスタンスのサイズを増減することができます。