インスタンスの作成

インスタンスの作成

このページでは、Cloud SQL for MySQL インスタンスを作成する方法について説明します。

すべてのインスタンスの設定について詳しくは、インスタンスの設定をご覧ください。

Cloud SQL インスタンスを作成した後、データベースを作成またはインポートして、インスタンスに追加します。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Cloud Console のプロジェクト セレクタページで、Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。 プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Cloud SDK をインストールし、初期化します
  5. ユーザー アカウントに Cloud SQL 管理者のロールと Compute 閲覧者のロールがあることを確認します。

    Cloud IAM ページに移動

  6. Cloud Key Management Service API を有効にします。

    API を有効にする

MySQL インスタンスの作成

MySQL インスタンスを作成するには:

Console

  1. Google Cloud Console の Cloud SQL インスタンス ページに移動します。

    [Cloud SQL インスタンス] ページに移動

  2. [インスタンスを作成] をクリックします。
  3. [MySQL] を選択して [次へ] をクリックします。
  4. 名前を入力します。

    インスタンス名には機密情報や個人を特定できる情報を含めないでください。インスタンス名は外部から閲覧可能です。

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

    注: 削除したインスタンスのインスタンス名は、削除してから 1 週間過ぎるまで再利用できません。

  5. 'root'@'%' ユーザーのパスワードを入力します。
  6. インスタンスのリージョンを設定します。

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

  7. [構成オプション] で、インスタンスに必要なその他の設定を更新します。
    設定 備考
    データベースのバージョン
    データベースのバージョン MySQL 5.7(デフォルト)または 5.6。
    接続
    プライベート IP インスタンスのプライベート IP 接続を構成します。詳細
    パブリック IP インスタンスのパブリック IPv4 アドレスを追加します。詳細
    マシンタイプとストレージ
    マシンタイプ マシンタイプ(「層」とも呼ばれる)によって、CPU の数とインスタンスのメモリ量が決まります。詳細
    ストレージの種類 インスタンスで SSD または HDD のどちらのストレージを使用するかを指定します。詳細
    ストレージ容量 インスタンスにプロビジョニングされているストレージ容量。詳細
    ストレージの自動増量 空き領域が少なくなったときに、Cloud SQL が自動的にインスタンス用のストレージを増やすかどうかを指定します。詳細
    高可用性 高可用性向けにインスタンスを構成する必要がある場合は、[高可用性(リージョン)] チェックボックスをオンにする必要があります。詳細については、こちらをご覧ください。
    自動バックアップ バックアップを開始する時間枠。詳細
    バイナリ ロギング バイナリ ロギングを使用すると、レプリケーションとポイントインタイム リカバリが可能になります。詳細
    ネットワークの承認
    データベース フラグの追加
    データベース フラグ データベース フラグを使用して、インスタンスの設定とパラメータを制御できます。詳細
    メンテナンス スケジュール
    メンテナンスの時間枠 Cloud SQL がインスタンスに対し、中断メンテナンスを実行できる 1 時間の時間枠を指定します。この時間枠を設定しない場合、任意の時間に中断メンテナンスが行われる可能性があります。詳細
    メンテナンスのタイミング 希望するインスタンス更新のタイミング。同じプロジェクトの他のインスタンスとの相対的なタイミングです。詳細
  8. [作成] をクリックします。

gcloud

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

  1. 使用できるマシンタイプのリストを表示します。
        gcloud sql tiers list
        

    db-」で始まるタイプがあります。第 2 世代インスタンスを作成するには、このタイプのマシンを選択する必要があります。

    各マシンタイプ、それぞれの機能、インスタンスの料金に対する影響については、料金ページをご覧ください。

  2. インスタンスを作成します。
        gcloud sql instances create [INSTANCE_NAME] --tier=[MACHINE_TYPE] --region=[REGION]
        

    インスタンス名には機密情報や個人を特定できる情報を含めないでください。インスタンス名は外部から閲覧可能です。
    インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。

    MACHINE_TYPE は、前のステップで取得した値のうち、db- で始まるものです。

    たとえば、次のコマンドは、ロンドン リージョンに、マシンタイプが db-n1-standard-2 で、instance1 という名前の第 2 世代インスタンスを作成します。

        gcloud sql instances create instance1 --tier=db-n1-standard-2 --region=europe-west2
        

    パラメータを追加して、他のインスタンス設定を指定できます。

    設定 パラメータ 備考
    必須パラメータ
    データベースのバージョン --database-version MYSQL_5_7(デフォルト)または MYSQL_5_6
    リージョン --region 有効な値を参照してください
    接続
    プライベート IP --network このインスタンスに使用する VPC ネットワーク名を指定します。このネットワークに対して、プライベート サービス アクセスがすでに構成されている必要があります。ベータ版のコマンド(gcloud beta sql instances create)でのみ使用できます。詳細
    パブリック IP --authorized-networks パブリック IP 接続の場合は、承認済みネットワークからのみ、インスタンスに接続できます。詳細
    マシンタイプとストレージ
    マシンタイプ --tier マシンのタイプによって、CPU の数とインスタンスのメモリ量が決まります。有効な値を参照してください詳細
    ストレージの種類 --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 に設定します。詳細
    自動バックアップ --backup-start-time バックアップを開始する時間枠。詳細
    バイナリ ロギング --enable-bin-log バイナリ ロギングを使用すると、レプリケーションとポイントインタイム リカバリが可能になります。詳細
    データベース フラグの追加
    データベース フラグ --database-flags データベース フラグを使用して、インスタンスの設定とパラメータを制御できます。データベース フラグの詳細このパラメータの設定方法の詳細
    メンテナンス スケジュール
    メンテナンスの時間枠 --maintenance-window-day
    --maintenance-window-hour
    Cloud SQL がインスタンスに対し、中断メンテナンスを実行できる 1 時間の時間枠を指定します。この時間枠を設定しない場合、任意の時間に中断メンテナンスが行われる可能性があります。詳細
    メンテナンスのタイミング --maintenance-release-channel 希望するインスタンス更新のタイミング。同じプロジェクトの他のインスタンスとの相対的なタイミングです。他のインスタンスより前に更新する場合は preview を使用し、後に更新する場合は production を使用します。詳細

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

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

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

REST

インスタンスを作成する

この例では、バックアップおよびバイナリ ロギングを有効にしたインスタンスを作成します。これらの設定は任意です。この呼び出しのパラメータの一覧については、Instances:insert ページをご覧ください。リージョンやマシンタイプの有効な値など、インスタンスの設定の詳細については、インスタンスの設定をご覧ください。

インスタンス ID には機密情報や個人を特定できる情報を含めないでください。インスタンス ID は外部から閲覧可能です。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。

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

  • project-id: プロジェクト ID
  • instance-id: 目的のインスタンス ID
  • region: 目的のリージョン
  • machine-type: 目的のマシンタイプ

HTTP メソッドと URL:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances

JSON 本文のリクエスト

    {
      "name": "instance-id",
      "region": "region",
      "settings": {
        "tier": "machine-type",
        "backupConfiguration": {
          "binaryLogEnabled": true,
          "enabled": true
        }
      }
    }
    

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

次のような JSON レスポンスが返されます。

    {
      "kind": "sql#operation",
      "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2019-09-25T22:19:33.735Z",
      "operationType": "CREATE",
      "name": "operation-id",
      "targetId": "instance-id",
      "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
      "targetProject": "project-id"
    }
    

レスポンスは長時間実行オペレーションのため、完了まで数分かかる場合があります。

root のパスワードを更新します。

インスタンスの初期化が完了したら、root のパスワードを更新します。

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

  • project-id: プロジェクト ID
  • instance-id: 前のステップで作成したインスタンス ID
  • root-password: 目的の root のパスワード

HTTP メソッドと URL:

PUT https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=root

JSON 本文のリクエスト

    {
      "name": "root",
      "host": "%",
      "password": "root-password"
    }
    

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

次のような JSON レスポンスが返されます。

    {
      "kind": "sql#operation",
      "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "status": "DONE",
      "user": "user@example.com",
      "insertTime": "2019-09-26T14:32:30.592Z",
      "startTime": "2019-09-26T14:32:30.594Z",
      "endTime": "2019-09-26T14:32:33.518Z",
      "operationType": "UPDATE_USER",
      "name": "operation-id",
      "targetId": "instance-id",
      "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
      "targetProject": "project-id"
    }
    

レスポンスは長時間実行オペレーションのため、完了まで数分かかる場合があります。

IPv4 アドレスを取得する

新しいインスタンスに自動的に割り当てられる IPv4 アドレスを取得します。

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

  • project-id: プロジェクト ID
  • instance-id: 前のステップで作成したインスタンス ID

HTTP メソッドと URL:

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

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

次のような JSON レスポンスが返されます。

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "MYSQL_5_7",
      "settings": {
        "authorizedGaeApplications": [],
        "tier": "db-f1-micro",
        "kind": "sql#settings",
        "pricingPlan": "PER_USE",
        "replicationType": "SYNCHRONOUS",
        "activationPolicy": "ALWAYS",
        "ipConfiguration": {
          "authorizedNetworks": [],
          "ipv4Enabled": true
        },
        "locationPreference": {
          "zone": "us-west1-a",
          "kind": "sql#locationPreference"
        },
        "dataDiskType": "PD_SSD",
        "backupConfiguration": {
          "startTime": "18:00",
          "kind": "sql#backupConfiguration",
          "enabled": true,
          "binaryLogEnabled": true
        },
        "settingsVersion": "1",
        "storageAutoResizeLimit": "0",
        "storageAutoResize": true,
        "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": "SECOND_GEN",
      "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "connectionName": "project-id:region:instance-id",
      "name": "instance-id",
      "region": "us-west1",
      "gceZone": "us-west1-a"
    }
    

レスポンスで ipAddress フィールドを探します。

基盤となる REST API リクエストがこの作業でどのように作成されるかについては、instances:insert ページの API Explorer をご覧ください。

次のステップ