このページでは、Cloud SQL for SQL Server インスタンスを作成する方法について説明します。
すべてのインスタンスの設定について詳しくは、インスタンスの設定をご覧ください。
新しく作成したインスタンスには sqlserver
データベースがあります。
Cloud SQL for SQL Server インスタンスを作成した後、データベースを作成またはインポートして、インスタンスに追加します。
1 つのプロジェクトで使用できるインスタンスの最大数は、インスタンスのネットワーク アーキテクチャによって異なります。
- 新しい SQL ネットワーク アーキテクチャ: プロジェクトあたり最大 1,000 個のインスタンスを使用できます。
- 以前の SQL ネットワーク アーキテクチャ: プロジェクトあたり最大 100 個のインスタンスを使用できます。
- 両方のアーキテクチャを使用する場合: 上限は、2 つのアーキテクチャ間のインスタンスの分布に応じて 100~1,000 の間になります。
この数を引き上げる必要がある場合は、サポートケースを送信してリクエストしてください。リードレプリカはインスタンスとしてカウントされます。
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 Enterprise Plus のみ) |
|
メモリ最適化 (Cloud SQL Enterprise Plus のみ) |
|
同時マルチスレッディング
Cloud SQL for SQL Server の同時マルチスレッディング(SMT)によって、1 つの物理コア上で 2 つの仮想 CPU(vCPU)を独立した別々のスレッドとして実行できます。SMT はデフォルトでは有効になっていますが、無効にすることも可能で、それによってライセンス費用を削減できる場合があります。
SMT を無効にすると、インスタンスのパフォーマンスに影響を与える可能性があります。SMT を無効にすることでインスタンスのパフォーマンスに与える影響を把握するには、インスタンスで負荷テストを行うことをおすすめします。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
ユーザー アカウントに Cloud SQL 管理者のロールと Compute 閲覧者のロールがあることを確認します。
ロールと権限について詳細を確認します。
SQL Server インスタンスを作成する
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [インスタンスの作成] ページの [データベース エンジンの選択] パネルで、[SQL Server を選択] をクリックします。
[SQL Server インスタンスを作成する] ページの [Cloud SQL のエディションの選択] セクションで、インスタンスの Cloud SQL エディション(
Enterprise
またはEnterprise Plus
)を選択します。Cloud SQL のエディションの詳細については、Cloud SQL の各エディションの概要をご覧ください。
- インスタンスのエディションのプリセットを選択します。使用可能なプリセットを表示するには、[エディションのプリセット] メニューをクリックします。
- [インスタンスの情報] セクションで、インスタンスのデータベース バージョンを選択します。使用可能なバージョンを表示するには、[データベースのバージョン] メニューをクリックします。
- [インスタンスの情報] ペインの [インスタンス ID] フィールドに、インスタンスの ID を入力します。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
- [パスワード] フィールドに、ユーザーのパスワードを入力します。
- [リージョンとゾーンの可用性の選択] セクションで、インスタンスのリージョンとゾーンを選択します。リージョンの可用性は、Cloud SQL for SQL Server のエディションによって異なる場合があります。詳細については、インスタンスの設定についてをご覧ください。
インスタンスにアクセスするリソースと同じリージョンにインスタンスを配置します。選択したリージョンは後から変更できません。ほとんどの場合、ゾーンを指定する必要はありません。
高可用性を目的とするインスタンスを構成する場合は、プライマリ ゾーンとセカンダリ ゾーンの両方を選択できます。
セカンダリ ゾーンがインスタンスの作成中に使用される場合は、次の条件が適用されます。
- ゾーンのデフォルトは、プライマリ ゾーンは
Any
、セカンダリ ゾーンはAny (different from primary)
です。 - プライマリ ゾーンとセカンダリ ゾーンの両方を指定する場合は、別々のゾーンにする必要があります。
- ゾーンのデフォルトは、プライマリ ゾーンは
- [インスタンスのカスタマイズ] セクションで、インスタンスの設定を更新します。最初に [構成オプションを表示] をクリックして、設定のグループを表示します。次に、設定の確認とカスタマイズを行うグループを開きます。選択したすべてのオプションの [サマリー] が右側に表示されます。これらのインスタンス設定のカスタマイズはオプションです。カスタマイズを行わない場合、デフォルト値が割り当てられます。
次の表は、インスタンスの設定のクイック リファレンスです。各設定の詳細については、インスタンスの設定ページをご覧ください。
設定 注 マシンタイプ マシンタイプ 軽量、標準(最も一般的)、ハイメモリから選択します。各マシンタイプは、インスタンスの CPU(コア)数とメモリ量で分類されます。 コア数 インスタンスの vCPU の数。詳細 メモリ インスタンスのメモリ量(GB)。詳細 カスタム 専用コア マシンタイプの場合は、事前定義された構成を選択するのではなく、[カスタム] ボタンを選択して、カスタム構成でインスタンスを作成します。このオプションを選択した場合は、インスタンスのコア数とメモリ量を選択する必要があります。詳細 ストレージ ストレージの種類 インスタンスで SSD または HDD のどちらのストレージを使用するかを指定します。詳細 ストレージ容量 インスタンスにプロビジョニングされているストレージ容量。詳細 ストレージの自動増量を有効にする 空き領域が少なくなったときに、Cloud SQL が自動的にインスタンス用のストレージを増やすかどうかを指定します。詳細 暗号化 Google マネージド暗号化 デフォルトのオプション。 顧客管理の暗号鍵(CMEK) Google Cloud Key Management Service でご自身の鍵を使用する場合は選択します。詳細 接続 プライベート IP インスタンスのプライベート IP アドレスを追加します。インスタンスへの接続を有効にするには、追加の構成が必要です
必要に応じて、接続に使用するインスタンスに割り当てる IP 範囲を指定できます。- [割り振られた IP 範囲のオプションを表示] を展開します。
- プルダウン メニューから IP 範囲を選択します。
インスタンスには、パブリック IP アドレスとプライベート IP アドレスの両方を設定できます。
- プライベート IP の使用方法をご確認ください。
- IP アドレス範囲の割り振りの詳細をご確認ください。
パブリック IP インスタンスのパブリック IP アドレスを追加します。その後、インスタンスに接続するための承認済みネットワークを追加できます。 インスタンスには、パブリック IP アドレスとプライベート IP アドレスの両方を設定できます。
パブリック IP の使用方法をご確認ください。
承認済みネットワーク 新しいネットワークの名前とネットワーク アドレスを追加します。詳細
データの保護 バックアップを自動化する バックアップを開始する時間枠。 バックアップの保存先を選択してください ほとんどのユースケースでは、マルチリージョンを選択します。バックアップを特定のリージョンに保存する必要がある場合(たとえば法規制の理由で保存する必要がある場合など)は、リージョンを選択して、[ロケーション] プルダウン メニューからリージョンを選択します。 保存する自動バックアップの数を選択する 保存する自動バックアップの数(1~365 日)。詳細 ポイントインタイム リカバリを有効にする ポイントインタイム リカバリとトランザクション ロギングを有効にします。詳細 削除からの保護を有効にする インスタンスを誤って削除しないように保護するかどうかを指定します。詳細 ログを保持する日数を選択する write-ahead log の保持期間は 1~7 日間で構成します。デフォルトの設定は 7 日間です。詳細 メンテナンス 優先ウィンドウ Cloud SQL がインスタンスに対し、中断メンテナンスを実行できる 1 時間の時間枠を指定します。この時間枠を設定しない場合、任意の時間に中断メンテナンスが行われる可能性があります。詳細 更新の順序 希望するインスタンス更新のタイミング。同じプロジェクトの他のインスタンスとの相対的なタイミングです。詳細 フラグ フラグを追加 データベース フラグを使用して、インスタンスの設定とパラメータを制御できます。詳細 ラベル ラベルを追加 追加するラベルごとにキーと値を追加します。ラベルはインスタンスの整理に役立ちます。 - [インスタンスを作成] をクリックします。
注: インスタンスの作成には数分かかることがあります。ただし、インスタンスの作成中にインスタンスに関する情報を確認できます。
パスワードをクリアテキストで表示するには、パスワードを表示アイコンをクリックします。
手動でパスワードを入力するか、[生成] をクリックしてパスワードを自動生成します。
gcloud
gcloud CLI のインストールと使用開始については、gcloud CLI のインストールをご覧ください。Cloud Shell の起動方法については、Cloud Shell のドキュメントをご覧ください。
gcloud
バージョン 243.0.0 以降を使用する必要があります。
gcloud sql instances create
コマンドを使用して、インスタンスを作成します。- ゾーンは有効なゾーンである必要があります。
- セカンダリ ゾーンを指定する場合は、プライマリ ゾーンも指定する必要があります。
- プライマリ ゾーンとセカンダリ ゾーンを指定する場合は、別々のゾーンにする必要があります。
- プライマリ ゾーンとセカンダリ ゾーンを指定する場合は、それらが同じリージョンに属している必要があります。
GOOGLE_MANAGED_INTERNAL_CA
: これがデフォルト値です。このオプションでは、各 Cloud SQL インスタンス専用の内部 CA が、対象のインスタンスのサーバー証明書に署名します。GOOGLE_MANAGED_CAS_CA
: このオプションでは、Cloud SQL によって管理され、 Google Cloud Certificate Authority Service(CA Service)でホストされるルート CA と下位サーバー CA で構成される CA 階層が使用されます。リージョン内の下位サーバー CA はサーバー証明書に署名し、リージョン内のインスタンス間で共有されます。
このオプションはプレビュー版です。--server-ca-mode
フラグの使用はプレビュー版です。CUSTOMER_MANAGED_CAS_CA
: このオプションを使用すると、自分で CA 階層を定義し、CA 証明書のローテーションを管理できます。インスタンスと同じリージョンの CA Service で CA プールを作成すると、プール内の CA のいずれかがサーバー証明書の署名に使用されます。このオプションはプレビュー版です。詳細については、顧客管理の CA を使用するをご覧ください。- ゾーンは有効なゾーンである必要があります。
- セカンダリ ゾーンを指定する場合は、プライマリ ゾーンも指定する必要があります。
- 自動的に割り振られた IP アドレスをメモします。
Cloud SQL Auth Proxy を使用しない場合は、アプリケーションまたはツールがインスタンスに接続するためのホストアドレスとしてこのアドレスを使用します。
- ユーザーのパスワードを設定します。
gcloud sql users set-password sqlserver no-host --instance=[INSTANCE_NAME] \ --password=[PASSWORD]
Cloud SQL Enterprise Plus エディションのインスタンスの場合:
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --region=REGION \ --tier=TIER \ --root-password=ROOT_PASSWORD \ --edition=ENTERPRISE_PLUS
Cloud SQL Enterprise エディションのインスタンスの場合:
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 をご覧ください。
REGION のデフォルト値は us-central1
です。
インスタンス名には機密情報や個人を特定できる情報を含めないでください。インスタンス名は外部から閲覧可能です。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
高可用性インスタンスを作成する場合は、--zone
パラメータと --secondary-zone
パラメータを使用して、プライマリ ゾーンとセカンダリ ゾーンの両方を指定できます。セカンダリ ゾーンがインスタンスの作成中または編集中に使用される場合は、次の条件が適用されます。
パラメータを追加して、他のインスタンス設定を指定できます。
設定 | パラメータ | 備考 |
---|---|---|
必須パラメータ | ||
データベースのバージョン | --database-version |
Cloud SQL エディションに基づくデータベース バージョン。 |
リージョン | --region |
有効な値を参照してください。 |
接続 | ||
プライベート IP | --network
|
--network : このインスタンスに使用する VPC ネットワーク名を指定します。このネットワークに対して、プライベート サービス アクセスがすでに構成されている必要があります。ベータ版のコマンド(gcloud beta sql instances create )でのみ使用できます。
|
パブリック IP | --authorized-networks |
パブリック IP 接続の場合は、承認済みネットワークからのみ、インスタンスに接続できます。詳細 |
サーバー CA モード | --server-ca-mode |
|
マシンタイプとストレージ | ||
マシンタイプ | --tier |
|
ストレージの種類 | --storage-type |
インスタンスで SSD または HDD のどちらのストレージを使用するかを指定します。詳細 |
ストレージ容量 | --storage-size |
インスタンスにプロビジョニングされているストレージ容量(GB 単位)。詳細 |
ストレージの自動増量 | --storage-auto-increase |
空き領域が少なくなったときに、Cloud SQL が自動的にインスタンス用のストレージを増やすかどうかを指定します。詳細 |
ストレージの自動増量の上限 | --storage-auto-increase-limit |
Cloud SQL が自動的に増量できるストレージ容量の上限を指定します。ベータ版のコマンド(gcloud beta sql instances create )でのみ使用できます。詳細
|
自動バックアップと高可用性 | ||
高可用性 | --availability-type |
高可用性インスタンスの場合は、REGIONAL に設定します。詳細
|
セカンダリ ゾーン | --secondary-zone |
高可用性のインスタンスを作成している場合は、--zone と --secondary-zone parameters を使用して、プライマリ ゾーンとセカンダリ ゾーンの両方を指定できます。セカンダリ ゾーンがインスタンスの作成中または編集中に使用される場合は、次の制限が適用されます。プライマリ ゾーンとセカンダリ ゾーンを指定する場合は、別々のゾーンにする必要があります。 プライマリ ゾーンとセカンダリ ゾーンを指定する場合は、それらが同じリージョンに属している必要があります。 |
自動バックアップ | --backup-start-time |
バックアップを開始する時間枠。 |
自動バックアップ保持期間の設定 | --retained-backups-count |
保持する自動バックアップの数。詳細 |
トランザクション ログの保持設定 | --retained-transaction-log-days |
ポイントインタイム リカバリのトランザクション ログを保持する日数。詳細 |
ポイントインタイム リカバリ | --enable-point-in-time recovery |
ポイントインタイム リカバリとトランザクション ログを有効にします。詳細 |
データベース フラグの追加 | ||
データベース フラグ | --database-flags |
データベース フラグを使用して、インスタンスの設定とパラメータを制御できます。データベース フラグの詳細。 |
メンテナンス スケジュール | ||
メンテナンスの時間枠 | --maintenance-window-day 、
--maintenance-window-hour |
Cloud SQL がインスタンスに対し、中断メンテナンスを実行できる 1 時間の時間枠を指定します。この時間枠を設定しない場合、任意の時間に中断を伴うメンテナンスが行われる可能性があります。詳細 |
メンテナンスのタイミング | --maintenance-release-channel |
希望するインスタンス更新のタイミング。同じプロジェクトの他のインスタンスとの相対的なタイミングです。他のインスタンスより前に更新する場合は preview を使用し、後に更新する場合は production を使用します。詳細 |
カスタム SAN | ||
カスタム サブジェクト代替名(SAN)の追加 | --custom-subject-alternative-names=DNS_NAMES |
IP アドレスではなくカスタム DNS 名を使用して Cloud SQL インスタンスに接続する場合は、インスタンスの作成時にカスタム サブジェクト代替名(SAN)設定を構成します。カスタム SAN 設定に挿入したカスタム DNS 名は、インスタンスのサーバー証明書の SAN フィールドに追加されます。これにより、ホスト名の検証でカスタム DNS 名を安全に使用できます。 クライアントとアプリケーションでカスタム DNS 名を使用するには、DNS 名と IP アドレスのマッピングを設定する必要があります。これは DNS の解決と呼ばれます。カスタム SAN 設定には、最大 3 つのカスタム DNS 名をカンマ区切りで追加できます。 |
Terraform
インスタンスを作成するには、Terraform リソースを使用します。
変更を適用する
Google Cloud プロジェクトで Terraform 構成を適用するには、次のセクションの手順を完了します。
Cloud Shell を準備する
- Cloud Shell を起動します。
-
Terraform 構成を適用するデフォルトの Google Cloud プロジェクトを設定します。
このコマンドは、プロジェクトごとに 1 回だけ実行する必要があります。これは任意のディレクトリで実行できます。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 構成ファイルに明示的な値を設定すると、環境変数がオーバーライドされます。
ディレクトリを準備する
Terraform 構成ファイルには独自のディレクトリ(ルート モジュールとも呼ばれます)が必要です。
-
Cloud Shell で、ディレクトリを作成し、そのディレクトリ内に新しいファイルを作成します。ファイルの拡張子は
.tf
にする必要があります(例:main.tf
)。このチュートリアルでは、このファイルをmain.tf
とします。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
チュートリアルを使用している場合は、各セクションまたはステップのサンプルコードをコピーできます。
新しく作成した
main.tf
にサンプルコードをコピーします。必要に応じて、GitHub からコードをコピーします。Terraform スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。
- 環境に適用するサンプル パラメータを確認し、変更します。
- 変更を保存します。
-
Terraform を初期化します。これは、ディレクトリごとに 1 回だけ行います。
terraform init
最新バージョンの Google プロバイダを使用する場合は、
-upgrade
オプションを使用します。terraform init -upgrade
変更を適用する
-
構成を確認して、Terraform が作成または更新するリソースが想定どおりであることを確認します。
terraform plan
必要に応じて構成を修正します。
-
次のコマンドを実行します。プロンプトで「
yes
」と入力して、Terraform 構成を適用します。terraform apply
Terraform に「Apply complete!」というメッセージが表示されるまで待ちます。
- Google Cloud プロジェクトを開いて結果を表示します。Google Cloud コンソールの UI でリソースに移動して、Terraform によって作成または更新されたことを確認します。
変更を削除する
変更を削除するには、次の手順を行います。
- 削除の保護を無効にするには、Terraform 構成ファイルで
deletion_protection
引数をfalse
に設定します。deletion_protection = "false"
- 次のコマンドを実行します。プロンプトで「
yes
」と入力して、更新された Terraform 構成を適用します。terraform apply
-
次のコマンドを実行します。プロンプトで「
yes
」と入力して、以前に Terraform 構成で適用されたリソースを削除します。terraform destroy
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"
のような文字列を指定できます。詳細をご確認ください。
Managed Microsoft AD と統合されたインスタンスを作成するには、domain
フィールドにドメイン(subdomain.mydomain.com
など)を指定します。詳細については、Windows 認証を使用するインスタンスを作成するをご覧ください。さらに、別のプロジェクトの Managed Microsoft 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
に設定します。 - PRIVATE_NETWORK: このインスタンスに使用する Virtual Private Cloud(VPC)ネットワークの名前を指定します。このネットワークに対して、プライベート サービス アクセスがすでに構成されている必要があります。
- AUTHORIZED_NETWORKS パブリック IP 接続の場合は、インスタンスに接続できる承認済みネットワークからの接続を指定します。
- CA_MODE: インスタンスの認証局階層(
GOOGLE_MANAGED_INTERNAL_CA
またはGOOGLE_MANAGED_CAS_CA
)を指定します。serverCaMode
を指定しない場合、デフォルトの構成はGOOGLE_MANAGED_INTERNAL_CA
です。この機能はプレビュー版です。 - DNS_NAMES: Cloud SQL インスタンスのサーバー証明書に、最大 3 つの DNS 名をカンマ区切りで追加します。1 つの証明書で複数の DNS 名を保護できます。この機能はプレビュー版で、
CUSTOMER_MANAGED_CAS_CA
インスタンスでのみ使用できます。
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 }, "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [AUTHORIZED_NETWORKS], "ipv4Enabled": false, "serverCaMode": "CA_MODE", "customSubjectAlternativeNames": "DNS_NAMES" } } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような 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"
のような文字列を指定できます。詳細をご確認ください。
Managed Microsoft AD と統合されたインスタンスを作成するには、domain
フィールドにドメイン(subdomain.mydomain.com
など)を指定します。詳細については、Windows 認証を使用するインスタンスを作成するをご覧ください。さらに、別のプロジェクトの Managed Microsoft 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
に設定します。 - PRIVATE_NETWORK: このインスタンスに使用する Virtual Private Cloud(VPC)ネットワークの名前を指定します。このネットワークに対して、プライベート サービス アクセスがすでに構成されている必要があります。
- AUTHORIZED_NETWORKS パブリック IP 接続の場合は、インスタンスに接続できる承認済みネットワークからの接続を指定します。
- CA_MODE: インスタンスの認証局階層(
GOOGLE_MANAGED_INTERNAL_CA
またはGOOGLE_MANAGED_CAS_CA
)を指定します。serverCaMode
を指定しない場合、デフォルトの構成はGOOGLE_MANAGED_INTERNAL_CA
です。この機能はプレビュー版です。 - DNS_NAMES: Cloud SQL インスタンスのサーバー証明書に、最大 3 つの DNS 名をカンマ区切りで追加します。1 つの証明書で複数の DNS 名を保護できます。この機能はプレビュー版で、
CUSTOMER_MANAGED_CAS_CA
インスタンスでのみ使用できます。
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 }, "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [AUTHORIZED_NETWORKS], "ipv4Enabled": false, "serverCaMode": "CA_MODE", "customSubjectAlternativeNames": "DNS_NAMES" } } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような 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" }
書き込みエンドポイントを生成する
Cloud SQL Enterprise Plus エディションのインスタンスを作成する場合に、インスタンスの書き込みエンドポイントを自動的に生成するには、Google Cloud プロジェクトで Cloud DNS API を有効にしてください。
Cloud SQL Enterprise Plus エディションのインスタンスがすでに存在する場合に、書き込みエンドポイントを自動的に生成するには、高度な障害復旧が有効になっているレプリカを作成します。
書き込みエンドポイントは、現在のプライマリ インスタンスの IP アドレスに自動的に解決されるグローバル ドメイン名サービス(DNS)名です。このエンドポイントは、レプリカのフェイルオーバーまたはスイッチオーバー オペレーションが発生した場合に、受信接続を新しいプライマリ インスタンスに自動的にリダイレクトします。IP アドレスの代わりに、SQL 接続文字列で書き込みエンドポイントを使用できます。書き込みエンドポイントを使用すると、リージョンが停止した場合にアプリケーション接続を変更する必要がなくなります。
インスタンスの書き込みエンドポイントの取得の詳細については、インスタンスの情報を表示するをご覧ください。書き込みエンドポイントを使用してインスタンスに接続する方法については、書き込みエンドポイントを使用して接続するをご覧ください。
カスタム インスタンス構成
カスタム インスタンス構成では、インスタンスに必要なメモリと CPU の量を自分で選択できます。この柔軟性により、ワークロードに適した VM の形状を選択できます。使用可能なマシンタイプは、Cloud SQL for SQL Server のエディションによって異なります。
リアルタイム処理を必要とするワークロードの場合は、ワーキング セット全体を格納するのに十分なメモリをインスタンスで確保してください。ただし、メモリ要件に影響を与える可能性がある要素はほかにもあります(アクティブな接続の数や内部オーバーヘッド プロセスなど)。本番環境でパフォーマンスの問題が発生しないように、負荷テストを実施する必要があります。
インスタンスの構成時に、ワークロードを処理するのに十分なメモリと 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 |
制限事項
- カスタム SAN を使用して、Cloud SQL インスタンスのサーバー証明書に 3 つを超える DNS 名を追加することはできません。
- カスタム SAN を使用してインスタンスの証明書に追加できる DNS 名の最大長は 253 文字です。
- インスタンスの証明書に追加する DNS 名には、ワイルドカード文字(
*
)や末尾のドット(test.example.com.
など)を含めることはできません。 - DNS 名は、RFC 1034 で規定されている有効な名前である必要があります。
- カスタム SAN は
CUSTOMER_MANAGED_CAS_CA
インスタンスでのみ使用できます。
トラブルシューティング
問題 | トラブルシューティング |
---|---|
エラー メッセージ: Failed to create subnetwork. Router status is
temporarily unavailable. Please try again later. Help Token:
[token-ID] |
Cloud SQL インスタンスをもう一度作成してみてください。 |
次のステップ
- インスタンスに SQL Server データベースを作成する。
- インスタンスに SQL Server ユーザーを作成する。
- インスタンスへのアクセスの保護と制御を行う。
- SQL Server クライアントを使用してインスタンスに接続する。
- データベースにデータをインポートする。
- インスタンスの設定について確認する。