Microsoft SQL Server は、Windows Server およびいくつかの Linux ディストリビューションで動作するデータベース システムです。Compute Engine では、SQL Server をアプリケーションのバックエンドの一部として、あるいは柔軟な開発、テスト環境として使用できるほか、バックアップや障害復旧のためにオンプレミス環境に追加することもできます。
Compute Engine には、Microsoft SQL Server が Windows Server にプリ��ンストールされたイメージが用意されています。これらの SQL Server イメージを使用する場合、Windows Server と SQL Server の両方のライセンスが Compute Engine に����て管理され���������の請求書にそれらの費用が含まれます。SQL Server を含む VM を作成し、必要に応じて大規模なマルチノード構成にスケールアウトします。
Compute Engine は、保存時の自動冗長化機能と自動暗号化機能を備えた耐久性の高い永続ディスクにデータを保存します。これらの永続ディスクを使用して SQL Server のデータを保存すれば、データの耐久性やセキュリティについて心配する必要がなくなります。さらにパフォーマンスが必要な場合は、ローカル SSD をキャッシュとして備えた VM を作成することで、SQL Server クエリの IOPS とパフォーマンスを強化できます。
SQL Server を実行する Compute Engine 仮想マシン(VM)インスタンスは、次の方法で作成できます。
SQL Server イメージを使用して VM を作成する。これらのイメージには、Windows Server で動作するいくつかの SQL Server エディションのいずれか 1 つが含まれています。SQL Server イメージを使用して Compute Engine で SQL Server を実行する場合、Microsoft から別途ライセンスを取得する必要はありません。
Compute Engine 上の Windows Server VM に、既存の SQL Server ライセンスを移行し、そのライセンスをお客様自身で管理する。
SQL Server がプリインストールされている使用可能なイメージの完全なリストについては、オペレーティング システムの詳細をご覧ください。
SQL Server イメージのマシンタイプ要件
SQL Server Standard
SQL Server Standard は、すべてのマシンタイプの VM で実行できます。ただし、共有コア マシンタイプでは、最適なパフォーマンスが得られません。SQL Server Standard を実行するためには、1 つ以上の vCPU を持つ VM を使用することをおすすめします。
SQL Server Enterprise
SQL Server Enterprise を実行する VM には、4 つ以上の vCPU が���要です。最適なパフォーマンスを得るには、SQL Server Enterprise をメモリ容量が大きい VM で実行することをおすすめします。ワークロードに応じて、8 つ以上の vCPU を持つハイメモリ マシンタイプを使用してください。こうしたマシンタイプでは、Compute Engine で使用可能な vCPU それぞれに対するメモリ比率が最大化されるため、SQL Server Enterprise VM に最も適しています。
また、Compute Engine で SQL Server Enterprise を使用して SQL Server の可用性グループを作成することもできます。
デフォルトのコンポーネント
SQL Server イメージにはいくつかのコンポーネントがデフォルトで組み込まれています。デフォルトのコンポーネントは選択した SQL Server のエディションによって異なります。
お使いのバージョンの SQL Server に含まれるデフォルトのコンポーネントについて詳しくは、SQL Server 2019 のエディションとサポートされている機能をご覧ください。
SQL Server コンポーネントの変更については、SQL Server の VM への機能の追加をご覧ください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
Terraform
このページの Terraform サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
SQL Server インスタンスの作成
SQL Server インスタンスを作成するには、必要なバージョンの SQL Server のイメージ ファミリーを指定します。SQL Server イメージ ファミリーの一覧については、オペレーティング システムの詳細をご覧ください。
最適なパフォーマンスを得るには、データベース サーバー プラットフォームでより多くの仮想 CPU とメモリ容量を備えたマシンタイプが必要です。SQL Server インスタンスを実行するときは、2 つ以上の vCPU と 4 GB 以上のメモリを備えたマシンタイプを使用することをおすすめします。カスタム マシンタイプを使用することで、ワークロードのパフォーマンス要件に合った SQL Server インスタンスを構成できます。また、アプリケーションのパフォーマンスを向上させるために、より大きな永続ディスクと、さらに高速な SSD 永続ディスクを使用することもできます。
加えて、VM が存在する VPC ネットワークやサブネット上の SQL Server のトラフィックを許可するように、特定のファイアウォール ルールを設定する必要があります。詳しくは、SQL Server のベスト プラクティスをご覧ください。
Console
SQL Server インスタンスを作成するには、次の手順を行います。
Google Cloud Console で、[インスタンスの作成] ページに移動します。
VM の詳細を指定します。
[���������ィスク] セクションで [変更] をクリックし、次の操作を行います。
- [公開イメージ] タブで、[OS] リストをクリックし、[SQL Server on Windows Server] を選択します。
- [バージョン] フィールドで、バージョンを選択します。
- [ブートディスクの種類] リストで、ブートディスクの種類を選択します。
- [サイズ(GB)] フィールドにブートディスクのサイズを設定します。
- (省略可)ブートディスクの詳細設定を変更するには、[詳細設定を表示] をクリックし、設定を指定します。
- ブートディスクの構成を保存するには、[選択] をクリックします。
[作成] をクリックします。
VM を作成した後は、VM 上の SQL Server へのアクセスを許可するファイアウォール ルールを作成します。SQL Server のデフォルト ポートは 1433 です。
Google Cloud コンソールで [ファイアウォール ルール] ページに移動します。
ページの上部にある [ファイアウォール ルールを作成] をクリックして、ファイアウォール ルールの作成を開始します。
このファイアウォールルールの詳細を指定します。
- [名前] フィールドに、ファイアウォール ルールの名前を指定します。
- [ネットワーク] フィールドで、SQL Server インスタンスが配置されている VPC ネットワークを選択します。
- [トラフィックの方向] で [上り] をオンにします。
- [ターゲット] フィールドで、ファイアウォール ルールのターゲット(すべてのインスタンス、指定されたターゲットタグ、サービス アカウント)を選択します。たとえば、[ネットワーク上のすべてのインスタンス] オプションを選択できます。SQL Server インスタンスにタグまたはサービス アカウントを構成した場合は、ファイアウォール ルールを特定のタグまたはサービス アカウントに制限できます。
- [ソースフィルタ] フィールドで、このポートへのアクセスを許可する IP の範囲を選択します。上り(内向き)ルールでは、送信元 IPv4 範囲、送信元 IPv6 範囲、送信元タグ、サービス アカウントを選択できます。[ソースフィルタ] の後のフィールドを使用して、選択したソースに関する追加情報を指定します。
- [プロトコルとポート] セクションで、[指定したプロトコルとポート] を選択し、SQL Server が使用するポートを入力します。この例では、[TCP] を選択し、デフォルト ポートである
1433
を入力します。
[作成] をクリックしてファイアウォール ルールを作成した後、ポート 1433 での SQL Server インスタンスへのアクセスを許可します。
VM にさらにファイアウォール ルールを追加する必要がある場合は、ファイアウォール ルールのドキュメントをご覧ください。
gcloud
compute images list
コマンドを使用して、使用可能な SQL Server イメージのリストを表示します。
gcloud compute images list --project windows-sql-cloud --no-standard-images
compute instances create
コマンドを使用して新しい VM を作成し、Windows Server または SQL Server 公開イメージのいずれかのイメージ ファミリーを指定します。
gcloud compute instances create VM_NAME \ --image-project windows-sql-cloud \ --image-family IMAGE_FAMILY \ --machine-type MACHINE_TYPE \ --boot-disk-size BOOT_DISK_SIZE \ --boot-disk-type BOOT_DISK_TYPE
次のように置き換えます。
- VM_NAME: 新しいインスタンスの名前。
- IMAGE_FAMILY: Windows Server または SQL Server イメージの公開イメージ ファミリーのいずれか。
- MACHINE_TYPE: 使用可能なマシンタイプのいずれか。
- BOOT_DISK_SIZE: ブートディスクのサイズ(GB)。永続ディスクのサイズが大きいほど、スループットが高くなります。
- BOOT_DISK_TYPE インスタンスのブートディスクの種類。例:
pd-balanced
VM を作成した後は、VM 上の SQL Server へのアクセスを許可するファイアウォール ルールを作成します。SQL Server のデフォルト ポートは 1433 です。
gcloud compute firewall-rules create sql-server-1433 \ --description "Allow SQL Server access from all sources on port 1433." \ --allow tcp:1433 --network NETWORK
ここで、NETWORK は VM が配置されている VPC ネットワークの名前です。
VM にさらにファイアウォール ルールを追加する必要がある場合は、ファイアウォール ルールのドキュメントをご覧ください。
Terraform
SQL Server VM インスタンスを作成するには、google_compute_instance
リソースを使用します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
REST
API で VM を作成するには、VM 作成リクエストに initializeParams
プロパティを含め、Windows イメージを指定します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances instance = { "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [{ "boot": "true", "type": "PERSISTENT", "initializeParams": { "diskName": "DISK_NAME", "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY", "diskSizeGb": "BOOT_DISK_SIZE", "diskType": "BOOT_DISK_TYPE", } }], "networkInterfaces": [{ "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT" }], "network": "global/networks/default" }], "serviceAccounts": [{ "email": DEFAULT_SERVICE_EMAIL, "scopes": DEFAULT_SCOPES }] }
次のように置き換えます。
- PROJECT_ID: プロジェクトの ID。
- ZONE: このインスタンスのゾーン。
- VM_NAME: 新しい VM の名前。
- MACHINE_TYPE: 使用可能なマシンタイプ。
- IMAGE_PROJECT: Windows Server イメージの
windows-cloud
か、SQL Server がプリインストールされた Windows Server イメージのwindows-sql-cloud
。 - IMAGE_FAMILY: Windows Server または SQL Server イメージの公開イメージ ファミリー。
- BOOT_DISK_SIZE: ブートディスクのサイズ(GB)。永続ディスクのサイズが大きいほど、スループットが高くなります。
- BOOT_DISK_TYPE: VM のブートディスクの種類。例:
pd-ssd
VM を作成した後は、VM 上の SQL Server へのアクセスを許可するファイアウォール ルールを作成します。SQL Server のデフォルト ポートは 1433 です。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "sql-server-1433", "network": "global/networks/NETWORK", "allowed": [ { "IPProtocol": "tcp", "ports": [ "1433" ] } ] }
次のように置き換えます。
- PROJECT_ID: プロジェクトの ID。
- NETWORK: VM が配置されている VPC ネットワークの名前。
SQL Server インスタンスを作成したら、VM の初期パスワードを設定します。これにより、RDP を介して VM に接続できるようになります。次に、SQL Server Management Studio を実行して、SQL Server インスタンス上のデータベースを管理します。
さらに、次のアイテムを 1 つ以上使用して、SQL Server インストールを拡張することができます。
- SQL Server Data Tools を SQL Server インスタンスにインストールすると、Visual Studio で SQL Server データベースの作成と管理ができます。VM に接続し、Microsoft のウェブサイトから SQL Server Data Tools をダウンロードしてインストールします。
- SQL Server イメージには、デフォルト コン��ーネントがいくつか含まれています。必要に応じて SQL Server インストールに機能を追加できます。SQL Server イメージには常にセットアップ実行可能ファイル(
c:\sql_server_install\setup.exe
)が含まれます。 - 予備の永続ディスクに SQL Server をインストールする必要����る場合は、VM にセカンダリ永続ディスクを追加します。次に、VM に接続して
c:\sql_server_install\setup.exe
インストーラを実行し、セカンダリ ディスク上の新しいインストール パスを選択します。 - ブートディスクやセカンダリ ストレージ ディスクに追加のストレージ容量が必要な場合は、VM が実行中であっても永続ディスクのサイズ変更を行います。
SQL Server データベースの管理
管理者として SQL Server Management Studio を実行し、SQL Server データベースを構成します。SQL Server Management Studio は、ローカル ワークステーションにダウンロードしてインストールし、それを使用してリモートで VM 上のデータベース エンジンに接続できます。
Management Studio をローカル ワークステーションにインストールできない場合は、RDP を介して VM に接続し、VM 自体で Management Studio を実行します。SQL Server 2012 と SQL Server 2014 は、どちらもデフォルトで SQL Server Management Studio が含まれています。SQL Server 2016 の場合は、SQL Server Management Studio を Microsoft のウェブサイトからダウンロードして VM にインストールします。
デフォルトでは、SQL Server は SQL Server 自体へのリモート アクセスを制御するために、Windows 認証モードを使用します。SQL Server 認証モードを使用する必要がある場合は、認証モードを変更します。
SQL Server インスタンス名の手動更新
SQL Server をホストする VM の名前を変更する場合は、SQL Server インスタンス名を更新する必要があります。詳細については、SQL Server のスタンドアロン インスタンスをホストするコンピュータの名前変更をご覧ください。
次のステップ
- VM が正常に起動したことを確認する。
- セカンダリ ストレージ ディスクを作成して VM にアタッチし、ブートディスクとは別にデータを保存する。
- Google Cloud 上の SQL Server に関するベスト プラクティスを学習する。
- 高パフォーマンスの SQL Server インスタンスを作成して構成する。
- HammerDB を使用して SQL Server の負��テストを実施する。
- SQL Server と .NET アプリケーションを使用する
- VM に接続する。