インスタンスを作成する

このページでは、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 for SQL Server の同時マルチスレッディング(SMT)によって、1 つの物理コア上で 2 つの仮想 CPU(vCPU)を独立した別々のスレッドとして実行できます。SMT はデフォルトでは有効になっていますが、無効にすることも可能で、それによってライセンス費用を削減できる場合があります。

SMT を無効にすると、インスタンスのパフォーマンスに影響を与える可能性があります。SMT を無効にすることでインスタンスのパフォーマンスに与える影響を把握するには、インスタンスで負荷テストを行うことをおすすめします。

始める前に

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. gcloud CLIインストールします。

  5. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  6. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Verify that billing is enabled for your Google Cloud project.

  9. gcloud CLIインストールします。

  10. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  11. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  12. ユーザー アカウントに次のロールがあることを確認します。

    IAM ページに移動

    ロールと権限について詳細を確認します

SQL Server インスタンスを作成する

コンソール

  1. Google Cloud コンソールで、Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. [インスタンスを作成] をクリックします。
  3. [新しいインスタンス] を選択します。
  4. [インスタンスの作成] ページの [データベース エンジンの選択] パネルで、[SQL Server を選択] をクリックします。
  5. [SQL Server インスタンスを作成する] ページの [Cloud SQL のエディションの選択] セクションで、インスタンスの Cloud SQL エディション(Enterprise または Enterprise Plus)を選択します。

    Cloud SQL のエディションの詳細については、Cloud SQL の各エディションの概要をご覧ください。

  6. インスタンスのエディションのプリセットを選択します。使用可能なプリセットを表示するには、[エディションのプリセット] メニューをクリックします。
  7. [インスタンスの情報] セクションで、インスタンスのデータベース バージョンを選択します。使用可能なバージョンを表示するには、[データベースのバージョン] メニューをクリックします。
  8. [インスタンスの情報] ペインの [インスタンス ID] フィールドに、インスタンスの ID を入力します。

    インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。

  9. [パスワード] フィールドに、ユーザーのパスワードを入力します。
  10. パスワードをクリアテキストで表示するには、パスワードを表示アイコンをクリックします。

    手動でパスワードを入力するか、[生成] をクリックしてパスワードを自動生成します。

  11. [リージョンとゾーンの可用性の選択] セクションで、インスタンスのリージョンとゾーンを選択します。リージョンの可用性は、Cloud SQL for SQL Server のエディションによって異なる場合があります。詳細については、インスタンスの設定についてをご覧ください。

    インスタンスにアクセスするリソースと同じリージョンにインスタンスを配置します。選択したリージョンは後から変更できません。ほとんどの場合、ゾーンを指定する必要はありません。

    高可用性を目的とするインスタンスを構成する場合は、プライマリ ゾーンとセカンダリ ゾーンの両方を選択できます。

    セカンダリ ゾーンがインスタンスの作成中に使用される場合は、次の条件が適用されます。

    • ゾーンのデフォルトは、プライマリ ゾーンは Any、セカンダリ ゾーンは Any (different from primary) です。
    • プライマリ ゾーンとセカンダリ ゾーンの両方を指定する場合は、別々のゾーンにする必要があります。
  12. [インスタンスのカスタマイズ] セクションで、インスタンスの設定を更新します。[構成オプションを表示] をクリックして、設定のグループを表示します。次に、設定の確認とカスタマイズを行うグループを開きます。選択したすべてのオプションの [サマリー] が右側に表示されます。これらのインスタンス設定のカスタマイズはオプションです。カスタマイズを行わない場合、デフォルト値が割り当てられます。

    次の表は、インスタンスの設定のクイック リファレンスです。各設定の詳細については、インスタンスの設定ページをご覧ください。

    設定
    マシンタイプ
    マシンタイプ 軽量、標準(最も一般的)、ハイメモリから選択します。各マシンタイプは、インスタンスの CPU(コア)数とメモリ量で分類されます。
    コア数 インスタンスの vCPU の数。詳細
    メモリ インスタンスのメモリ量(GB)。詳細
    カスタム 専用コア マシンタイプの場合は、事前定義された構成を選択するのではなく、[カスタム] ボタンを選択して、カスタム構成でインスタンスを作成します。このオプションを選択した場合は、インスタンスのコア数とメモリ量を選択する必要があります。詳細については、こちらをご覧ください。
    データ キャッシュ
    データ キャッシュを有効にする デフォルトでは、Cloud SQL for SQL Server Enterprise Plus エディションのインスタンスでは、データ キャッシュを有効にするオプションが自動的に選択されます。データ キャッシュを有効にしない場合は、[データ キャッシュを有効にする] チェックボックスをオフにします。データ キャッシュの詳細については、データ キャッシュをご覧ください。
    ストレージ
    ストレージの種類 インスタンスで SSD または HDD のどちらのストレージを使用するかを指定します。詳細
    ストレージ容量 インスタンスにプロビジョニングされているストレージ容量。詳細
    ストレージの自動増量を有効にする 空き領域が少なくなったときに、Cloud SQL が自動的にインスタンス用のストレージを増やすかどうかを指定します。詳細
    暗号化
    Google マネージド暗号化デフォルトのオプション。
    顧客管理の暗号鍵(CMEK)Google Cloud Key Management Service でご自身の鍵を使用する場合は選択します。詳細
    接続
    プライベート IP インスタンスのプライベート IP アドレスを追加します。インスタンスに、プライベート サービス アクセス接続、Private Service Connect 接続、またはその両方を選択します。選択したネットワークが、インスタンスのプライベート ネットワーク接続を提供します。いずれの場合も、追加の構成が必要です。

    プライベート サービス アクセスを選択して構成する手順は次のとおりです。

    1. [プライベート サービス アクセス(PSA)] チェックボックスをオンにします。
    2. [VPC ネットワーク] プルダウン メニューから、インスタンスが接続するネットワークの名前を選択します。
    3. [割り当てられた IP 範囲] プルダウン メニューから、[自動] を選択するか、プルダウン メニューから特定の名前付き IP 範囲を選択します。

    プライベート サービス アクセスの構成の詳細については、プライベート サービス アクセスを構成するをご覧ください。インスタンスには、パブリック IP アドレスとプライベート IP アドレスの両方を設定できます。

    Private Service Connect を選択して構成する手順は次のとおりです。

    1. [Private Service Connect(PSC)] チェックボックスをオンにします。
    2. [エンドポイントを追加] をクリックします。
    3. [エンドポイントの設定] セクションで、次の操作を行います。
      • [新しいエンドポイント] カードの [プロジェクト] プルダウンから、エンドポイントを設定するプロジェクトを選択します。
      • [ネットワーク] プルダウンから、エンドポイントのネットワークを選択します。
      • Network Connectivity API がまだ有効になっていない場合は、[有効にする] をクリックします。
    4. サービス接続ポリシーを自動的に作成する権限を設定するには、[ネットワーク設定を確認] をクリックします。

    Private Service Connect の構成の詳細については、Private Service Connect を構成するをご覧ください。

    パブリック IP インスタンスのパブリック IP アドレスを追加します。その後、インスタンスに接続するための承認済みネットワークを追加できます。

    インスタンスには、パブリック IP アドレスとプライベート IP アドレスの両方を設定できます。

    パブリック IP の使用方法をご確認ください。

    承認済みネットワーク

    新しいネットワークの名前とネットワーク アドレスを追加します。詳細

    Data API を許可する

    このチェックボックスをオンにすると、承認されたユーザーが Data API を呼び出して、インスタンスで SQL ステートメントを実行できるようになります。プライベート IP のみを持つインスタンスの場合、これにより、承認されたユーザーがパブリック インターネットから Data API を呼び出すことができます。

    セキュリティ
    サーバー認証局モード

    この Cloud SQL インスタンスのサーバー証明書に署名する認証局(CA)のタイプを選択してください。詳細

    デフォルトでは、 Google Cloud コンソールでインスタンスを作成すると、インスタンスは Google が管理する内部認証局GOOGLE_MANAGED_INTERNAL_CA)を使用します。これはインスタンスごとの CA オプションです。

    サーバー証明書の自動ローテーション

    インスタンスのサーバー CA モードとして、Google 管理の CAS 認証局(CA)(GOOGLE_MANAGED_CAS_CA)または顧客管理の CAS 内部認証局(CUSTOMER_MANAGED_CAS_CA)のいずれかのオプションを選択した場合、インスタンスのサーバー証明書を自動的にローテーションするかどうかを選択できます。Cloud SQL サーバー証明書の自動ローテーションの詳細については、 サーバー証明書の自動ローテーションを有効にするをご覧ください。

    デフォルトでは、このオプションは無効になっています。
    データの保護
    バックアップ ティア インスタンスのバックアップ オプション拡張バックアップ標準バックアップのいずれかを選択できます。
    バックアップを自動化する バックアップを開始する時間枠。
    バックアップの保存先を選択してくださいほとんどのユースケースでは、マルチリージョンを選択します。バックアップを特定のリージョンに保存する必要がある場合(たとえば法規制の理由で保存する必要がある場合など)は、リージョンを選択して、[ロケーション] プルダウン メニューからリージョンを選択します。
    保存する自動バックアップの数を選択する保存する自動バックアップの数(1~365 日)。詳細
    ポイントインタイム リカバリを有効にする ポイントインタイム リカバリとトランザクション ロギングを有効にします。詳細については、こちらをご覧ください。
    削除からの保護を有効にする インスタンスを誤って削除しないように保護するかどうかを指定します。詳細
    インスタンスの削除後に保持バックアップを有効にする インスタンスの削除後に自動バックアップとオンデマンド バックアップを保持するかどうかを決定します。詳細
    ログを保持する日数を選択する write-ahead log の保持期間は 1~7 日間で構成します。デフォルトの設定は 7 日間です。詳細
    メンテナンス
    優先ウィンドウ Cloud SQL がインスタンスに対し、中断メンテナンスを実行できる 1 時間の時間枠を指定します。この時間枠を設定しない場合、任意の時間に中断メンテナンスが行われる可能性があります。詳細
    更新の順序 希望するインスタンス更新のタイミング。同じプロジェクトの他のインスタンスとの相対的なタイミングです。詳細
    フラグ
    フラグを追加 データベース フラグを使用して、インスタンスの設定とパラメータを制御できます。詳細
    Query Insights
    Query Insights を有効にする

    このチェックボックスをオンにすると、インスタンスで Query Insights が有効になります。Query Insights は、クエリのパフォーマンス、クエリテキスト、クエリ実行プランなど、データベース クエリに関する詳細情報を提供します。Query Insights を選択すると、Query Insights に関連付けられている追加機能を有効にできます。これらの機能とクエリ分析情報の詳細については、Query Insights を使用してクエリのパフォーマンスを改善するをご覧ください。

    ラベル
    ラベルを追加追加するラベルごとにキーと値を追加します。ラベルはインスタンスの整理に役立ちます。
  13. [インスタンスを作成] をクリックします。

    注: インスタンスの作成には数分かかることがあります。ただし、インスタンスの作成中にインスタンスに関する情報を確認できます。

gcloud

gcloud CLI のインストールと使用開始については、gcloud CLI のインストールをご覧ください。Cloud Shell の起動方法については、Cloud Shell のドキュメントをご覧ください。

gcloud バージョン 243.0.0 以降を使用する必要があります。

  1. gcloud sql instances create コマンドを使用して、インスタンスを作成します。
  2. 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

    --no-assign-ip(オプション)

    --allocated-ip-range-name(オプション)

    --enable-google-private-path(オプション)



    Private Service Connect

    --no-assign-ip

    --enable-private-service-connect

    --allowed-psc-projects

    --psc-auto-connections

    --enable-psc-auto-connection-policy

    --network: このインスタンスに使用する VPC ネットワーク名を指定します。このネットワークに対して、プライベート サービス アクセスがすでに構成されている必要があります。ベータ版のコマンド(gcloud beta sql instances create)でのみ使用できます。

    --no-assign-ip: インスタンスにはプライベート IP アドレスしかありません。

    --allocated-ip-range-name: 指定すると、IP 範囲が割り振られる範囲名が設定されます。たとえば、google-managed-services-default のようにします。範囲名は RFC-1035 を遵守し、1~63 文字にする必要があります。(gcloud alpha sql instances create

    プライベート IP 接続に Private Service Connect を使用する Cloud SQL インスタンスの場合は、次のフラグを使用します。

    --enable-private-service-connect: Private Service Connect を使用して Cloud SQL インスタンスへのプライベート ネットワーク接続を有効にします。詳細については、Cloud SQL の Private Service Connect の概要をご覧ください。

    --allowed-psc-projects: Private Service Connect エンドポイントに Cloud SQL インスタンスへの接続を許可するプロジェクトの ID またはプロジェクト番号のカンマ区切りリスト。

    --psc-auto-connections: Cloud SQL インスタンスのエンドポイントを自動的に設定する場合は、このフラグを使用して、Private Service Connect エンドポイントのコンシューマー ネットワークとプロジェクトを指定します。

    --enable-psc-auto-connection-policy: 指定した場合、 Google Cloud は Private Service Connect エンドポイントのコンシューマー ネットワークとプロジェクトでサービス接続ポリシーを作成または更新します。

    Private Service Connect の構成の詳細については、Private Service Connect を構成するをご覧ください。

    Data API アクセス --data-api-access Data API を使用してインスタンスへの接続を制御します。デフォルトでは許可されていません。ユーザーが Data API を使用してインスタンスに接続できるようにするには、値を ALLOW_DATA_API に設定します。プライベート IP アドレスのみで構成されたインスタンスの場合、承認されたユーザーはパブリック インターネットからインスタンスの Data API を呼び出すことができます。Data API の使用を禁止するには、値を DISALLOW_DATA_API に設定します。
    パブリック IP --authorized-networks パブリック IP 接続の場合は、承認済みネットワークからのみ、インスタンスに接続できます。詳細
    サーバー CA モード --server-ca-mode

    --server-ca-mode フラグは、インスタンスのサーバー認証局(CA)のタイプを構成します。管理者は次のいずれかを選択できます。

    • GOOGLE_MANAGED_INTERNAL_CA: これがデフォルト値です。このオプションでは、各 Cloud SQL インスタンス専用の内部 CA が、対象のインスタンスのサーバー証明書に署名します。
    • GOOGLE_MANAGED_CAS_CA: このオプションでは、Cloud SQL によって管理され、 Google Cloud Certificate Authority Service(CA Service)でホストされるルート CA と下位サーバー CA で構成される CA 階層が使用されます。リージョン内の下位サーバー CA はサーバー証明書に署名し、リージョン内のインスタンス間で共有されます。
    • CUSTOMER_MANAGED_CAS_CA: このオプションを使用すると、自分で CA 階層を定義し、CA 証明書のローテーションを管理できます。インスタンスと同じリージョンの CA Service で CA プールを作成します。プール内の CA のいずれかがサーバー証明書の署名に使用されます。 詳細については、顧客管理の CA を使用するをご覧ください。
    サーバー証明書の自動ローテーション --server-certificate-rotation-mode

    --server-certificate-rotation-mode フラグは、インスタンスのサーバー証明書のローテーション モードのタイプを構成します。管理者は次のいずれかを選択できます。

    • NO_AUTOMATIC_ROTATION: これがデフォルト値です。このオプションを使用すると、サーバー証明書の自動ローテーションは行われません。サーバー証明書は手動でローテーションする必要があります。
    • AUTOMATIC_ROTATION_DURING_MAINTENANCE: このオプションを使用すると、Cloud SQL の定期メンテナンスまたはセルフサービス メンテナンス更新中に、サーバー証明書の自動ローテーションが有効になります。server_ca_modeGOOGLE_MANAGED_CAS_CA または CUSTOMER_MANAGED_CAS_CA である必要があります。
    ネットワーク アーキテクチャ --enforce-new-sql-network-architecture インスタンスの作成時に新しいネットワーク アーキテクチャが確実に使用されるようにします。プロジェクトが新しいネットワーク アーキテクチャに完全にアップグレードされる前にインスタンスを作成するときにこのフラグを使用すると、割り振られた IP 範囲に十分な IP アドレスが残っていない場合、IP アドレスの過剰消費やインスタンスの作成失敗につながる可能性があります。詳細については、インスタンスを新しいネットワーク アーキテクチャにアップグレードするIP アドレス範囲を割り振るをご覧ください。
    マシンタイプとストレージ
    マシンタイプ --tier
    ストレージの種類 --storage-type インスタンスで SSD または HDD のどちらのストレージを使用するかを指定します。詳細
    ストレージ容量 --storage-size インスタンスにプロビジョニングされているストレージ容量(GB 単位)。詳細
    ストレージの自動増量 --storage-auto-increase 空き領域が少なくなったときに、Cloud SQL が自動的にインスタンス用のストレージを増やすかどうかを指定します。詳細
    ストレージの自動増量の上限 --storage-auto-increase-limit Cloud SQL が自動的に増量できるストレージ容量の上限を指定します。詳細
    自動バックアップと高可用性
    高可用性 --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 を使用します。詳細については、こちらをご覧ください。
    Query Insights
    --insights-config-query-insights-enabled Query Insights でクエリとクエリプランの分析を行うことができます。
    カスタム SAN
    カスタム サブジェクト代替名(SAN)の追加 --custom-subject-alternative-names=DNS_NAMES

    IP アドレスではなくカスタム DNS 名を使用して Cloud SQL インスタンスに接続する場合は、インスタンスの作成時にカスタム サブジェクト代替名(SAN)設定を構成します。カスタム SAN 設定に挿入したカスタム DNS 名は、インスタンスのサーバー証明書の SAN フィールドに追加されます。これにより、ホスト名の検証でカスタム DNS 名を安全に使用できます。

    クライアントとアプリケーションでカスタム DNS 名を使用するには、DNS 名と IP アドレスのマッピングを設定する必要があります。これは DNS の解決と呼ばれます。カスタム SAN 設定には、最大 3 つのカスタム DNS 名をカンマ区切りで追加できます。

  3. 自動的に割り振られた IP アドレスをメモします。

    Cloud SQL Auth Proxy を使用しない場合は、アプリケーションまたはツールがインスタンスに接続するためのホストアドレスとしてこのアドレスを使用します。

  4. ユーザーのパスワードを設定します。
          gcloud sql users set-password sqlserver no-host --instance=[INSTANCE_NAME] \
           --password=[PASSWORD]
          

Terraform

インスタンスを作成するには、Terraform リソースを使用します。

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
  }
}

変更を適用する

Google Cloud プロジェクトで Terraform 構成を適用するには、次のセクションの手順を完了します。

Cloud Shell を準備する

  1. Cloud Shell を起動します。
  2. Terraform 構成を適用するデフォルトの Google Cloud プロジェクトを設定します。

    このコマンドは、プロジェクトごとに 1 回だけ実行する必要があります。これは任意のディレクトリで実行できます。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Terraform 構成ファイルに明示的な値を設定すると、環境変数がオーバーライドされます。

ディレクトリを準備する

Terraform 構成ファイルには独自のディレクトリ(ルート モジュールとも呼ばれます)が必要です。

  1. Cloud Shell で、ディレクトリを作成し、そのディレクトリ内に新しいファイルを作成します。ファイル名の拡張子は .tf にする必要があります(例: main.tf)。このチュートリアルでは、このファイルを main.tf とします。
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. チュートリアルを使用している場合は、各セクションまたはステップのサンプルコードをコピーできます。

    新しく作成した main.tf にサンプルコードをコピーします。

    必要に応じて、GitHub からコードをコピーします。Terraform スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。

  3. 環境に適用するサンプル パラメータを確認し、変更します。
  4. 変更を保存します。
  5. Terraform を初期化します。これは、ディレクトリごとに 1 回だけ行います。
    terraform init

    最新バージョンの Google プロバイダを使用する場合は、-upgrade オプションを使用します。

    terraform init -upgrade

変更を適用する

  1. 構成を確認して、Terraform が作成または更新するリソースが想定どおりであることを確認します。
    terraform plan

    必要に応じて構成を修正します。

  2. 次のコマンドを実行します。プロンプトで「yes」と入力して、Terraform 構成を適用します。
    terraform apply

    Terraform に「Apply complete!」というメッセージが表示されるまで待ちます。

  3. Google Cloud プロジェクトを開いて結果を表示します。 Google Cloud コンソールの UI でリソースに移動して、Terraform によって作成または更新されたことを確認します。

変更を削除する

変更を削除するには、次の手順を行います。

  1. 削除からの保護を無効にするには、Terraform 構成ファイルで deletion_protection 引数を false に設定します。
    deletion_protection =  "false"
  2. 次のコマンドを実行します。プロンプトで「yes」と入力して、更新された Terraform 構成を適用します。
    terraform apply
  1. 次のコマンドを実行します。プロンプトで「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 ドメインと統合するための手順と制約に注意してください。

リクエスト本文での machine-type 値の設定については、マシンシリーズを選択するをご覧ください。

リクエストのデータを使用する前に、次のように置き換えます。

  • 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 です。この機能はプレビュー版です。
  • SERVER_CERTIFICATE_ROTATION_MODE: インスタンスのサーバー証明書の自動ローテーションを行う場合は、AUTOMATIC_ROTATION_DURING_MAINTENANCE を指定します。serverCertificateRotationMode を指定しない場合、デフォルトの構成は NO_AUTOMATIC_ROTATION です。
  • DNS_NAMES: Cloud SQL インスタンスのサーバー証明書に、最大 3 つの DNS 名をカンマ区切りで追加します。1 つの証明書で複数の DNS 名を保護できます。この機能はプレビュー版で、CUSTOMER_MANAGED_CAS_CA インスタンスでのみ使用できます。

sqlNetworkArchitecture フィールドを使用すると、プロジェクトが完全にアップグレードされていない場合でも、インスタンスの作成時に新しいネットワーク アーキテクチャが必ず使用されます。新しいネットワーク アーキテクチャとその影響の詳細については、インスタンスを新しいネットワーク アーキテクチャにアップグレードするIP アドレス範囲を割り振るをご覧ください。

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",
      "serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE",
      "customSubjectAlternativeNames": "DNS_NAMES"
    },
    "dataApiAccess": "ALLOW_DATA_API"
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような 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 Service for Microsoft Active Directory と連携するインスタンスを作成するには、domain フィールドにドメイン(subdomain.mydomain.com など)を指定します。詳細については、Windows 認証を使用するインスタンスを作成するをご覧ください。さらに、別のプロジェクトの Managed Microsoft AD ドメインと統合するための手順と制約に注意してください。

リクエスト本文での machine-type 値の設定については、マシンシリーズを選択するをご覧ください。

リクエストのデータを使用する前に、次のように置き換えます。

  • 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 です。この機能はプレビュー版です。
  • SERVER_CERTIFICATE_ROTATION_MODE: インスタンスのサーバー証明書の自動ローテーションを行う場合は、AUTOMATIC_ROTATION_DURING_MAINTENANCE を指定します。serverCertificateRotationMode を指定しない場合、デフォルトの構成は NO_AUTOMATIC_ROTATION です。
  • DNS_NAMES: Cloud SQL インスタンスのサーバー証明書に、最大 3 つの DNS 名をカンマ区切りで追加します。1 つの証明書で複数の DNS 名を保護できます。この機能はプレビュー版で、CUSTOMER_MANAGED_CAS_CA インスタンスでのみ使用できます。

sqlNetworkArchitecture フィールドを使用すると、プロジェクトが完全にアップグレードされていない場合でも、インスタンスの作成時に新しいネットワーク アーキテクチャが必ず使用されます。新しいネットワーク アーキテクチャとその影響の詳細については、インスタンスを新しいネットワーク アーキテクチャにアップグレードするIP アドレス範囲を割り振るをご覧ください。

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",
      "serverCertificateRotationMode": "SERVER_CERTIFICATE_ROTATION_MODE",
      "customSubjectAlternativeNames": "DNS_NAMES"
    },
    "dataApiAccess": "ALLOW_DATA_API"
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような 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"
}
基盤となる REST API リクエストがこのタスクでどのように作成されるかについては、instances:insert ページの API Explorer をご覧ください。

書き込みエンドポイントを生成する

書き込みエンドポイントは、現在のプライマリ インスタンスの IP アドレスに自動的に解決されるグローバル ドメイン名サービス(DNS)名です。このエンドポイントは、レプリカのフェイルオーバーまたはスイッチオーバー オペレーションが発生した場合に、受信接続を新しいプライマリ インスタンスに自動的にリダイレクトします。IP アドレスの代わりに、SQL 接続文字列で書き込みエンドポイントを使用できます。書き込みエンドポイントを使用すると、リージョンが停止した場合にアプリケーション接続を変更する必要がなくなります。

書き込みエンドポイントを使用してインスタンスに接続する方法の詳細については、書き込みエンドポイントを使用してインスタンスに接続するをご覧ください。

マシンタイプ

Cloud SQL インスタンスで利用可能なメモリと仮想コアを決定します。異なるマシンシリーズのマシンタイプを構成できます。さまざまなマシンシリーズの可用性は、Cloud SQL のエディションとリージョンによって異なります。

  • Cloud SQL Enterprise Plus エディション インスタンスの場合: Cloud SQL には、次のマシンシリーズで事前定義されたマシンタイプが用意されています。

  • Cloud SQL Enterprise エディション インスタンスの場合: Cloud SQL には、次のマシンシリーズで事前定義されたマシンタイプとカスタム マシンタイプが用意されています。

オンライン トランザクション処理(OLTP)などのリアルタイム処理が必要な場合は、インスタンスに作業セット全体を保存するための十分なメモリを確保してください。ただし、メモリ要件に影響を与える可能性がある要素はほかにもあります(アクティブな接続の数や内部オーバーヘッド プロセスなど)。本番環境でパフォーマンスの問題が発生しないように、負荷テストを実施します。

インスタンスを構成する際に、ニーズを処理するのに十分なメモリと vCPU を選択し、要件の増加に応じてインスタンスをスケールアップします。vCPU が不十分なマシン構成では、SLA の範囲外になる可能性があります。詳細については、オペレーション ガイドラインをご覧ください。

詳細については、マシンシリーズを選択するをご覧ください。

トラブルシューティング

問題 トラブルシューティング
エラー メッセージ: The zone or region does not have sufficient resources to handle the request at the moment.

インスタンスの作成をリクエストした時点で、選択したゾーンに、リクエストされたリソースまたは VM タイプに対応できるだけの容量がなかったことを意味します。リクエストを行ったのと同じ時点で、その特定のリージョン ロケーションで運用上の需要が高まっていた可能性があります。

この問題を解決するには、別のゾーンでインスタンスの作成を再試行するか、このエラーが発生したゾーンで別の時間にインスタンスの作成を再試行します。

エラー メッセージ: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider 割り振り済みの IP 範囲にこれ以上使用可能なアドレスがありません。次のシナリオが考えられます。
  • 限定公開サービス接続に割り振られた IP 範囲のサイズが /24 より小さい。
  • プライベート サービス接続に割り振られた IP 範囲のサイズが、Cloud SQL インスタンスの数に対して小さすぎる。
  • インスタンスを複数のリージョンで作成すると、割り振られた IP 範囲のサイズに関する要件が大きくなります。割り振られた範囲のサイズをご覧ください。

この問題を解決するには、既存の割り振られた IP 範囲を拡張するか、プライベート サービス接続に追加の IP 範囲を割り振ります。詳細については、IP アドレス範囲を割り振るをご覧ください。

Cloud SQL インスタンスの作成時に --allocated-ip-range-name フラグを使用した場合は、指定した IP 範囲のみ拡張できます。

新しい範囲を割り当てる場合は、割り当てが既存の割り当てと重複しないように注意してください。

新しい IP 範囲を作成した後、次のコマンドを使用して VPC ピアリングを更新します。

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

既存の割り振りを拡張する場合は、割り振り範囲を増やすのみとし、減らさないように注意してください。たとえば、元の割り振りが 10.0.10.0/24 だった場合、新しい割り振りを少なくとも 10.0.10.0/23 に設定します。

一般的に、/24 の割り振りから開始する場合は、各条件(追加のインスタンス タイプのグループ、追加のリージョン)で /mask を 1 つずつ減らすのが基本的なルールです。たとえば、同じ割り振りで両方のインスタンス タイプのグループを作成しようとしている場合も、/24 から /23 にするだけで十分です。

既存の IP 範囲を拡張した後、次のコマンドを使用して vpc ピアリングを更新します。

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
エラー メッセージ: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID] Cloud SQL インスタンスをもう一度作成してみてください。
エラー メッセージ: HTTPError 400: Invalid request: Incorrect Service Networking config for instance: PROJECT_ID:INSTANCE_NAME:SERVICE_NETWORKING_NOT_ENABLED.

次のコマンドを使用して Service Networking API を有効にし、Cloud SQL インスタンスをもう一度作成してみてください。

gcloud services enable servicenetworking.googleapis.com \
--project=PROJECT_ID
    
エラー メッセージ: Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID プライベート IP アドレスを使用してインスタンスを作成すると、Service Networking API を使用してサービス アカウントがジャスト イン タイムで作成されます。Service Networking API を最近有効にしたばかりの場合は、サービス アカウントが作成されず、インスタンスの作成が失敗する可能性があります。この場合は、サービス アカウントがシステム全体に伝播するのを待つか、必要な権限を使用して手動で追加する必要があります。
エラー メッセージ: More than 3 subject alternative names are not allowed. カスタム SAN を使用して、4 つ以上の DNS 名を Cloud SQL インスタンスのサーバー証明書に追加しようとしています。インスタンスに追加できる DNS 名は 3 つまでです。
エラー メッセージ: Subject alternative names %s is too long. The maximum length is 253 characters. Cloud SQL インスタンスのサーバー証明書に追加する DNS 名が 253 文字を超えないようにします。
エラー メッセージ: Subject alternative name %s is invalid.

Cloud SQL インスタンスのサーバー証明書に追加する DNS 名が次の条件を満たしていることを確認します。

  • ワイルドカード文字が含まれていない。
  • 末尾にピリオドがない。
  • RFC 1034 の仕様に準拠している。

次のステップ

  1. インスタンスに SQL Server データベースを作成する
  2. インスタンスに SQL Server ユーザーを作成する
  3. インスタンスへのアクセスの保護と制御を行う
  4. SQL Server クライアントを使用してインスタンスに接続する
  5. データベースにデータをインポートする
  6. インスタンスの設定について確認する