type
status
date
slug
summary
tags
category
icon
password
书籍
理論
本質的な知識: データベースの移行方法とゼロダウンタイムの実現
CDC(Change Data Capture)とは、データベースにおける変更内容をリアルタイムで追跡し、記録する技術です。具体的には、データベースの更新、削除、挿入が行われたときに、その変更を検出し、記録します。
例で説明すると:
- ある顧客情報がデータベースに登録されているとします。
- その顧客の住所が変更された場合、CDCは「顧客情報が変更された」というデータの変更を検出します。
- この変更されたデータを、他のシステム(たとえば、データウェアハウスや別のデータベース)に即座に転送したり、同期させることができます。
CDCの利点:
- リアルタイム性: データベースの変更を即座に検出して転送できるので、データの同期がリアルタイムで行えます。
- 効率的なデータ移行: 完全なデータを移行するのではなく、変更があったデータだけを追跡するため、データ移行が効率的に行えます。
使用シーン:
- データの同期や、異なるシステム間でのデータのリアルタイム複製を行う場合に使われます。たとえば、AWS DMS(Database Migration Service)や、ETL(Extract, Transform, Load)処理でよく利用されます。
- ゼロダウンタイム移行: データベース移行において、ダウンタイムを最小限に抑えることが重要です。これには、データのリアルタイム同期や、**変更データキャプチャ(CDC)**技術が有効です。
- AWS Database Migration Service (AWS DMS):
- AWS DMSは、データベースの移行を行うために設計されたサービスで、変更データキャプチャ(CDC)を使って、ソースとターゲット間でリアルタイムの同期を実現します。
- 移行中でもデータベースは稼働し続け、最小限のダウンタイムで移行できます。
- AWS RDS for Microsoft SQL Server:
- RDS for SQL Serverは、フルマネージド型のデータベースサービスで、運用負担を減らしつつ、スケーラビリティや高可用性が確保されます。
- RDSへの移行には、AWS DMSを使用することで、ほぼゼロダウンタイムでの移行が可能です。
- レプリケーションとスキーマ変換:
- ネイティブのレプリケーションや、スキーマ変換ツール(AWS SCT)を使う方法もありますが、AWS DMSほど簡単にスケールするわけではなく、ダウンタイムのリスクがあります。
要点
- AWS DMSを利用することで、リアルタイムのデータ同期とゼロダウンタイムでのデータ移行を実現できる。
- これにより、ミッションクリティカルなシステムでも業務に支障をきたさずに移行を進めることができます。
実践
略
一問道場
問題 #229
トピック 1
ソリューションアーキテクトは、AWSに重要なMicrosoft SQL Serverデータベースを移行する計画を立てています。これらのデータベースはレガシーシステムであり、ソリューションアーキテクトはそれらをモダンなデータアーキテクチャに移行します。ソリューションアーキテクトは、ほぼゼロダウンタイムでデータベースを移行する必要があります。
どのソリューションがこれらの要件を満たすでしょうか?
A. AWSアプリケーションマイグレーションサービスとAWSスキーマ変換ツール(AWS SCT)を使用します。マイグレーション前にインプレースアップグレードを実行します。マイグレーション後、データをAmazon Aurora Serverlessにエクスポートします。切り替え後、アプリケーションをAmazon Auroraにポイントします。
B. AWSデータベースマイグレーションサービス(AWS DMS)を使用してデータベースをリホストします。ターゲットとしてAmazon S3を設定します。変更データキャプチャ(CDC)レプリケーションを設定します。ソースとターゲットが完全に同期されたら、データをAmazon S3からAmazon RDS for Microsoft SQL Server DBインスタンスにロードします。
C. ネイティブのデータベース高可用性ツールを使用します。ソースシステムをAmazon RDS for Microsoft SQL Server DBインスタンスに接続します。レプリケーションを設定します。データレプリケーションが完了したら、ワークロードをAmazon RDS for Microsoft SQL Server DBインスタンスに移行します。
D. AWSアプリケーションマイグレーションサービスを使用します。データベースサーバーをAmazon EC2でリホストします。データレプリケーションが完了したら、データベースを切り離し、Amazon RDS for Microsoft SQL Server DBインスタンスに移動します。データベースを再接続し、ネットワーキングを切り替えます。
解説
この問題の解説は以下の通りです。
要件:
- ほぼゼロダウンタイムでデータベースを移行する。
- 重要なMicrosoft SQL ServerデータベースをAWSに移行し、モダンなデータアーキテクチャに対応させる。
選択肢ごとに解説します。
A. AWSアプリケーションマイグレーションサービスとAWSスキーマ変換ツール(AWS SCT)を使用する
- AWS Application Migration Serviceは、サーバーやアプリケーションをAWSに移行するためのサービスであり、データベース移行には必ずしも最適ではありません。
- AWS Schema Conversion Tool(SCT)はデータベースのスキーマ変換を支援しますが、実際のデータ移行やゼロダウンタイムの要件には不向きです。
- Aurora Serverlessへのエクスポートは、従来のSQL ServerからAuroraへの移行において問題が多く、最適ではありません。
不適切です。
B. AWS DMSを使用してデータベースをリホストする
- *AWS Database Migration Service(AWS DMS)は、データベースの移行に特化したサービスで、特に変更データキャプチャ(CDC)**を使用して、リアルタイムでデータの同期を行うことができます。
- S3をターゲットに設定し、同期が完了した後に、Amazon RDS for SQL Serverへロードすることで、ほぼゼロダウンタイムで移行できます。
- この方法は、データベースの移行作業を中断せず、ダウンタイムを最小限に抑えるための最適な方法です。
適切です。
C. ネイティブのデータベース高可用性ツールを使用
- ネイティブのデータベース高可用性ツール(例えばSQL Serverのレプリケーション)は、SQL Serverに組み込まれた機能を使用して移行する方法です。
- これにより、データベースを同期することができますが、AWSへの移行にはAWS固有のサービス(例えばRDS)が必要です。
- さらに、データベースの接続を切り替える際にダウンタイムが発生する可能性があります。
不適切です。
D. AWSアプリケーションマイグレーションサービスを使用してEC2にリホスト
- AWSアプリケーションマイグレーションサービスを使ってEC2インスタンスにリホストし、レプリケーションを行う方法です。最終的にRDSに移行しますが、この方法では一度EC2上で動かしてから切り替えを行うため、ダウンタイムのリスクがあります。
- この方法ではゼロダウンタイムを実現するのが難しく、効率的な方法ではありません。
不適切です。
結論:
Bが最適です。AWS DMSを使うことで、データベースをリアルタイムで同期させ、ほぼゼロダウンタイムで移行することができます。
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/172d7ae8-88e2-8081-ae93-d29a3c57e311
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章