Amazon Web Services ブログ

Azure SQL Managed Instance から AWS への SQL Server データベースの移行

Azure SQL Managed Instance から Amazon Web Services (AWS) の SQL Server へ、Azure SQL Managed Instance のコピーのみのバックアップを使用して Microsoft SQL Server データベースを移行できることをご存知ですか?この方法を使用すると、データベース内のすべてのオブジェクトをコピー/移動するため、手順は簡単で、すべてのエディションをサポートします。ただし、この方法はフルバックアップとリストアのみをサポートし、差分バックアップやトランザクションログのバックアップはサポートしていないことに注意してください。移行中の変更差分をキャプチャするために使用できる方法は他にもあります。
このブログ記事では、Azure SQL Managed Instance の最新機能である SQL Server 2022 へのバックアップの移植性も含め、SQL Server データベースを Azure SQL Managed Instance から AWS の SQL Server に移行するさまざまな方法について説明します。

Azure SQL Managed Instance から AWS への移行の理由

Azure SQL Managed Instance は最新の SQL Server 2022 データベースエンジンと互換性のあるフルマネージドプラットフォームですが、SQL Server 2022 のコピーのみのバックアップを使用して AWS に移行する利点があります。まず、インフラストラクチャのより高い柔軟性と管理を提供します。ニーズに最適なインスタンスタイプ、ストレージオプション、ネットワーク構成を選択できます。追加のソフトウェアをインストールしたり、特定のパフォーマンス最適化を適用したり、環境全体をより細かく制御できます。もう一つの重要な側面はコスト削減です。Amazon Elastic Compute Cloud (Amazon EC2) 上の SQL Server に移行することで、ライセンスコストを節約し、Amazon EC2 の高可用性オプションを活用できる可能性があります。

Azure SQL Server Managed Instance から AWS への移行には、以下の 3 つの異なる方法があります。

  • SQL Server のバックアップと復元 (COPY_ONLY)
  • AWS Database Migration Service (AWS DMS)
  • SQL Server インポートおよびエクスポートウィザード

ソリューション概要

図 1 のソリューションアーキテクチャ図は、SQL Server データベースを AWS に移行する 3 つの方法を示しています。

Figure 1Azure SQL Managed Instance to SQL Server on AWS Migration options

図 1 : Azure SQL Managed Instance から AWS 上の SQL Server への移行オプション

Azure SQL Managed Instance から AWS への移行には、複数のオプションがあります。Amazon EC2 上の SQL Server または Amazon Relational Database Service (Amazon RDS) for SQL Server に移行できます。表 1 は、このブログ記事で説明している 3 つの移行オプションの機能を比較したものです。課題と利点を理解することで、ニーズに適した方法を判断し、全体的な移行目標と整合させることができます。

表 1 : Azure SQL Managed Instanceと AWS オプションの比較

* 詳細は AWS DMS のドキュメントを参照してください。

前提条件

  • Azure ストレージアカウント
  • Azure SQL Managed Instanceでホストされている SQL Server ソースデータベース
  • Amazon EC2 上の SQL Server 2022 があるアクティブな AWS アカウント
  • AWS と Azure 間のネットワーク接続 (VPN、プライベートネットワーク、インターネット)
  • SQL Server Management Studio (バージョン 19.0.1 以降)

方法 1. SQL Server のコピーのみのバックアップを使用した移行

Azure SQL Managed Instance から Amazon EC2 上の SQL Server へのデータベースの移行は、Azure SQL Managed Instance のコピーのみのバックアップを使用して実行できます。この方法を利用すると、Azure のマネージドインスタンス から SQL Server 2022 インスタンス (Enterprise、Developer、Standard エディション) へ、データベースオブジェクトを含むすべてのデータベースを簡単にコピーまたは移動できます。この移行方法では、フルバックアップとリストアのみをサポートしており、差分バックアップやトランザクションログバックアップはサポートしていません。ソース SQL Server から AWS 上のターゲット SQL Server へ、SQL Server のログインを転送する必要があります。

: Azure SQL Managed Instance のコピーのみのバックアップ方法は Transparent Data Encryption (TDE) をサポートしていません。移行前に、ソースの SQL Server データベースと証明書をバックアップし、TDE を無効にします。TDE を無効にすると、リソースを大量に消費する操作になる可能性があります。このアクティビティはピーク時以外に計画してください。移行後に Amazon EC2 上の SQL Server データベースで TDE を有効にすることができます。

ソースとターゲットの SQL Server データベースが接続されていることを確認してください。Amazon EC2 からソースの Azure SQL Server Managed Instance に接続してバックアップを実行できます。

移行を実行する手順は次のとおりです。

1.1. Azure portal にログインし、Azure ストレージアカウントに移動します。

1.2. 図 2 に示すように、Azure ストレージアカウントに Azure BLOB ストレージコンテナーを作成します。

Create Container in Azure Blob storage

図 2 : Azure BLOB ストレージでのコンテナーの作成

1.3. 図 3 に示すように、Azure ストレージコンテナー用の Shared Access Signature (SAS) トークンを作成する必要があります。

Create Shared access token for storage container

図 3 : ストレージコンテナの共有アクセストークンの作成

1.4. 次に、SQL Server Management Studio (SSMS) を使用して、 Azure SQL Server Managed Instance に接続します。手順 1.3 の SAS トークンを使用して、図 4 のスクリプトを使用して Azure BLOB Storage へのアクセスを許可する認証情報を作成します。

CREATE CREDENTIAL [https://sqlbackup02142023.blob.core.windows.net/sqlbackup] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET ='sp=sssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’

図 4 : 認証情報の作成

1.5. 認証情報を作成したら、図 5 のスクリプトを使用して、COPY_ONLY バックアップコマンドを実行し、 Azure BLOB Storage にデータベースの完全バックアップを実行する必要があります。Azure SQL Managed Instanceでは、バックアップコマンドの COPY_ONLY オプションのみが提供されています。

BACKUP DATABASE [AzureSQLMIBackuptest] TO URL = 'https://sqlbackup02142023.blob.core.windows.net/sqlbackup/AzureSQLMIBackupfulll.bak' WITH COPY_ONLY

図 5 : COPY_ONLY を使用したデータベースのバックアップ

1.6. SSMS を使用して Amazon EC2 上の移行先 SQL Server 2022 に接続し、Azure SQL Blob ストレージ用の図 6 のスクリプト (手順 1.3 で作成した共有アクセストークンを使用する) を使用して認証情報を作成できます。

CREATE CREDENTIAL [https://sqlbackup02142023.blob.core.windows.net/sqlbackup] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET ='sp=sssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’

図 6 : Amazon EC2 上のターゲット SQL Serverで認証情報を作成

1.7. 認証情報が作成されたら、Amazon EC2 上の SQL Server の宛先で、図 7 のスクリプトを使用して restore database コマンドを実行する必要があります。

RESTORE DATABASE AzureSQLMIBackuptest
FROM URL = 'https://sqlbackup02142023.blob.core.windows.net/sqlbackup/AzureSQLMIBackupfull.bak'
WITH
MOVE 'data_0' TO 'C:\MSSQL\DATA\AzureSQLMIBackuptest_data_0.mdf',
MOVE 'log' TO 'C:\MSSQL\DATA\AzureSQLMIBackuptestlog.ldf',
MOVE 'XTP' TO 'C:\MSSQL\DATA\AzureSQLMIBackuptest_xtp.xtp'

図 7 : Amazon EC2 上のターゲット SQL Server へのデータベースのリストア

1.8. 次に、図8に示すように、Amazon EC2上のターゲット SQL Server で SSMS を使用して、リストアされたデータベースが利用可能であることを検証します。

Figure 8 Azure SQL Managed Instance restored on SQL Server on EC2

図 8 : EC2 上の SQL Server にリストアされた Azure SQL Managed Instance

SQL Server のバックアップとリストアの方法はフルバックアップのみを提供するため、この方法ではデータベースのサイズに応じてダウンタイムが必要になります。

方法2. AWS DMS を使用した移行

Azure SQL Server Managed Instance データベース上でミッションクリティカルなワークロードを実行していて、ダウンタイムを最小限に抑えて AWS に移行する必要がある場合は、AWS Database Migration Service (AWS DMS) を使用できます。AWS DMS は、SQL Server のバックアップとリストア方法と組み合わせて、Azure SQL Managed Instance から Amazon EC2 上の SQL Server へ SQL Server データベースを移行できます。

AWS DMS を使用することで、Azure SQL Managed Instance から Amazon RDS for SQL Server へのダウンタイムを最小限に抑えたフルロードや変更データキャプチャ (Change Data Capture、CDC) によるマイグレーションができます。

AWS DMS は変更の追跡に MS-Replication または MS-CDC を使用します。 詳細は AWS DMS のドキュメントを確認してください。

AWS DMS を使用した移行の手順は以下のとおりです。

2.1. まず、図 9に示すように、ソースの Azure SQL Server Managed Instance データベースとテーブルで CDC を有効にします。

Figure-9-Enable-CDC-for-Azure-SQL-Server-Managed-Instance-source-database

図 9 : Azure SQL Server Managed Instance ソースデータベースの CDC の有効化

2.2. 次に、図 10に示すように、AWS DMS レプリケーションインスタンスを作成します。

Figure 10 Create replication instance in AWS DMS

図 10 : AWS DMS でレプリケーションインスタンスの作成

2.3. ソースエンドポイントとして Azure SQL Managed Instance を作成する必要があります。「エンドポイント設定」コンソール画面で「接続のテスト」を選択することで、ソースエンドポイントからレプリケーションインスタンスへの接続性をテストできます。接続性が正しく設定されていることを確認してください。詳細は AWS DMS のドキュメントを参照してください。

Figure 11. AWS DMS Endpoint configuration for Azure SQL Managed Instance as source

図 11 : Azure SQL Managed Instance をソースとした AWS DMS エンドポイント設定

2.4. ソースエンドポイントが作成された後、ターゲットの SQL Server エンドポイントを作成します。 次に、図12に示すように、「エンドポイント設定」コンソール画面の「接続テスト」を選択することで、ターゲットエンドポイントからレプリケーションインスタンスへの接続性をテストします。 接続性が正しく設定されていることを確認してください。

Figure 12 AWS DMS endpoint configuration for SQL Server on EC2 as destination

図 12 : EC2 上の SQL Server をターゲットとした AWS DMS エンドポイント設定

2.5. AWS DMS タスクを作成するには、手順 2.3 と 2.4 で設定したソースからターゲットへのエンドポイントを選択します。図 13 に示すように、継続的なレプリケーションのために「既存のデータを移行して、継続的な変更をレプリケートする」移行タイプを選択します。

Figure 13. AWS DMS Migration task configuration

図 13 : AWS DMS マイグレーションタスクの設定

2.6. 次のステップはレプリケーションタスクをモニタリングすることです。図 14 は AWS DMS タスクの進捗を示しています。両方のデータベースが同期されたら、Amazon EC2 上のターゲット SQL Server への切り替え作業を実施し、ダウンタイムを最小限に抑えて移行を完了することができます。

Figure 14. AWS DMS migration task status progress report from DMS replication summary page

図 14 : DMS レプリケーション概要ページからの AWS DMS 移行タスクのステータス進捗レポート

この移行方法の詳細については、このブログ記事 AWS DMS を使用した SQL Server データベースの移行 をお読みください。

方法3. SQL Server インポートおよびエクスポートウィザードを使用した移行方法

Azure SQL Managed Instance から Amazon EC2 上の SQL Server への移行に、SQL Server のインポートおよびエクスポートウィザードを使用できます。これは、小規模なデータベースを使用している場合や、部分的なデータ移行を実行したい場合、移行中にデータ変換を必要とする場合に適しています。

ソースとターゲットの SQL Server データベース間の接続性を確保する必要があります。 Amazon EC2 からソースの Azure SQL Server Managed Instance に接続して、手順を実行できます。

SQL Server インポートおよびエクスポート ウィザードを使用して移行する手順は次のとおりです。

3.1. SQL Server Management Studio(SSMS)を使用して、Azure SQL Managed Instanceに接続します。

3.2. ソースデータベースを右クリックし、[タスク] – [データのエクスポート] を選択します。 図 15 に示すように、Microsoft OLE DB Driver for SQL Server を使用して、Azure SQL Managed Instance の接続詳細を指定します。

Figure 15. Choose source for SQL Server Import and Export Wizard

図 15: SQL Server インポートおよびエクスポート ウィザードのソースの選択

3.3. 次に、図16 に示すように、ターゲットサーバーとして Amazon EC2 上の SQL Server 2022 の接続情報を指定します。

Figure 16 Choose destination for SQL Server Import and Export Wizard

図 16 : SQL Server インポートおよびエクスポート ウィザードのターゲットの選択

3.4. ソース接続とターゲット接続の両方をテストし、接続が機能していることを確認してください。

3.5. 移行するソーステーブルとビューを選択し、マッピングが期待どおりであることを確認して、データを移行するためにOKをクリックしてください。

Figure 17 SQL Server Import and Export Wizard progress report

図 17 : SQL Server インポートおよびエクスポート ウィザードの進捗レポート

3.6. SSMSを介してターゲットのSQL Serverに接続することで、インポート後のデータを検証してください。アプリケーションをテストおよび検証し、期待どおりに機能していることを確認してください。

この移行方法の詳細については、他の方法による SQL Server データのインポートとエクスポートの一括コピーのセクションをご確認ください。

まとめ

このブログ記事では、Azure SQL Server Managed Instance から Amazon EC2 上の SQL Server への移行について、3つの異なるオプションを紹介しました。 SQL Server 2022 のネイティブなバックアップとリストア機能を利用して、AWS 上の SQL Server 2022 へ移行することができます。 ダウンタイムを最小限に抑えたニアリアルタイムの移行を実現したい場合は、AWS DMS の利用を検討してください。 小規模なデータベースや、テーブル、ビューなどの特定のオブジェクトの部分的な移行を実行したい場合は、SQL Server インポートおよびエクスポートウィザードの利用を検討してください。

Azure SQL Managed Instance から AWS への SQL Server データベースの移行でダウンタイムを最小限に抑えるには、AWS Marketplace CloudBasic を利用することもできます。

その他の方法を使用した SQL Server の移行に関する詳細は、オンプレミスのMicrosoft SQL Server データベースを Amazon RDS for SQL Server に移行する(英文) をご覧ください。

SQL Server ワークロードの移行およびモダナイゼーションのオプションを現在評価している場合、SQL Server 2022 を含め、お問い合わせください。SQL Server の計画と活動を支援させていただきます。


AWS は、お客様がクラウドを最大限に活用する方法を評価するご支援をします。AWS は数百万のお客様からご信頼いただき、最も重要なアプリケーションをクラウドに移行しモダナイズするためにご利用いただいています。Windows Server または SQL Server のモダナイゼーションの詳細については、 Windows on AWS をご覧ください。今すぐ移行を開始するには、こちらからお問い合わせください。

Yogi Barot

Yogi Barot

Yogi はプリンシパルソリューションアーキテクトであり、さまざまなマイクロソフトテクノロジーを扱った 22 年の経験があります。彼女の専門は SQL Server とさまざまなデータベーステクノロジーです。Yogi には AWS でのマイクロソフトワークロードの実行に関する深い知識と専門知識があります。

Rita Ladda

Rita Ladda

Rita Ladda は、アマゾン ウェブ サービスのマイクロソフト スペシャリスト シニアソリューション アーキテクトであり、多くのマイクロソフトテクノロジーで 20 年以上の経験があります。 彼女は、SQL Server およびその他のデータベースのデータベース ソリューションの設計を専門としています。 彼女は、Microsoft ワークロードの AWS への移行とモダナイゼーションにおけるアーキテクチャに関するガイダンスを顧客に提供しています。

この記事の翻訳はソリューションアーキテクトの平良允俊が担当しました。原文はこちらです。