データベース移行とは何ですか?
データベース移行とは何ですか?
データベース移行は、データベースをある環境から別の環境に移行するプロセスです。企業がアプリケーションをモダナイズしようとすると、関連するデータベースをオンプレミスのサーバーからクラウドに移行します。
データベースをクラウドに移行することで、企業はサービスの信頼性、スケーラビリティ、パフォーマンスを向上させることができます。さらに、クラウドデータ移行により、オンプレミスデータセンターの維持にかかるインフラストラクチャコストが削減されます。
データボリュームをクラウドに移行することは、データの整合性、コンプライアンス、およびビジネス継続性を確保するために重要です。以下の点を考慮してください。
予算
データ移行には、データ監査、マッピング、テスト、移行後の監視などのタスクが含まれます。データベースにアクセスするアプリケーションは、移行されたデータベースからデータを読み取る前に変更が必要な場合があります。企業はこのような作業に必要な時間、コスト、リソースを見積もって予算を立てる必要があります。
ダウンタイム
データベースを移行するときは、ソースターゲットと宛先ターゲットを切り替えるときにダウンタイムを計画します。ダウンタイムをゼロにすることは不可能ですが、移行を計画し、適切なデータベース移行ツールを使用することで、ビジネスの中断を軽減できます。たとえば、スイッチオーバーのずっと前にクラウドデータベースをテストして、アプリケーションの信頼性とデータの正確性を確保できます。
ソースシステムとターゲットシステム
同種転送では、同様のデータベースエンジンを持つソースシステムからターゲットシステムにデータを移動します。これとは対照的に、別のターゲットプラットフォームへのデータ移動は、異種間転送と呼ばれます。たとえば、MySQL データベースを MySQL データベースに移行することは同種ですが、Postgres SQL を Amazon Aurora に移行することは異種です。同種転送は、追加の操作なしにデータベースを宛先ターゲットに移行できるため、より簡単です。ただし、異種間移行が含まれる場合、データベースアーキテクトはデータを転送する前にデータをクリーンアップして変換する必要があります。
移行のタイプ
データベース移行には次のタイプがあります。
- 部分移行では、データセット全体の一部のみが元のデータベースからクラウドに移動します。
- データベースを完全に移行すると、すべてのデータがソースプラットフォームからターゲットプラットフォームに転送されます。
いずれかの転送後、ソースデータベースはアプリケーションから切断されます。移行のもう 1 つのタイプは、継続的な移行またはデータのレプリケーションです。ソースデータベースからターゲットデータベースにデータを無期限にコピーします。
データベース移行のタイプにはどのようなものがありますか?
移行する前に、どのようなタイプの移行がユースケースに最も適しているかを検討してください。
オフライン移行
オフライン移行は、大幅なダウンタイムを許容できる重要度の低いデータベースを移行する場合に適しています。オフライン移行を実行する場合、アプリケーションによるデータベースへの書き込みを一定期間停止する必要があります。このタイムギャップにより、データベースアーキテクトはデータベースをクラウドにリフトアンドシフトし、アプリケーションを変更できます。通常、企業はクラウド移行ツールでサポートされていないレガシーシステムをモダナイズする際にオフライン移行を選択します。同様に、オフラインデータベース移行は、タイムリーなデータ更新が重要ではないテストおよび開発プロジェクトに最適です。
オンプレミスの Oracle データベースを Amazon RDS for Oracle に移行する例を見てみましょう。異なるインフラストラクチャでホストされているにもかかわらず、どちらのデータベースも同様のエンジンを共有しています。そのため、以下で説明するように、データ移行プロセスは簡単です。
ステップ 1 — ネットワーク接続を確立する
安全なネットワークを使用して、オンプレミスデータベースを AWS クラウドに接続します。仮想プライベートネットワークを設定するか、AWS Direct Connect を使用してオンプレミスからクラウドへの接続を有効にすることができます。AWS Direct Connect を使用すると、パブリックインターネットを経由せずにデータベースを直接接続できます。
ステップ 2 — アプリケーションの書き込みを停止する
ターゲットデータベースが予期せず変更されないようにするには、アプリケーションによるソースデータベースへの書き込みを停止します。
ステップ 3 — オンプレミスからクラウドへのデータ転送
次に、ネイティブデータ転送ツールをクラウドサーバーにデプロイします。コストを削減するには、Amazon EC2 でツールを設定することをお勧めします。 この方法では、ネイティブデータベースツールの実行に使用されたリソースに対してのみ支払いが発生します。次に、ツールを使用してソースデータベースからデータを抽出し、クラウドデータベースに復元します。
ステップ 4 — データベースのスイッチオーバーを実行する
データベース全体をクラウドに転送したら、検証してデータ整合性を確保します。次に、すべてのデータクエリをアプリケーションから新しいデータベースにリダイレクトします。
本番環境のワークロードの移行
本番環境のワークロードを移行するには、重要でないデータベースの移行とは異なるアプローチが必要です。プロダクションワークロードとそのデータソースをオフラインにすることはできません。データ転送中であっても、ユーザーは通常どおりサービスにアクセスできる必要があります。そのため、アプリケーションをシャットダウンせずに移行できるようにするには、十分な計画と調整が必要です。
アーキテクトは、自社開発のスクリプトまたはサードパーティのデータレプリケーションツールを使用して、本番環境のワークロード向けにデータベースを移行します。スクリプトまたはツールは、オンプレミスデータベースからクラウドデータベースにデータをレプリケートします。データのレプリケーションが実行されている間、オンプレミスデータベースは動作し続けます。
ソフトウェア開発者が新しいデータ要件や継続的なデータ要件に対応するようにスクリプトを修正すると、問題が発生します。さらに、データベースを正常に移行するには、使用しているサードパーティのデータベースツールを更新する必要がある場合があります。
オンラインデータベースのレプリケーション
データベースをレプリケートするには、新しいデータベースエンジンでデータベーススキーマを設定するスクリプトを作成し、ソースからターゲットデータベースにデータを転送します。スキーマには、関連性のあるデータベースにデータを保存して配置するための定義が含まれています。エンジニアは、サードパーティのデータレプリケーションツールを使用して、さまざまなサーバー間で複数のデータコピーを作成および管理できます。どちらのアプローチも、かなりの手動操作が必要で、間違いが起こりやすく、非効率的である可能性があるため、同じように困難です。
データベースをより効率的かつ安全にオンラインでレプリケートしたい場合は、AWS Database Migration Service (DMS) を検討してください。 さまざまなデータベースエンジン間でのデータベース移行を自動化するクラウドサービスです。データ転送を手動でスクリプト化する代わりに、DMS を使用して元のデータベースのスキーマを自動的にスキャンし、ターゲット用の新しいスキーマを作成できます。これにより、開発者は面倒なデータベース管理ではなく、アプリケーションの革新に集中できます。
以下では、オンプレミスのデータベースをクラウドにレプリケートする方法を紹介します。
ステップ 1 — 既存のデータのインベントリ作成
現在オンプレミスでホストされているデータベースを分析します。プロセスを加速するには、AWS DMS Fleet Advisor を使用してください。このツールは、既存のデータベースと分析サーバー群を分析し、考えられる移行パスを特定します。また、パフォーマンス、スキーマ、使用パターン、その他のメトリクスもコンパイルします。
ステップ 2 — データベースをクラウドに移行する
AWS DMS を使用して、データベース全体をオンプレミスのデータセンターからクラウドに移行します。さらに、DMS の変更データキャプチャ (CDC) モードをオンにして、ほぼリアルタイムのレプリケーションを有効にできます。CDC を使用すると、DMS は元のデータベースで発生したデータ変更をキャプチャし、レプリケートされたすべてのデータベースに変更を適用します。
データベースのリファクタリング
場合によっては、データベース移行戦略にリファクタリングまたは異種間転送が含まれます。企業は、ライセンスコストの削減、クラウド機能へのアクセス、データ品質の向上など、いくつかの理由でアプリケーションをモダナイズする際にデータベースをリファクタリングします。 異種間移行では、ソースデータベースに保存されている情報をそのまま移行することはできません。データは、ターゲットデータベースがサポートする新しいスキーマに従ってクリーニング、変換、および構造化する必要があります。
以下は、データベースをリファクタリングするのに役立つステップです。
ステップ 1 — データベースを監査する
オンプレミスデータベースを分析し、データの保存に使用されるスキーマを特定します。現在のデータを新しいデータベースにどのように保存するかを計画します。データベースのリファクタリングでは、複数のデータベースを 1 つに統合したり、1 つのデータベースから複数のデータベースにデータを分散したりすることがあります。
ステップ 2 — データベーススキーマの変換
ソースデータベースからコンパイルされたスキーマを、ターゲットデータベースに必要な形式に変換します。AWS DMS Schema Conversion を使用してプロセスを合理化できます。
注: データベースエンジニアは、特に非常に複雑なデータセットの場合、新しいスキーマを手動で作成または変更する必要がある場合があります。
ステップ 3 — データベース移行を開始する
AWS DMS を使用してオンプレミスからクラウドデータベースにデータを移行します。クラウドデータベースが移行中のすべての変更をキャプチャするようにするには、CDC モードをオンにします。すべてのデータを転送したら、アプリケーションサービスをクラウドデータベースにリダイレクトします。
AWS はデータベース移行のニーズをどのようにサポートできますか?
企業はデータベースをクラウドに移行して、インフラストラクチャのコストを削減し、サービスの信頼性を高め、その他のクラウド機能を活用します。データベースの移行は、データベース全体をそのまま移植したり、新しいデータ要件を満たすようにスキーマ全体を再構築したりするのと同じくらい簡単です。移行の複雑さに関係なく、データを安全かつ正確に、かつ時間通りに移行することが不可欠です。ほぼリアルタイムのスイッチオーバー、データベース分析、自動データ転送などを可能にするマネージドツールについては、AWS Database Migration Service をご覧ください。