レプリケーションインスタンス用に最適なサイズを選択する - AWS Database Migration Service

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

レプリケーションインスタンス用に最適なサイズを選択する

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

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

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

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

考慮すべき要素

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

  • Database とテーブルのサイズ

    データ量は、全負荷時のパフォーマンスを最適化するためのタスク構成を決定するのに役立ちます。たとえば、1 TB のスキーマが 2 つある場合、テーブルを 500 GB の 4 つのタスクに分割し、それらをparallel 実行できます。可能な並列処理は、レプリケーションインスタンスで利用可能な CPU リソースによって異なります。そのため、データベースとテーブルのサイズを把握して、全ロードパフォーマンスを最適化するとよいでしょう。実行できるタスクの数を決定するのに役立ちます。

  • 大容量オブジェクト

    移行範囲に存在するデータタイプはパフォーマンスに影響する可能性があります。特に、ラージオブジェクト (LOB) はパフォーマンスとメモリ消費に影響します。LOB 値を移行するにはAWS DMS2 ステッププロセスを実行します。ファーストAWS DMSLOB 値なしで行をターゲットに挿入します。第二に、AWS DMSLOB 値で行を更新します。これはメモリに影響を与えるため、ソース内の 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 DMSLOB をメモリ内で処理します。この操作にはかなりの量のメモリが必要です。

    • タスクの数とスレッドの数は、CPU の消費量に影響します。8個以上使用しないでくださいMaxFullLoadSubTasks全ロード運転中。

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

前述のガイドラインは、考えられるすべてのシナリオを網羅しているわけではありません。レプリケーションインスタンスのサイズを決定する際に、特定のユースケースの詳細を検討することが重要です。

前述のテストでは、CPU とメモリはワークロードによって異なることが分かりました。特に LOB はメモリに影響し、タスク数または並列処理は CPU に影響します。移行が実行されたら、レプリケーションインスタンスの CPU、空きメモリ、空き領域、および IOPS を監視します。収集したデータに基づいて、必要に応じてレプリケーション インスタンスのサイズを増減することができます。