Cloud DB for MSSQL VPC Migrationでは、NAVERクラウドプラットフォームの Classic環境で運用している Cloud DB for MSSQLを VPC環境に移行する方法をご案内します。
Cloud DB for MSSQL VPC Migrationで説明する内容は、次の通りです。
- Classic Path Service作成
- バックアップ用サーバ作成
- データベースのバックアップ
- VPC Peeringの構成
- 移行対象の Cloud DB for MSSQL作成
- データベースの復元と SIDのトラブルシューティング

各ステップの手順は、以下の内容に従って順番に実行してください。
Classic Path Service作成
Classic環境と VPC環境間のデータ送信のための Classic Path Serviceを作成します。
Classic Path専用 VPC作成
Classic Pathサービスを構成するためには、まず専用 VPCを作成する必要があります。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Networking > VPC > VPC Management を順にクリックします。 - [VPC作成] ボタンをクリックし、以下の情報を入力します。

- VPC名 : 作成する VPCの名前
- IPアドレス範囲 : 10.36.192.0/19 (Classic Path VPC専用 CIDR帯域)
- タイプ : NORMAL
- 入力完了後、 [作成] ボタンをクリックします。
Classic Path作成
Classic環境と VPC環境を関連付けるための Classic Pathを作成します。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Networking > Classic Path メニューを順にクリックします。 - [Classic Path作成] ボタンをクリックし、以下の情報を入力します。

- Classic Path名 : 作成する Classic Pathの名前
- VPC : 上記で作成した VPC
- メモ : Classic Pathに関するメモであり、 [変更] ボタンをクリックして変更可能
- 入力完了後、 [作成] ボタンをクリックします。
Subnet作成
作成した Classic Path専用 VPCに Subnetを追加で作成します。
-
NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Networking > VPC > Subnet Management を順にクリックします。 -
[Subnet作成] ボタンをクリックし、以下の情報を入力します。

- Subnet名 : Subnetの名前
- VPC : Classic Pathで作成した VPC
- IPアドレス範囲 : Subnetの IPアドレス範囲
- 可用 Zone : Subnetが配置された可用 Zone
- Network ACL : Subnetに適用された Network ACL
- Internet Gateway専用有無 : Subnetのインターネット接続の有無、Public Subnetは Yに表示され、Private Subnetは Nに表示
- 入力完了後、 [作成] ボタンをクリックします。
バックアップ用サーバ作成
バックアップファイルを一時的に保存し、復元タスクに使用するアプリケーションサーバを作成します。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Server > Server > サーバ作成 メニューを順にクリックします。 - サーバ設定 タブで以下の項目を順に設定します。

- VPC : Classic Pathで作成した VPC
- Subnet : VPCへのアクセス時に使用する Subnetを選択
- サーバ数 : 作成するサーバの数
- サーバ名 : 作成するサーバの名前
- パブリック IPアドレス : リモートアクセスが必要な場合は、 [新規パブリック IPアドレス割り当て] を選択
- メモ : サーバに関するメモであり、 [変更] ボタンをクリックして変更可能
ディスク容量設定
バックアップサーバに必要な分だけディスクサイズを調整します。
- ストレージ設定 画面で以下の情報を確認・変更します。

- ストレージ名 : 使用するストレージの名前
- ストレージタイプ : 使用するストレージのタイプ
- スナップショット名 : 作成時に選択した名前で自動設定
- サイズ : バックアップ容量に応じて100GB以上を推奨
- ストレージタイプ : 使用するブロックストレージのタイプ
- IOPS : デフォルト値または性能要求に応じて設定
ベーシックディスク以外に追加ディスクが必要な場合は、 [ストレージの追加] ボタンをクリックして設定できます。
バックアップフォルダの作成と共有設定
バックアップ用サーバに共有フォルダを作成し、MSSQLバックアップファイルを保存できるように Everyone 権限を付与します。
-
バックアップに使用するフォルダを選択します。

-
作成したフォルダで右クリックした後、 [backup Properties] プロパティウィンドウを開きます。

-
上部のタブから [Sharing] を選択し、 [Share…] ボタンをクリックします。
-
Choose people to share with ウィンドウが表示されたら、ドロップダウンメニューから Everyone を選択し、 [Add] ボタンをクリックします。
-
Everyone の Permission Level を Read/Write に変更します。
-
下部の [Share] ボタンをクリックして共有します。
-
今後の SQL Serverバックアップ時に使用する Network Path を確認します。
-
[Close] ボタンをクリックして完了します。
Network Pathは MSSQL BACKUP DATABASE コマンドの TO DISK パスとして使用されます。
パスワード保護共有の解除
バックアップフォルダにアクセスできるように、パスワード保護共有と共用フォルダ共有の設定を解除します。

- アプリケーションサーバで、 Control Panel > Network and Internet > Network and Sharing Center > Advanced sharing settings の順に移動します。
- All Networks セクションを展開し、以下の項目をそれぞれ設定します。
- Public folder sharing: Turn off Public folder sharing を選択
- Password protected sharing: Turn off password protected sharing を選択
- 設定が完了したら、 [Save changes] ボタンをクリックして保存します。
Classic DB Server情報確認
バックアップ対象である Classic環境の Cloud DB for MSSQLインスタンス情報を確認します。
- NAVERクラウドプラットフォームコンソールの Classic環境で、
> Services > Database > Cloud DB for MSSQL > DB Server メニューをクリックします。

- 作成された DB Serverリストから対象インスタンスを選択します。
- マイグレーション対象と同じネットワーク帯域であるか確認します。
Classic DBアクセスを許可するための ACGルール追加
アプリケーションサーバから Classic DB Serverに直接アクセスが必要な場合は、ACGにアクセス許可ルールを手動で追加します。
- 上記で確認した DB Serverの ACG名の横にある [ルールを見る] ボタンをクリックします。

- ACGルール設定ウィンドウで以下の項目を入力します。
- プロトコル : TCP
- アクセスソース : アプリケーションサーバのパブリック IPアドレス または [myIP] ボタンのクリックで自動入力
- 許可ポート : 1433
- メモ : ACGルールに関するメモであり、 [変更] ボタンをクリックして変更可能
- [追加] ボタンをクリックし、 [適用] ボタンをクリックして設定を保存します。
アプリケーションサーバが Classic DBに直接アクセスする必要がある場合のみ設定してください。
データベースのバックアップ
既存の Classic DBで作成したバックアップ用アプリケーションサーバの共有フォルダにデータをバックアップします。
Classic Cloud DB for MSSQLマイグレーション対象データベースの準備
バックアップやマイグレーションのために Classic環境で使用するデータベースを作成します。

- SQL Server Management Studio(SSMS)を実行した後、次の情報を入力して Classic Cloud DB for MSSQLにアクセスします。
- サーバタイプ : データベースエンジン
- サーバ名 : DBサーバ情報
- 認証 : SQL Server認証
- ログイン : 当該 DBアカウントの ID
- パスワード : 当該 DBアカウントのパスワード
- アクセス後、以下の例のようにテスト用テーブルを作成します。

USE cpathdb1
GO
CREATE TABLE tblx (
idx INT IDENTITY(1,1)
)
GO
INSERT INTO tblx DEFAULT VALUES
GO 2
SELECT * FROM tblx
GO
- 結果 タブでデータが正常に表示されているか確認します。
VPC Route Tableで CLASSICPATH Routeを追加
Classic環境と通信するために CLASSICPATH の対象ルート項目を追加します。
-
NAVERクラウドプラットフォームコンソールの VPC環境で、
> Service > Networking > VPC > Route Table メニューを順にクリックします。

-
Public Subnet用 Route Tableを選択し、 [Routes設定] ボタンをクリックします。

- [作成] ボタンをクリックして以下の値を入力します。
- 目的地(Destination) : 10.0.0.0/8
- Targetタイプ : CLASSICPATH
- Target名 : 設定した Classic Pathの名前
- 入力が完了したら、 [確認] または [適用] ボタンをクリックして設定を保存します。
バックアップ用サーバの ACG設定
MSSQLサーバがバックアップサーバの共有フォルダにアクセスできるように ACGルールを変更します。
- バックアップ用アプリケーションサーバに適用された ACGを確認します。
- コンソールで当該 ACGの [ルールを見る] ボタンをクリックします。

- [Inboundルール] タブで、以下のルールが含まれているか確認します。
- プロトコル: TCP
- アクセスソース: 10.0.0.0/8
- 許可ポート: 445
- 該当するルールがない場合は同じ項目を適用し、 [確認] > [適用] ボタンを順にクリックします。
Classic Cloud DB for MSSQLのバックアップ
Classic環境のデータベースをアプリケーションサーバの共有フォルダにバックアップします。
- SQL Server Management Studio(SSMS)にアクセスします。

- 以下の例のようにクエリを入力し、順次実行します。
CREATE TABLE tblx (
idx INT IDENTITY (1,1)
);
GO
INSERT INTO tblx DEFAULT VALUES;
GO 2
SELECT * FROM tblx;
GO
BACKUP DATABASE cpathdb1
TO DISK = '\\10.36.192.6\backup\cpathdb1.full'
WITH INIT;
GO
- 下部の メッセージ タブに 「BACKUP DATABASE successfully processed...」 というメッセージと一緒に完了時間が出力されるか確認します。
Classic Cloud DB for MSSQL管理者アカウントの SID確認
復元対象環境で同じログインアカウントを作成するために、Classic DBの SID値を確認します。
- SQL Server Management Studio(SSMS)にアクセスします。

- 以下のクエリを入力して実行します。
SELECT SID
FROM master.sys.sql_logins
WHERE name = 'testadmin'
VPC Peeringの構成
Classic Path VPCと運用中の VPC間の通信のために Peeringを構成します。
Classic Path VPCと運用中の VPC情報を確認
Classic Path VPCとマイグレーション対象 VPCの CIDR帯域を確認します。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Networking > VPC > VPC Management メニューをクリックします。

-
次の項目を確認します。
- Classic Path専用 VPCの CIDR
- 運用中の VPCの CIDR
-
NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Networking > VPC > Subnet Management メニューをクリックします。

- 次の項目を確認します。
- Classic Path VPCの Subnet
- 運用中の VPCの Subnet
CIDR帯域が重複すると、VPC Peeringを構成できません。
Route Tableから CLASSICPATHルートを削除
VPC Peeringルートタスクのために、CLASSICPATHルートを削除します。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Networking > VPC > Route Table メニューを順にクリックします。

- 削除するルートが設定された Public Subnet用 Route Table を選択し、 [Routes設定] ボタンをクリックします。
- 以下の条件に該当するルート項目を見つけた後、 [削除] ボタンをクリックします。
- 目的地(Destination) : Classic Path環境に属した IPアドレス
- Targetタイプ : CLASSICPATH
- Target名 : 作成した Classic Pathの名前
- [適用] ボタンをクリックして変更内容を保存します。
Classic Path VPCとユーザー VPC間の VPC Peering構成
Classic Path VPCとユーザー VPC間の通信のため、VPC Peeringを必ず 双方向に構成 する必要があります。各 VPCは異なる CIDR帯域である必要があり、1回ずつリクエスタ-アクセプタのロールを入れ替えて2件の Peeringを作成します。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Networking > VPC > VPC Peering メニューを順にクリックします。

- [VPC Peering作成] ボタンをクリックして以下の情報を入力します。
- リクエスト VPC : Classic Path VPC(
vpccpath) - アクセプト VPC : ユーザー VPC(
mssqlvpc) - リクエスト VPC IPアドレスの範囲 :
10.36.192.0/19 - アクセプト VPC IPアドレスの範囲 :
10.0.0.0/16
-
同じように反対方向の Peeringをもう一度作成します。
- リクエスト VPC : ユーザー VPC(
mssqlvpc) - アクセプト VPC : Classic Path VPC(
vpccpath) - リクエスト VPC IPアドレスの範囲 :
10.0.0.0/16 - アクセプト VPC IPアドレスの範囲 :
10.36.192.0/19
- リクエスト VPC : ユーザー VPC(
-
両方の Peeringのステータスが 「運用中」 であるか確認します。
Route Table設定
Peeringが正常に構成されたら、 各 VPCで相手 VPCを目的地に指定する Route設定 を追加する必要があります。
- Classic Path VPC → ユーザー VPCパスに設定
- VPC > Route Table メニューに移動
vpccpath-default-public-table項目を選択- Routesタブ で以下の項目が存在するか確認
- 目的地:
10.0.0.0/16 - Targetタイプ:
VPCPEERING - Target名:
classicpathvpc2vpc
- 目的地:
- 該当するパスがない場合は、手動で追加します。
- ユーザー VPC → Classic Path VPCパスに設定
- 同じようにユーザー VPCの Route Tableを選択(
mssqlvpc-default-public-table) - Routesタブ で以下の項目が存在するか確認
- 目的地:
10.36.192.6/32 - Targetタイプ:
VPCPEERING - Target名:
vpc2classicpathvpc
- 目的地:
移行対象の Cloud DB for MSSQL作成
バックアップデータ移行のために VPC環境に Cloud DB for MSSQLインスタンスを事前に作成します。
VPC Cloud DB for MSSQL ACGの設定
VPC環境の Cloud DB for MSSQLインスタンスがバックアップサーバの共有フォルダにアクセスできるように ACG設定を確認します。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Database > Cloud DB for MSSQL > DB Server > DB Server詳細画面 > ACG > [ルールを見る] を順にクリックします。 - 以下の ACGルールが含まれているか確認します。
- Outboundルール
- プロトコル :
TCP - 目的地 :
10.36.192.6/32 - 許可ポート :
445
- プロトコル :
- Outboundルール
VPC Cloud DB for MSSQLサーバの確認
バックアップファイルを移行する VPC環境の Cloud DB for MSSQLインスタンスを確認します。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Database > Cloud DB for MSSQL > DB Server メニューをクリックします。

- 移行対象 DB Serverの項目を選択し、以下の項目を確認します。
- DBサービス名 : 復元対象 DBのサービス名
- DBエンジンバージョン : 復元対象 DBのエンジンバージョン
- VPC : 復元対象 DBが接続された VPCの名前
- Subnet : 復元対象 DBが配置されているサブネット名
- アクセスポート :
1433 - ACG名 : 当該 DBインスタンスに接続されたアクセス制御グループ名
データベースの復元と SIDのトラブルシューティング
Classic Path VPCのアプリケーションサーバにバックアップされたデータを VPC環境の Cloud DB for MSSQLインスタンスに復元します。
バックアップファイルを活用したデータベースの復元
Peeringで接続された Classic Path VPCの共有フォルダパスからバックアップファイルを参照して復元を行います。
- SQL Server Management Studio(SSMS)を実行した後、VPC環境の MSSQLサーバにアクセスします。
- 以下のクエリを実行して復元を実行します。

RESTORE DATABASE cpathdb1
FROM DISK = '\\10.36.192.6\backup\cpathdb1.full'
WITH REPLACE;
- 復元が完了すると、出力メッセージで「 Processed 」および「 RESTORE DATABASE successfully 」のフレーズが確認できます。
SIDベースのアカウント作成とログイン検証
復元したデータベースに対して、ユーザーアカウントが既存の Classic環境と同じ SIDで作成されていない場合、アクセスが制限されることがあります。この状況を防ぐため、 既存の Classic DB で確認した SID値 を使用してログインアカウントを作成し、そのアカウントでのアクセス可否を確認します。
- SQL Server Management Studio(SSMS)でマスターデータベースにアクセスします。
- 以下の構文を実行します。

CREATE LOGIN AServerAdmin
WITH PASSWORD='P@ssw0rd'
, SID=0x3D75220DEFFB564588417C6A6EBC7BB7
, DEFAULT_DATABASE=[master]
, CHECK_POLICY=OFF
, CHECK_EXPIRATION=OFF
GO
- コマンド実行後、「 コマンドが完了しました。 」というメッセージが表示されるか確認します。
- その後、SSMSの サーバ接続 ウィンドウを実行します。

- 以下の項目を入力し、接続を試みます。
- サーバ名 : VPC環境の DBサーバアドレス
- 認証 : SQL Server認証
- ログイン : ユーザーアカウント ID
- パスワード : ユーザーパスワード
データベース内のユーザーと連携して正常にアクセスするには、Classic環境で使用されたアカウントと同じ SIDを付与する必要があります。
VPC Cloud DB for MSSQLコンソールユーザーに復元したデータベースの DB-OWNER権限を付与
復元されたデータベースに既存のコンソールユーザーアカウントを関連付け、db_owner 権限を付与します。

- SQL Server Management Studio(SSMS)で復元されたデータベースにアクセスします。
- 以下の SQL文を実行してコンソールユーザーアカウントを作成し、
db_ownerロールを付与します。
USE cpathdb1
GO
CREATE USER testadmin FOR LOGIN testadmin
GO
ALTER ROLE [db_owner] ADD MEMBER testadmin
GO
クエリが正常に実行されると、コンソールユーザーアカウント testadminが cpathdb1 データベースのすべての権限を持ちます。
復元されたデータベースでコンソール Adminアカウントで復元されたデータを確認
SID復元と権限設定が完了した後、コンソールユーザーアカウントでデータベースにアクセスし、復元が正常に行われたか確認します。

- SQL Server Management Studio(SSMS)のコンソールユーザーアカウントで
cpathdb1データベースにアクセスします。 - 以下のクエリを実行して、データが正常に復元されたか確認します。
SELECT * FROM tblx
データが照会されない場合は、ログイン SIDが一致するか、ユーザー権限付与のステータスを再確認してください。
復元とアクセス権設定が完了すると、tblx テーブルに復元前に入力したデータが正常に出力されます。