このページでは、Cloud SQL for SQL Server インスタンスを作成する方法について説明します。
すべてのインスタンスの設定について詳しくは、インスタンスの設定をご覧ください。
新しく作成したインスタンスには sqlserver
データベースがあります。
Cloud SQL インスタンスを作成した後、データベースを作成またはインポートして、インスタンスに追加します。
Cloud SQL Enterprise Plus エディションと Cloud SQL Enterprise エディションから選択する
Cloud SQL for SQL Server インスタンスを作成する際には、Cloud SQL のエディションに応じて、異なるマシン ファミリーとさまざまなマシン構成から選択できます。
Cloud SQL Enterprise Plus エディションでは、次の 2 つのマシン ファミリーから選択できます。
- パフォーマンス最適化: さまざまな SQL Server ワークロード向けに、1 vCPU 対 8 GB RAM というメモリとコンピューティングの比率によって料金とパフォーマンスの両立を実現します。
- メモリ最適化: メモリ使用量の多いワークロード向けに、1 vCPU 対 32 GB RAM という高メモリとコンピューティングの比率を提供します。メモリ最適化マシンは、複雑なクエリ、分析、ビジネス インテリジェンス レポートを必要とする SQL Server ワークロードに適しています。このようなワークロードでは、データ処理時に大規模なデータセットをメモリに格納することでメリットを得られます。
Cloud SQL Enterprise エディションでは、vCPU とメモリの要件に基づいて、さまざまなマシン構成から選択できます。以降のセクションでは、データベースのバージョンとマシンタイプごとに vCPU とメモリの構成を示します。
SQL Server 2017 Express、SQL Server 2019 Express、SQL Server 2022 Express
マシンタイプ | vCPU / メモリ |
---|---|
軽量 |
|
スタンダード |
|
ハイメモリ |
|
カスタム | 1~8 vCPU、3.75 GB~52 GB |
SQL Server 2017 Web、SQL Server 2019 Web、SQL Server 2022 Web
マシンタイプ | vCPU / メモリ |
---|---|
軽量 |
|
スタンダード |
|
ハイメモリ |
|
カスタム | 1~32 vCPU、3.75 GB~208 GB |
SQL Server 2017 Standard、SQL Server 2019 Standard、SQL Server 2022 Standard
マシンタイプ | vCPU / メモリ |
---|---|
軽量 |
|
スタンダード |
|
ハイメモリ |
|
カスタム | 1~48 vCPU、3.75 GB~312 GB |
SQL Server 2017 Enterprise、SQL Server 2019 Enterprise、SQL Server 2022 Enterprise
マシンタイプ | vCPU / メモリ |
---|---|
軽量 |
|
スタンダード |
|
ハイメモリ |
|
カスタム | 2~96 vCPU、3.75 GB~624 GB |
同時マルチスレッディング
Cloud SQL for SQL Server の同時マルチスレッディング(SMT)によって、1 つの物理コア上で 2 つの仮想 CPU(vCPU)を独立した別々のスレッドとして実行できます。SMT はデフォルトでは有効になっていますが、無効にすることも可能で、それによってライセンス費用を削減できる場合があります。
SMT を無効にすると、インスタンスのパフォーマンスに影響を与える可能性があります。SMT を無効にすることでインスタンスのパフォーマンスに与える影響を把握するには、インスタンスで負荷テストを行うことをおすすめします。
インスタンスを作成する
コンソール
- Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [インスタンスの作成] ページの [データベース エンジンの選択] パネルで、[SQL Server を選択] をクリックします。
[SQL Server インスタンスを作成する] ページの [Cloud SQL のエディションの選択] セクションで、インスタンスの Cloud SQL エディション(
Enterprise
またはEnterprise plus
)を選択します。Cloud SQL のエディションの詳細については、Cloud SQL for SQL Server の各エディションの概要をご覧ください。
- インスタンスのエディションのプリセットを選択します。使用可能なプリセットを表示するには、[エディションのプリセット] メニューをクリックします。
- [インスタンスの情報] セクションで、インスタンスのデータベース バージョンを選択します。使用可能なバージョンを表示するには、[データベースのバージョン] メニューをクリックします。
- [インスタンス ID] フィールドに、インスタンスの ID を入力します。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
- [パスワード] フィールドに、ユーザーのパスワードを入力します。
- [リージョンとゾーンの可用性の選択] セクションで、インスタンスのリージョンとゾーンを選択します。
インスタンスにアクセスするリソースと同じリージョンにインスタンスを配置します。選択したリージョンは後から変更できません。ほとんどの場合、ゾーンを指定する必要はありません。
- [インスタンスのカスタマイズ] セクションで、インスタンスの設定を更新します。たとえば、インスタンスが誤って削除されることを防止できます。
- [インスタンスを作成] をクリックします。
- インスタンスの初期化処理が完了したら、インスタンス名をクリックして開きます。
gcloud
gcloud CLI のインストールと使用開始については、gcloud CLI のインストールをご覧ください。Cloud Shell の起動方法については、Cloud Shell のドキュメントをご覧ください。
gcloud
バージョン 243.0.0 以降を使用する必要があります。
インスタンスを誤って削除しないように保護する方法については、インスタンスの削除を防止するをご覧ください。
- インスタンスを作成します。
Cloud SQL Enterprise Plus エディションのインスタンスの場合: Cloud SQL Enterprise エディションのインスタンスの場合:gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --region=REGION \ --tier=TIER \ --root-password=ROOT_PASSWORD --edition=ENTERPRISE_PLUS
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --region=REGION \ --cpu=NUMBER_OF_vCPUs \ --memory=MEMORY_SIZE \ --root-password=ROOT_PASSWORD --edition=ENTERPRISE
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
このページですでに説明したように、Cloud SQL Enterprise エディションでは vCPU とメモリサイズの値に制限があります。Cloud SQL Enterprise Plus エディションと Cloud SQL Enterprise エディションから選択するをご覧ください。
たとえば、次の文字列を使用すると、インスタンスに 2 つの vCPU と 7,680 MB のメモリが割り当てられます。
gcloud sql instances create myinstance \ --database-version=SQLSERVER_2017_STANDARD \ --region=us-central1 \ --cpu=2 \ --memory=7680MB \ --root-password=EXAMPLE_PASSWORD --edition=ENTERPRISE
値の例については、マシンタイプの例をご覧ください。
インスタンス設定のパラメータについては、gcloud sql instances create をご覧ください。
- 自動的に割り当てられた IP アドレスをメモします。
Cloud SQL Auth Proxy を使用しない場合は、このアドレスをアプリケーションやツールがインスタンスに接続するためのホストアドレスとして使用します。
- ユーザーのパスワードを設定します。
gcloud sql users set-password sqlserver no-host --instance=[INSTANCE_NAME] \ --password=[PASSWORD]
Terraform
インスタンスを作成するには、Terraform リソースを使用します。
REST v1
1. インスタンスを作成する
以下の基本的な API 呼び出しでは、指定可能なフィールドがすべて示されているわけではありません。JSON リクエストのプロトタイプについては、設定をご覧ください。
Instances:insert ページもご覧ください。リージョンの有効な値など、インスタンスの設定の詳細については、インスタンスの設定をご覧ください。マシンタイプの詳細については、カスタム インスタンス構成をご覧ください。
instance-id
には機密情報や個人を特定できる情報を含めないでください。値は外部から閲覧可能です。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
collation
フィールド(以下の基本的な API 呼び出しでは示されていません)を使用すると、インスタンス内のデータベースに使用される照合順序のタイプのデフォルト値を設定できます。この照合順序のデフォルトは、インスタンス レベルでは永続的ですが、データベース レベルでは永続的ではありません。このデフォルトはデータベース管理ツールで変更できますが、作成または更新する特定のデータベースに対してのみ変更できます。インスタンス作成後に、インスタンスのデフォルトの照合順序を変更することはできません(インスタンスを再作成しない限り)。SQL Server の照合順序については、照合順序と Unicode のサポートをご覧ください。JSON リクエストのプロトタイプについては、設定をご覧ください。たとえば、collation
パラメータには文字列 SQL_Latin1_General_CP1_CI_AS
を指定できます。
timeZone
フィールド(以下の基本的な API 呼び出しには示されていません)を使用すると、インスタンスのタイムゾーンを設定できます。インスタンスのタイムゾーンは、インスタンスの作成後に変更できます。使用可能な文字列の詳細と一覧については、設定をご覧ください。たとえば、timeZone
パラメータには、文字列 "Pacific Standard Time"
を指定できます。詳細をご確認ください。
マネージド Microsoft AD と統合されたインスタンスを作成するには、domain
フィールドにドメイン(subdomain.mydomain.com
など)を指定します。詳細については、Windows 認証を使用するインスタンスを作成するをご覧ください。さらに、別のプロジェクトのマネージド AD ドメインと統合するための手順と制約に注意してください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: インスタンス ID。
- REGION: リージョン名。
- DATABASE_VERSION: データベース バージョンの列挙型文字列。例:
SQLSERVER_2017_STANDARD
。 - PASSWORD:
root
ユーザーのパスワード。 - MACHINE_TYPE: マシン(階層)タイプの列挙型文字列。例:
db-perf-optimized-N-4
。 - EDITION_TYPE: Cloud SQL のエディション。デフォルト値は
ENTERPRISE
です。 - DATA_CACHE_ENABLED:(省略可)インスタンスのデータ キャッシュを有効にするには、このパラメータの値を
true
に設定します。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
リクエストの本文(JSON):
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "backupConfiguration": { "enabled": true }, "dataCacheConfig" = { "dataCacheEnabled": DATA_CACHE_ENABLED }, } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
インスタンスが作成されると、さらにデフォルトのユーザー アカウントを構成できます。
2. インスタンスの IPv4 アドレスを取得する
必要に応じて、自動的に割り当てられた IPv4 アドレスを取得できます。レスポンスでは、このアドレスは ipAddress
フィールドにあります。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: 前の手順で作成したインスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "DATABASE_VERSION", "settings": { "authorizedGaeApplications": [], "tier": "MACHINE_TYPE", "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "ipv4Enabled": true }, "locationPreference": { "zone": "ZONE", "kind": "sql#locationPreference" }, "dataDiskType": "PD_SSD", "backupConfiguration": { "startTime": "19:00", "kind": "sql#backupConfiguration", "enabled": true }, "settingsVersion": "1", "dataDiskSizeGb": "10" }, "etag": "--redacted--", "ipAddresses": [ { "type": "PRIMARY", "ipAddress": "10.0.0.1" } ], "serverCaCert": { ... }, "instanceType": "CLOUD_SQL_INSTANCE", "project": "PROJECT_ID", "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com", "backendType": "BACKEND_TYPE", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "connectionName": "PROJECT_ID:REGION:INSTANCE_ID", "name": "INSTANCE_ID", "region": "REGION", "gceZone": "ZONE" }
REST v1beta4
1. インスタンスを作成する
以下の基本的な API 呼び出しでは、指定可能なフィールドがすべて示されているわけではありません。JSON リクエストのプロトタイプについては、設定をご覧ください。
Instances:insert ページもご覧ください。リージョンの有効な値など、インスタンスの設定の詳細については、インスタンスの設定をご覧ください。マシンタイプの詳細については、カスタム インスタンス構成をご覧ください。
instance-id
には機密情報や個人を特定できる情報を含めないでください。値は外部から閲覧可能です。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
collation
フィールド(以下の基本的な API 呼び出しでは示されていません)を使用すると、インスタンス内のデータベースに使用される照合順序のタイプのデフォルト値を設定できます。この照合順序のデフォルトは、インスタンス レベルでは永続的ですが、データベース レベルでは永続的ではありません。このデフォルトはデータベース管理ツールで変更できますが、作成または更新する特定のデータベースに対してのみ変更できます。インスタンス作成後に、インスタンスのデフォルトの照合順序を変更することはできません(インスタンスを再作成しない限り)。SQL Server の照合順序については、照合順序と Unicode のサポートをご覧ください。JSON リクエストのプロトタイプについては、設定をご覧ください。たとえば、collation
パラメータには文字列 SQL_Latin1_General_CP1_CI_AS
を指定できます。
timeZone
フィールド(以下の基本的な API 呼び出しには示されていません)を使用すると、インスタンスのタイムゾーンを設定できます。インスタンスのタイムゾーンは、インスタンスの作成後に変更できます。使用可能な文字列の詳細と一覧については、設定をご覧ください。たとえば、timeZone
パラメータには、文字列 "Pacific Standard Time"
を指定できます。詳細をご確認ください。
マネージド Microsoft AD と統合されたインスタンスを作成するには、domain
フィールドにドメイン(subdomain.mydomain.com
など)を指定します。詳細については、Windows 認証を使用するインスタンスを作成するをご覧ください。さらに、別のプロジェクトのマネージド AD ドメインと統合するための手順と制約に注意してください。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: インスタンス ID。
- REGION: リージョン名。
- DATABASE_VERSION: データベース バージョンの列挙型文字列。
- MACHINE_TYPE: マシン(階層)タイプの列挙型文字列。例:
db-perf-optimized-N-4
。 - PASSWORD:
root
ユーザーのパスワード。 - MACHINE_TYPE: マシン(階層)タイプの列挙型文字列(例:
db-custom-[CPUS]-[MEMORY_MBS]
)。 - EDITION_TYPE: Cloud SQL のエディション。デフォルト値は
ENTERPRISE
です。 - DATA_CACHE_ENABLED:(省略可)インスタンスのデータ キャッシュを有効にするには、このパラメータの値を
true
に設定します。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
リクエストの本文(JSON):
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "backupConfiguration": { "enabled": true }, "dataCacheConfig" = { "dataCacheEnabled": DATA_CACHE_ENABLED }, } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
インスタンスが作成されると、さらにデフォルトのユーザー アカウントを構成できます。
2. インスタンスの IPv4 アドレスを取得する
必要に応じて、自動的に割り当てられた IPv4 アドレスを取得できます。レスポンスでは、このアドレスは ipAddress
フィールドにあります。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: 前の手順で作成したインスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "DATABASE_VERSION", "settings": { "authorizedGaeApplications": [], "tier": "MACHINE_TYPE", "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "ipv4Enabled": true }, "locationPreference": { "zone": "ZONE", "kind": "sql#locationPreference" }, "dataDiskType": "PD_SSD", "backupConfiguration": { "startTime": "19:00", "kind": "sql#backupConfiguration", "enabled": true }, "settingsVersion": "1", "dataDiskSizeGb": "10" }, "etag": "--redacted--", "ipAddresses": [ { "type": "PRIMARY", "ipAddress": "10.0.0.1" } ], "serverCaCert": { ... }, "instanceType": "CLOUD_SQL_INSTANCE", "project": "PROJECT_ID", "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com", "backendType": "BACKEND_TYPE", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "connectionName": "PROJECT_ID:REGION:INSTANCE_ID", "name": "INSTANCE_ID", "region": "REGION", "gceZone": "ZONE" }
カスタム インスタンス構成
カスタム インスタンス構成では、インスタンスに必要なメモリと CPU の量を自分で選択できます。この柔軟性により、ワークロードに適した VM の形状を選択できます。使用可能なマシンタイプは Cloud SQL のエディションによって異なります。
リアルタイム処理を必要とするワークロードの場合は、ワーキング セット全体を格納するのに十分なメモリをインスタンスで確保してください。ただし、メモリ要件に影響を与える可能性がある要素はほかにもあります(アクティブな接続の数や内部オーバーヘッド プロセスなど)。本番環境でパフォーマンスの問題が発生しないように、負荷テストを実施する必要があります。
インスタンスの構成時に、ワークロードを処理するのに十分なメモリと vCPU を選択し、ワークロードの増加に合わせてアップグレードしてください。vCPU が不十分なマシン構成では、SLA の範囲外になる可能性があります。詳細については、オペレーション ガイドラインをご覧ください。
Cloud SQL Enterprise エディション インスタンスのマシンタイプ
Cloud SQL Enterprise エディション インスタンスの場合は、gcloud sql
instances create
コマンドを使用してカスタム インスタンス構成を作成することもできます。
マシンタイプ名の形式は db-custom-NUMBER_OF_vCPUs-MEMORY
です。
NUMBER_OF_vCPUs はマシンの CPU 数に、MEMORY はマシンのメモリ量に置き換えます。
たとえば、マシン名が db-custom
で、マシンの CPU が 1 つ、RAM が 3,840 MB の場合、マシンの形式は db-custom-1-3840
になります。
CPU の数とメモリの量を選択する際、選択する構成には次のような制限があります。
- インスタンスに構成できる vCPU の数は、SQL Server のバージョンによって異なります。
- vCPU 数は 1 または 2~96 の偶数にする必要があります。
- メモリサイズは次のようにする必要があります。
- vCPU あたり 0.9~6.5 GB
- 256 MB の倍数
- 3.75 GB(3,840 MB)以上
Cloud SQL Enterprise Plus エディション インスタンスのマシンタイプ
Cloud SQL Enterprise Plus エディション インスタンスの場合、マシンタイプは以降のセクションで説明するように事前定義されています。
パフォーマンス最適化マシン ファミリー
このマシン ファミリーは、幅広い SQL Server ワークロード向けに、1 vCPU 対 8 GB RAM というメモリとコンピューティングの比率によって料金とパフォーマンスの両立を実現します。パフォーマンス最適化マシン ファミリーでは、次のマシンタイプから選択できます。
Enterprise Plus マシンタイプ | vCPU | メモリ(GB) |
---|---|---|
db-perf-optimized-N-2 | 2 | 16 |
db-perf-optimized-N-4 | 4 | 32 |
db-perf-optimized-N-8 | 8 | 64 |
db-perf-optimized-N-16 | 16 | 128 |
db-perf-optimized-N-32 | 32 | 256 |
db-perf-optimized-N-48 | 48 | 384 |
db-perf-optimized-N-64 | 64 | 512 |
db-perf-optimized-N-80 | 80 | 640 |
db-perf-optimized-N-96 | 96 | 768 |
db-perf-optimized-N-128 | 128 | 864 |
メモリ最適化マシンタイプ ファミリー
このマシン ファミリーは、メモリ使用量の多いワークロード向けに、1 vCPU 対 32 GB RAM という高メモリとコンピューティングの比率を提供します。メモリ最適化マシンは、複雑なクエリ、分析、ビジネス インテリジェンス レポートを必要とする SQL Server ワークロードに適しています。このようなワークロードでは、データ処理時に大規模なデータセットをメモリに格納することでメリットを得られます。メモリ最適化マシン ファミリーでは、次のマシンタイプから選択できます。
マシンタイプ | vCPU | メモリ(GB) |
---|---|---|
db-memory-optimized-N-4 | 4 | 128 |
db-memory-optimized-N-8 | 8 | 256 |
db-memory-optimized-N-16 | 16 | 512 |
トラブルシューティング
問題 | トラブルシューティング |
---|---|
エラー メッセージ: Failed to create subnetwork. Router status is
temporarily unavailable. Please try again later. Help Token:
[token-ID] |
Cloud SQL インスタンスをもう一度作成してみてください。 |
次のステップ
- インスタンスへのアクセスを構成します。
- sqlcmd クライアントでインスタンスに接続します。
- インスタンスにデータベースを作成します。
- インスタンスにデータをインポートする。
- インスタンスにユーザーを作成する。
- インスタンスの設定について学習する。