適用対象:Azure Virtual Machines 上の SQL Server
この記事では、Azure Migrate: Server Migration ツールを使用して、SQL Server Always On 可用性グループを Azure 仮想マシン (VM) 上の SQL Server に移行する方法について説明します。 移行ツールを使用すると、可用性グループ内の各レプリカを、クラスター メタデータ、可用性グループメタデータ、およびその他の必要な高可用性コンポーネントと共に、SQL Server をホストする Azure 仮想マシンに移行できます。
この記事では、次のことについて説明します。
- Azure とソース環境を移行に向けて準備します。
- サーバーのレプリケートを開始します。
- レプリケーションを監視します。
- 完全なサーバーの移行を実行します。
- AlwaysOn 可用性グループを再構成します。
このガイドでは、任意のサーバーまたは仮想マシンを物理サーバーとして扱う Azure Migrate のエージェントベースの移行アプローチを使用します。 物理マシンを移行する場合、Azure Migrate: Server Migration では、Azure Site Recovery サービスのエージェント ベースのディザスター リカバリーと同じレプリケーション アーキテクチャが使用され、一部のコンポーネントは同じコード ベースを共有します。 一部のコンテンツは、Site Recovery のドキュメントにリンクされている場合があります。
前提条件
このチュートリアルを開始する前に、以下の前提条件を完了している必要があります。
- Azure サブスクリプション。 必要に応じて、無料アカウントを作成します。
- 
              Azure PowerShell Azモジュールをインストールします。
- GitHub リポジトリから PowerShell サンプル スクリプトをダウンロードします。
Azure を準備する
Server Migration ツールを使用した移行に向けて Azure を準備します。
| タスク | 詳細 | 
|---|---|
| Azure Migrate プロジェクトの作成 | Azure アカウントには、新規プロジェクトを作成するために共同作成者または所有者のアクセス許可が必要です。 | 
| Azure アカウントのアクセス許可の確認 | Azure アカウントには、Key Vault の作成、VM の作成、Azure マネージド ディスクへの書き込みには、次のアクセス許可が必要です。Azure サブスクリプションに対する共同作成者または所有者のアクセス許可、Microsoft Entra ID (旧称 Azure Active Directory) にアプリを登録するためのアクセス許可、および Azure サブスクリプションに対するユーザー アクセス管理者のアクセス許可。 | 
| Azure Virtual Network の設定 | Azure 仮想ネットワークをセットアップします。 Azure にレプリケートすると、Azure VM が作成され、移行の設定時に指定した Azure 仮想ネットワークに参加します。 | 
適切なアクセス許可を持っているか確認するには、次の手順に従います。
- Azure portal でサブスクリプションを開き、 [アクセス制御 (IAM)] を選択します。
- [アクセスの確認] で関連するアカウントを探し、それを選択してアクセス許可を表示します。
- 
              共同作成者または所有者のアクセス許可を持っている必要があります。
- 無料の Azure アカウントを作成したばかりであれば、自分のサブスクリプションの所有者になっています。
- サブスクリプションの所有者でない場合は、所有者と協力してロールを割り当てます。
 
アクセス許可を割り当てる必要がある場合は、「Azure ユーザー アカウントを準備する」の手順に従います。
移行を準備する
サーバーの移行を準備するには、物理サーバーの設定を確認し、レプリケーション アプライアンスをデプロイする準備を行います。
マシンの要件を確認する
Azure に移行するには、ソース マシンが要件に準拠していることを確認します。 次の手順に従います。
- サーバーの要件を確認します。
- Azure にレプリケートするソース マシンが、Azure VM の要件に準拠していることを確認します。
- 一部の Windows ソースでは、さらにいくつかの変更が必要です。 これらの変更を行う前にソースを移行すると、VM が Azure で起動しなくなる可能性があります。 一部のオペレーティング システムでは、これらの変更が Azure Migrate によって自動的に行われます。
レプリケーションの準備
Azure Migrate: Server Migration では、レプリケーション アプライアンスを使用してマシンを Azure にレプリケートします。 レプリケーション アプライアンスは、次のコンポーネントを実行します。
- 構成サーバー: 構成サーバーは、オンプレミスと Azure の間の通信を調整し、データのレプリケーションを管理します。
- プロセス サーバー:プロセス サーバーはレプリケーション ゲートウェイとして機能します。 レプリケーション データを受信し、それをキャッシュ、圧縮、暗号化によって最適化して、Azure のキャッシュ ストレージ アカウントに送信します。
次のようにして、アプライアンスのデプロイの準備をします。
- レプリケーション アプライアンスをホストするように Windows Server 2016 マシンを作成します。 マシンの要件を確認します。
- レプリケーション アプライアンスでは MySQL が使用されます。 アプライアンスに MySQL をインストールするためのいくつかの方法を確認します。
- パブリック クラウドおよび政府機関向けクラウドにアクセスするレプリケーション アプライアンスに必要な Azure URL を確認します。
- レプリケーション アプライアンスのポート アクセス要件を確認します。
Note
レプリケーション アプライアンスは、レプリケートまたは移行するソース マシン以外のマシンにインストールする必要があります。 Azure Migrate 検出および評価アプライアンスが以前にインストールされたコンピューターにはインストールしないでください。
レプリケーション アプライアンス インストーラーをダウンロードする
レプリケーション アプライアンス インストーラーをダウンロードするには、次の手順に従います。
- Azure Migrate プロジェクトの >[サーバー] の [Azure Migrate: Server Migration] で、[検出] を選択します。 ![VM の [検出] オプションのスクリーンショット。](media/availability-group-migrate/migrate-discover.png)  
- [マシンの検出]>[マシンは仮想化されていますか?] で、 [物理またはその他 (AWS、GCP、Xen など)] を選択します。 
- [ターゲット リージョン] で、マシンの移行先にする Azure リージョンを選択します。 
- [移行先のリージョンが <リージョン名> であることを確認してください] を選択します。 
- [リソースの作成] を選択します。 この操作により、バックグラウンドで Azure Site Recovery ボールトが作成されます。 - Azure Migrate: Server Migration を使用して移行が既に設定されている場合は、リソースが以前に設定されているため、ターゲット オプションを構成できません。
- このボタンの選択後は、このプロジェクトのターゲット リージョンを変更することはできません。
- 後続のすべての移行は、このリージョンに対して行われます。
 
- [新しいレプリケーション アプライアンスをインストールしますか?] で、 [レプリケーション アプライアンスのインストール] を選択します。 
- [レプリケーション アプライアンス ソフトウェアをダウンロードしてインストールする] で、アプライアンスのインストーラーと登録キーをダウンロードします。 アプライアンスを登録するには、キーをダウンロードする必要があります。 キーは、ダウンロード後 5 日間有効です。 
- アプライアンスの設定ファイルとキー ファイルを、アプライアンス用に作成した Windows Server 2016 マシンにコピーします。 
- インストールが完了すると、アプライアンス構成ウィザードが自動的に起動します (アプライアンス マシンのデスクトップに作成された cspsconfigtool ショートカットを使用して、ウィザードを手動で起動することもできます)。 ウィザードの [アカウントの管理] タブを使用して、次の詳細を含むダミー アカウントを作成します。 - フレンドリ名としての "guest"
- ユーザー名としての "username"
- アカウントのパスワードとしての "password"。
 - このダミー アカウントは、レプリケーションを有効にするステージで使用します。 
- セットアップが完了しアプライアンスが再起動した後に、 [マシンの検出] の [構成サーバーの選択] で新しいアプライアンスを選択し、 [登録の終了処理] を選択します。 登録の最終処理では、いくつかの最終的なタスクを実行して、レプリケーション アプライアンスを準備します。 
Mobility Service をインストールする
移行するサーバーに Mobility Service エージェントをインストールします。 エージェント インストーラーは、レプリケーション アプライアンス上で使用できます。 適切なインストーラーを見つけて、移行したい各マシンにエージェントをインストールします。
モビリティ サービスをインストールするには、次の手順に従います。
- レプリケーション アプライアンスにサインインします。 
- %ProgramData%\ASR\home\svsystems\pushinstallsvc\repositoryに移動します。
- マシンのオペレーティング システムとバージョンに合ったインストーラーを見つけます。 サポートされているオペレーティング システムを確認してください。 
- 移行したいマシンにインストーラー ファイルをコピーします。 
- アプライアンスをデプロイしたときに生成されたパスフレーズを持っていることを確認します。 - マシン上の一時テキスト ファイルにファイルを格納します。
- レプリケーション アプライアンスのパスフレーズを取得できます。 現在のパスフレーズを表示するには、コマンド ラインで C:\ProgramData\ASR\home\svsystems\bin\genpassphrase.exe -vを実行します。
- パスフレーズを再生成しないでください。 そうすると接続が切断され、レプリケーション アプライアンスを再登録する必要があります。
- 
              /Platformパラメーターで、VMwareVMware マシンと物理マシンの両方に VMware を指定します。
 
- マシンに接続し、インストーラー ファイルの内容をローカル フォルダー (c:\temp など) に抽出します。 管理者コマンド プロンプトで次のコマンドを実行します。 - ren Microsoft-ASR_UA*Windows*release.exe MobilityServiceInstaller.exe MobilityServiceInstaller.exe /q /x:C:\Temp\Extracted cd C:\Temp\Extracted
- モビリティ サービスのインストーラーを実行します。 - UnifiedAgent.exe /Role "MS" /Platform "VmWare" /Silent
- レプリケーション アプライアンスにエージェントを登録します。 - cd C:\Program Files (x86)\Microsoft Azure Site Recovery\agent UnifiedAgentConfigurator.exe /CSEndPoint <replication appliance IP address> /PassphraseFilePath <Passphrase File Path>
インストール後、検出されたマシンが Azure Migrate: Server Migration に表示されるまでに、いくらか時間がかかることがあります。 VM が検出されると、 [検出済みサーバー] の数が増えます。
              
               
              
              
            
ソース マシンを準備する
ソース マシンを準備するには、クラスター ノードで Get-ClusterInfo.ps1 スクリプトを実行して、クラスター リソースに関する情報を取得します。 このスクリプトは、ロール名、リソース名、IP、プローブ ポートを Cluster-Config.csv ファイルに出力します。
./Get-ClusterInfo.ps1
ロード バランサーの作成
クラスターとクラスター ロールが要求に適切に応答するには、Azure ロード バランサーが必要です。 ロード バランサーがないと、他の VM は、ネットワークまたはクラスターに属すると認識されないため、クラスターの IP アドレスに到達できません。
ロード バランサーを作成するには、次の手順に従います。
- 
              Cluster-Config.csvファイルの列に入力します。
| 列ヘッダー | 説明 | 
|---|---|
| NewIP | CSV ファイル内の各リソースの Azure 仮想ネットワーク (またはサブネット) の IP アドレスを指定します。 | 
| ServicePort | CSV ファイル内の各リソースで使用するサービス ポートを指定します。 SQL クラスター リソースの場合は、CSV のプローブ ポートと同じ値をサービス ポートに使用します。 他のクラスター ロールの場合、使用される既定値は 1433 ですが、現在のセットアップで構成されているポート番号を引き続き使用できます。 | 
- 次のパラメーターを使用して、Create-ClusterLoadBalancer.ps1スクリプトを実行して、ロード バランサーを作成します。
| パラメーター | タイプ | 説明 | 
|---|---|---|
| ConfigFilePath | 必須 | 前の手順で入力した Cluster-Config.csvファイルのパスを指定します。 | 
| ResourceGroupName | 必須 | ロード バランサーを作成するリソース グループの名前を指定します。 | 
| VNetName | 必須 | ロード バランサーを関連付ける Azure 仮想ネットワークの名前を指定します。 | 
| SubnetName | 必須 | ロード バランサーを関連付ける Azure 仮想ネットワーク内のサブネットの名前を指定します。 | 
| VNetResourceGroupName | 必須 | ロード バランサーを関連付ける Azure 仮想ネットワークのリソース グループの名前を指定します。 | 
| Location | 必須 | ロード バランサーを作成する場所を指定します。 | 
| LoadBalancerName | 必須 | 作成するロード バランサーの名前を指定します。 | 
./Create-ClusterLoadBalancer.ps1 -ConfigFilePath ./cluster-config.csv -ResourceGroupName $resourcegroupname -VNetName $vnetname -subnetName $subnetname -VnetResourceGroupName $vnetresourcegroupname -Location "eastus" -LoadBalancerName $loadbalancername
マシンをレプリケートする
今度は、移行の対象となるマシンを選択します。 最大 10 台のマシンをまとめてレプリケートできます。 レプリケートするマシンがそれより多い場合は、10 台をひとまとまりとして同時にレプリケートしてください。
マシンをレプリケートするには、次の手順に従います。
- Azure Migrate プロジェクト> サーバーの [Azure Migrate: サーバー移行] で [レプリケート] を選びます。 ![[移行ツール] の [Azure Migrate: Server Migration] で [レプリケート] ボタンが選択されている Azure Migrate の [サーバー] 画面のスクリーンショット。](media/availability-group-migrate/select-replicate.png)  
- [レプリケート]>[ソース設定]>[マシンは仮想化されていますか?] で、[物理またはその他 (AWS、GCP、Xen など)] を選択します。 
- [オンプレミスのアプライアンス] で、自分が設定した Azure Migrate アプライアンスの名前を選択します。 
- [プロセス サーバー] で、レプリケーション アプライアンスの名前を選択します。 
- [ゲストの資格情報] で、この記事で以前に「レプリケーション インストーラーのセットアップ」で作成したダミー アカウントを選択します。 その後、 [次へ: 仮想マシン] を選択します。 
- [仮想マシン] の [評価から移行設定をインポートしますか?] は、既定の設定である [いいえ。移行設定を手動で指定します] のままにしておきます。 
- 移行したい各 VM を確認します。 次に、 [次のステップ: ターゲット設定] をクリックします。 
- [ターゲット設定] で、サブスクリプションと、移行先となるターゲット リージョンを選択し、移行後に Azure VM が配置されるリソース グループを指定します。 
- 仮想ネットワークで、移行後に Azure VM が参加する Azure 仮想ネットワーク/サブネットを選択します。 
- [可用性オプション] で、以下を選択します。 - 可用性ゾーン。移行されたマシンをリージョン内の特定の可用性ゾーンにピン留めします。 このオプションを使用して、複数ノードのアプリケーション層を形成するサーバーを可用性ゾーン間で分散させます。 このオプションを選択した場合は、[コンピューティング] タブで選択した各マシンに使用する可用性ゾーンを指定する必要があります。このオプションは、移行用に選択されたターゲット リージョンが Availability Zones をサポートしている場合にのみ使用できます。
- 可用性セット。移行されたマシンを可用性セットに配置します。 このオプションを使用するには、選択されたターゲット リソース グループに 1 つ以上の可用性セットが必要です。
- [インフラストラクチャ冗長は必要ありません] オプション (移行されたマシンに対してこれらの可用性構成がいずれも不要な場合)。
 
- [Disk encryption type](ディスク暗号化の種類) で、以下を選択します。 - プラットフォーム マネージド キーを使用した保存時の暗号化
- カスタマー マネージド キーを使用した保存時の暗号化
- プラットフォーム マネージド キーとカスタマー マネージド キーを使用した二重暗号化
 - Note - カスタマー マネージド キー (CMK) を使用して仮想マシンをレプリケートするには、ターゲット リソース グループの下に ディスク暗号化セットを作成 する必要があります。 ディスク暗号化セット オブジェクトによって、SSE に使用する CMK を含む Key Vault にマネージド ディスクがマップされます。 
- [Azure ハイブリッド特典] で、 - Azure ハイブリッド特典を適用しない場合は、 [いいえ] を選択します。 [次へ] を選択します。
- アクティブなソフトウェア アシュアランスまたは Windows Server のサブスクリプションの対象となっている Windows Server マシンがあり、移行中のマシンにその特典を適用する場合は、 [はい] を選択します。 [次へ] を選択します。
 
- [コンピューティング] で、VM の名前、サイズ、OS ディスクの種類、および可用性構成 (前の手順で選択した場合) を確認します。 VM は Azure の要件に準拠している必要があります。 - [VM サイズ]: 評価の推奨事項を使用している場合は、[VM サイズ] ドロップダウン リストに推奨サイズが表示されます。 それ以外の場合は、Azure Migrate によって、Azure サブスクリプション内の最も近いサイズが選択されます。 または、 [Azure VM サイズ] でサイズを手動で選択します。
- OS ディスク: VM の OS (ブート) ディスクを指定します。 OS ディスクは、オペレーティング システムのブートローダーとインストーラーがあるディスクです。
- 可用性ゾーン:使用する可用性ゾーンを指定します。
- 可用性セット:使用する可用性セットを指定します。
 
- [ディスク] で、VM ディスクを Azure にレプリケートするかどうかを指定し、Azure でのディスクの種類 (Standard SSD か HDD、または Premium マネージド ディスク) を選択します。 [次へ] を選択します。 
- [レプリケーションの確認と開始] で設定を確認し、 [レプリケート] を選択して、サーバーの初期レプリケーションを開始します。 
Note
レプリケーションが開始される前であれば、 [管理]>[マシンのレプリケート] でレプリケーションの設定をいつでも更新できます。 レプリケーションの開始後は、設定を変更することができません。
追跡して監視する
レプリケーションは、次の順序で進められます。
- [レプリケート] を選択すると、"レプリケーションの開始" ジョブが開始されます。
- "レプリケーションの開始" ジョブが正常に終了すると、マシンで Azure への初期レプリケーションが開始されます。
- 初期レプリケーションが完了すると、差分レプリケーションが開始されます。 オンプレミスのディスクに対する増分変更は、Azure のレプリカ ディスクに定期的にレプリケートされます。
ジョブの状態は、ポータルの通知で追跡できます。
レプリケーションの状態を監視するには、Azure Migrate: Server Migration 内で [レプリケート中のサーバー] を選択します。
              
               
              
              
            
VM の移行
マシンがレプリケートされたら、移行の準備が整います。 サーバーを移行するには、次の手順に従います。
- Azure Migrate プロジェクト> サーバー> [Azure Migrate: サーバー移行] で、 [サーバーのレプリケート] を選択します。 ![[レプリケート中のサーバー] オプションのスクリーンショット。](media/availability-group-migrate/replicate-servers.png)  
- 移行されたサーバーが移行元サーバーと同期されるようにするには、SQL データをホストしているディスクがオンラインになっていることを確認しながら、可用性グループのすべてのレプリカで SQL Server サービスを停止します ( [SQL Server 構成マネージャー]>[サービス] の場合)。 
- レプリケーティングマシンで>サーバー名>概要を選択します。 次の手順に進む前に、移行するサーバーで SQL Server サービスを停止した後に、最後に同期されたタイムスタンプを確認してください。 このプロセスには数分しかかからなくなります。 
- [マシンのレプリケート] で VM > を右クリックし、[移行] を選択します。 
- [移行]>[仮想マシンをシャットダウンし、データ損失のない計画された移行を実行しますか] で、 [いいえ]>[OK] の順に選択します。 - Note - 物理サーバーの移行では、ソース マシンのシャットダウンは自動的にはサポートされません。 移行ウィンドウの一部としてアプリケーションを停止することをお勧めします (アプリケーションが接続を受け入れないようにします)。 次に、移行が完了する前に、移行を開始します (残りの変更を同期できるように、サーバーを実行し続ける必要があります)。 
- VM に対して移行ジョブが開始されます。 Azure 通知でジョブを追跡します。 
- ジョブが完了したら、 [仮想マシン] ページで VM を表示して管理できます。 
クラスターを再構成する
VM が移行されたら、次の手順に従ってクラスターを再構成します。
- Azure で移行されたサーバーをシャットダウンします。 
- 移行したマシンをロード バランサーのバックエンド プールに追加します。 [ロード バランサー]>[バックエンド プール] の順に移動します。 
- バックエンド プールを選択し、移行したマシンを追加します。 
- 移行したサーバーを Azure で起動し、任意のノードにサインインします。 
- Cluster-Config.csvファイルをコピーし、CSV をパラメーターとして渡して- Update-ClusterConfig.ps1スクリプトを実行します。 このスクリプトにより、クラスター リソースが Azure で動作するようにクラスターの新しい構成で更新されます。- ./Update-ClusterConfig.ps1 -ConfigFilePath $filepath
Always On 可用性グループの準備が整いました。
移行を完了する
- 移行が完了したら、VM > を右クリックして、[移行の停止] を選択します。 このコマンド: - オンプレミス マシンのレプリケーションを停止します。
- Azure Migrate: Server Migration の [サーバーをレプリケートしています] のカウントからマシンを削除します。Server Migration に関するエラーのトラブルシューティングに役立つ情報を提供しています。
- マシンのレプリケーション状態情報をクリーンアップします。
 
- Azure VM for Windows エージェントを、移行するマシンにインストールします。
- データベース接続文字列、および Web サーバー構成の更新など、移行後のアプリの微調整を実行します。
- Azure で現在実行されている移行後のアプリケーション上で、最終的なアプリケーションと移行の受け入れのテストを実行します。
- 移行された Azure VM インスタンスにトラフィックを切り替えます。
- ローカル VM インベントリからオンプレミスの VM を削除します。
- ローカル バックアップからオンプレミスの VM を削除します。
- Azure VM の新しい場所と IP アドレスを示すように内部ドキュメントを更新します。
移行後のベスト プラクティス
- SQL Server の場合:- SQL Server IaaS Agent 拡張機能 をインストールして、管理タスクを自動化します。
- Azure VM 上での SQL Server のパフォーマンスを最適化します。
- Azure での SQL Server の価格を把握します。
 
- 復元性の向上:- Azure Backup サービスを使用して、Azure VM をバックアップすることで、データの安全性を保持します。
- Azure VM を Site Recovery のセカンダリ リージョンにレプリケートし、継続的にワークロードを実行して利用可能にします。
 
- セキュリティの強化:- Microsoft Defender for Cloud のジャスト イン タイム管理を利用し、インバウンド トラフィック アクセスをロックダウンし、制限します。
- ネットワーク セキュリティ グループを使用して、ネットワーク トラフィックを管理エンドポイントに制限します。
- Azure Disk Encryption をデプロイして、ディスクをセキュリティ保護し、盗難や不正アクセスからデータを安全に保護します。
- IaaS リソースのセキュリティ保護に関する詳細を読み、Microsoft Defender for Cloud を確認してください。
 
- 監視と管理:- リソースの使用状況と支出を監視するために 、Microsoft Cost Management をデプロイすることを検討してください。
 
![プロバイダーの [ダウンロード] のスクリーンショット。](media/availability-group-migrate/download-provider.png) 
              
              ![[登録の最終処理] オプションのスクリーンショット。](media/availability-group-migrate/finalize-registration.png) 
              
              ![[レプリケート] 画面で [ゲストの資格情報] フィールドが強調表示されている [ソースの設定] タブのスクリーンショット。](media/availability-group-migrate/source-settings.png) 
              
               
              
              ![[ターゲット設定] のスクリーンショット。](media/availability-group-migrate/target-settings.png) 
              
              ![[コンピューティング] 設定のスクリーンショット。](media/availability-group-migrate/compute-settings.png) 
              
              ![[ディスク] 設定のスクリーンショット。](media/availability-group-migrate/disks.png)