このページでは、Cloud SQL for MySQL インスタンスの作成方法について説明します。
すべてのインスタンスの設定について詳しくは、インスタンスの設定をご覧ください。
新しく作成されたインスタンスには、次の 4 つのシステム データベースがあります。
information_schema
: データベース メタデータ(MySQL サーバーに関する情報)へのアクセスを提供します。mysql
: システム スキーマ。MySQL サーバーの実行時に必要な情報を格納するテーブルが含まれています。performance_schema
: MySQL サーバーの実行を低レベルでモニタリングする機能。sys
: DBA とデベロッパーがパフォーマンス スキーマによって収集されたデータの解釈に役立つ一連のオブジェクトが含まれています。
始める前に
- 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 閲覧者のロールがあることを確認します。
ロールと権限について詳細を確認します。
MySQL インスタンスを作成する
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [インスタンスの作成] ページの [データベース エンジンの選択] パネルで、[MySQL を選択] をクリックします。
- [インスタンスの情報] ペインの [インスタンス ID] フィールドに、インスタンスの ID を入力します。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
- root ユーザーのパスワードを設定します。
[パスワードなし] を設定するオプションがありますが、セキュリティ上の理由から、この方法はおすすめしません。
(省略可)次のようにインスタンスのパスワード ポリシーを構成します。
- [パスワード ポリシーを有効にする] チェックボックスをオンにします。
- パスワード ポリシーの設定ボタンをクリックし、次の 1 つ以上のオプションを設定して、[保存] をクリックします。
- 最小文字数: パスワードの最小文字数を指定します。
- パスワードの複雑さ: パスワードが小文字、大文字、数字、英数字以外の文字の組み合わせになっているかどうかを確認します。
- パスワードの再利用の制限: 再利用できない以前のパスワードの数を指定します。
Cloud SQL for MySQL 8.0 以降でのみサポートされています。
- ユーザー名の禁止: パスワードにユーザー名を使用できないようにします。
- インスタンスのデータベース バージョン(MySQL 8.4、MySQL 8.0(デフォルト)、MySQL 5.7、MySQL 5.6)を選択します。
- 省略可: [マイナー バージョンを表示] を選択します。次に、デフォルトのマイナー バージョン以外のマイナー バージョンを選択します。
- インスタンスの Cloud SQL エディション(
Enterprise
またはEnterprise plus
)を選択します。Cloud SQL のエディションの詳細については、Cloud SQL のエディションの概要をご覧ください。 - [リージョンとゾーンの可用性の選択] セクションで、インスタンスのリージョンとゾーンを選択します。リージョンの可用性は、Cloud SQL のエディションによって異なる場合があります。詳細については、インスタンスの設定についてをご覧ください。
インスタンスにアクセスするリソースと同じリージョンにインスタンスを配置します。選択したリージョンは後から変更できません。ほとんどの場合、ゾーンを指定する必要はありません。
高可用性を目的とするインスタンスを構成する場合は、プライマリ ゾーンとセカンダリ ゾーンの両方を選択できます。
セカンダリ ゾーンがインスタンスの作成中に使用される場合は、次の条件が適用されます。
- ゾーンのデフォルトは、プライマリ ゾーンは
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 の使用方法をご確認ください。
承認済みネットワーク 新しいネットワークの名前とネットワーク アドレスを追加します。詳細。 Google Cloud サービスのプライベート パス このチェックボックスをオンにすると、他の Google Cloud サービス(BigQuery など)が Cloud SQL 内のデータにアクセスし、プライベート接続でこのデータに対してクエリを実行できるようになります。
データの保護 バックアップを自動化する バックアップを開始する時間枠。詳細。 バックアップの保存先を選択する ほとんどのユースケースでは、マルチリージョンを選択します。バックアップを特定のリージョンに保存する必要がある場合(たとえば法規制の理由で保存する必要がある場合など)は、リージョンを選択して、[ロケーション] プルダウン メニューからリージョンを選択します。 保存する自動バックアップの数を選択する 保存する自動バックアップの数(1~365 日)。詳細 ポイントインタイム リカバリを有効にする ポイントインタイム リカバリと write-ahead log 書き込みを有効にします。詳細 削除からの保護を有効にする インスタンスを誤って削除しないように保護するかどうかを指定します。詳細 ログを保持する日数を選択する write-ahead log の保持期間は 1~7 日間で構成します。デフォルトの設定は 7 日間です。詳細 メンテナンス 優先ウィンドウ Cloud SQL がインスタンスに対し、中断メンテナンスを実行できる 1 時間の時間枠を指定します。この時間枠を設定しない場合、任意の時間に中断メンテナンスが行われる可能性があります。詳細 更新の順序 希望するインスタンス更新のタイミング。同じプロジェクトの他のインスタンスとの相対的なタイミングです。詳細 フラグ フラグを追加 データベース フラグを使用して、インスタンスの設定とパラメータを制御できます。詳細 ラベル ラベルを追加 追加するラベルごとにキーと値を追加します。ラベルはインスタンスの整理に役立ちます。 データ キャッシュ データ キャッシュを有効にする(省略可) Cloud SQL for MySQL Enterprise Plus Edition インスタンスのデータ キャッシュを有効にします。 データ キャッシュの詳細については、データ キャッシュをご覧ください。 -
[インスタンスを作成] をクリックします。
注: インスタンスの作成には数分かかることがあります。ただし、インスタンスの作成中にインスタンスに関する情報を確認できます。
パスワードをクリアテキストで表示するには、パスワードを表示アイコンをクリックします。
手動でパスワードを入力するか、[生成] をクリックしてパスワードを自動生成します。
インスタンスの作成後にデータベースのバージョンを編集することはできません。
gcloud
gcloud CLI のインストールと使用方法については、gcloud CLI のインストールをご覧ください。Cloud Shell の起動方法については、Cloud Shell のドキュメントをご覧ください。
gcloud sql instances create
コマンドを使用して、インスタンスを作成します。- vCPU は 1 または 2~96 の間の偶数にする必要があります。
- メモリは次の条件を満たす必要があります。
- vCPU あたり 0.9~6.5 GB
- 256 MB の倍数
- 3.75 GB(3,840 MB)以上
- ゾーンは有効なゾーンである必要があります。
- セカンダリ ゾーンを指定する場合は、プライマリ ゾーンも指定する必要があります。
- プライマリ ゾーンとセカンダリ ゾーンを指定する場合は、別々のゾーンにする必要があります。
- プライマリ ゾーンとセカンダリ ゾーンを指定する場合は、それらが同じリージョンに属している必要があります。
--no-assign-ip
パラメータを使用する。--network
パラメータを使用して、プライベート接続の作成に使用する VPC ネットワークの名前を指定する。GOOGLE_MANAGED_INTERNAL_CA
: これがデフォルト値です。このオプションでは、各 Cloud SQL インスタンス専用の内部 CA が、対象のインスタンスのサーバー証明書に署名します。GOOGLE_MANAGED_CAS_CA
: このオプションでは、Cloud SQL によって管理され、Google Cloud Certificate Authority Service(CA Service)でホストされるルート CA と下位サーバーの CA で構成される CA 階層が使用されます。リージョン内の下位サーバー CA はサーバー証明書に署名し、リージョン内のインスタンス間で共有されます。このオプションは、MySQL 8.0.30 以降でのみサポートされています。- ゾーンは有効なゾーンである必要があります。
- セカンダリ ゾーンを指定する場合は、プライマリ ゾーンも指定する必要があります。
- 自動的に割り振られた IP アドレスをメモします。
Cloud SQL Auth Proxy を使用しない場合は、アプリケーションまたはツールがインスタンスに接続するためのホストアドレスとしてこのアドレスを使用します。
- "root@%" MySQL ユーザーのパスワードを設定します。
gcloud sql users set-password root \ --host=% \ --instance INSTANCE_NAME \ --password PASSWORD
Cloud SQL Enterprise Plus エディションのインスタンスの場合:
gcloud sql instances create INSTANCE_NAME \ --region=REGION \ --tier=TIER \ --database-version=DATABASE_VERSION \ --edition=ENTERPRISE_PLUS
Cloud SQL Enterprise エディションのインスタンスの場合:
gcloud sql instances create INSTANCE_NAME \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE \ --region=REGION
--tier
フラグを使用できます。gcloud sql instances create INSTANCE_NAME \ --tier=API_TIER_STRING \ --region=REGION
vCPU とメモリサイズの値には制限があります。
たとえば、次のコマンドで、2 つの vCPU と 7,680 MB のメモリを持つ Cloud SQL Enterprise エディションのインスタンスが作成されます。
gcloud sql instances create myinstance \ --database-version=MYSQL_8_0 \ --cpu=2 \ --memory=7680MB \ --region=us-central1
次のコマンドで、4 つのコアを持つ Cloud SQL Enterprise Plus エディション インスタンスが作成されます。
gcloud sql instances create myinstance \ --database-version=MYSQL_8_0_31 \ --tier=db-perf-optimized-N-4 \ --edition=ENTERPRISE_PLUS \ --region=us-central1
REGION のデフォルト値は us-central1
です。
インスタンス名には機密情報や個人を特定できる情報を含めないでください。インスタンス名は外部から閲覧可能です。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
高可用性インスタンスを作成する場合は、--zone
パラメータと --secondary-zone
パラメータを使用して、プライマリ ゾーンとセカンダリ ゾーンの両方を指定できます。セカンダリ ゾーンがインスタンスの作成中または編集中に使用される場合は、次の条件が適用されます。
パラメータを追加して、他のインスタンス設定を指定できます。
設定 | パラメータ | 備考 |
---|---|---|
必須パラメータ | ||
データベースのバージョン | --database-version |
Cloud SQL エディションに基づくデータベース バージョン。 |
リージョン | --region |
有効な値を参照してください。 |
パスワード ポリシーの設定 | ||
パスワード ポリシーの有効化 | --enable-password-policy |
使用するとパスワード ポリシーが有効になります。デフォルトでは、パスワード ポリシーは無効になっています。--clear-password-policy パラメータを使用して無効にすると、他のパスワード ポリシー パラメータはリセットされます。 |
最小の長さ | --password-policy-min-length |
パスワードの最小文字数を指定します。 |
パスワードの複雑さ | --password-policy-complexity |
パスワードの複雑さのチェックを有効にして、パスワードに小文字、大文字、数字、非英数字がそれぞれ 1 つ以上含まれていることを確認します。値を COMPLEXITY_DEFAULT に設定します。 |
パスワードの再利用の制限 | --password-policy-reuse-interval |
再利用できない以前のパスワードの数を指定します。Cloud SQL for MySQL 8.0 以降でのみサポートされています。 |
ユーザー名の使用を許可しない | --password-policy-disallow-username-substring |
パスワードにユーザー名を使用できないようにします。チェックを無効にするには、--no-password-policy-disallow-username-substring パラメータを使用します。 |
接続 | ||
プライベート IP | --network
|
--network : このインスタンスに使用する VPC ネットワーク名を指定します。このネットワークに対して、プライベート サービス アクセスがすでに構成されている必要があります。ベータ版のコマンド(gcloud beta sql instances create )でのみ使用できます。
このパラメータは次の場合にのみ有効です。 プライベート IP の構成について学習します。 |
パブリック IP | --authorized-networks |
パブリック IP 接続の場合は、承認済みネットワークからのみ、インスタンスに接続できます。詳細。 |
SSL の適用 |
|
|
サーバー CA モード | --server-ca-mode |
|
マシンタイプとストレージ | ||
マシンタイプ | --tier |
共有コア インスタンス(db-f1-micro または db-g1-small )の指定に使用されます。カスタム インスタンス構成には、代わりに --cpu パラメータまたは --memory パラメータを使用します。カスタム インスタンス構成をご覧ください。 |
ストレージの種類 | --storage-type |
インスタンスで SSD または HDD のどちらのストレージを使用するかを指定します。詳細 |
ストレージ容量 | --storage-size |
インスタンスにプロビジョニングされているストレージ容量(GB 単位)。詳細 |
ストレージの自動増量 | --storage-auto-increase |
空き領域が少なくなったときに、Cloud SQL が自動的にインスタンス用のストレージを増やすかどうかを指定します。詳細 |
ストレージの自動増量の上限 | --storage-auto-increase-limit |
Cloud SQL が自動的に増量できるストレージ容量の上限を指定します。ベータ版のコマンド(gcloud beta sql instances create )でのみ使用できます。
詳細 |
データ キャッシュ(オプション) | --enable-data-cache |
インスタンスのデータ キャッシュを有効または無効にします。詳細については、データ キャッシュをご覧ください。 |
自動バックアップと高可用性 | ||
高可用性 | --availability-type |
高可用性インスタンスの場合は、REGIONAL に設定します。詳細
|
セカンダリ ゾーン | --secondary-zone |
高可用性のインスタンスを作成している場合は、--zone と --secondary-zone parameters を使用して、プライマリ ゾーンとセカンダリ ゾーンの両方を指定できます。セカンダリ ゾーンがインスタンスの作成中または編集中に使用される場合は、次の制限が適用されます。プライマリ ゾーンとセカンダリ ゾーンを指定する場合は、別々のゾーンにする必要があります。 プライマリ ゾーンとセカンダリ ゾーンを指定する場合は、それらが同じリージョンに属している必要があります。 |
自動バックアップ | --backup-start-time |
バックアップを開始する時間枠。詳細。 |
自動バックアップ保持期間の設定 | --retained-backups-count |
保持する自動バックアップの数。詳細 |
バイナリログ | --enable-bin-log |
バイナリログを使用すると、レプリケーションとポイントインタイム リカバリが可能になります。詳細 |
バイナリログの保持設定 | --retained-transaction-log-days |
ポイントインタイム リカバリのバイナリログを保持する日数。詳細 |
データベース フラグの追加 | ||
データベース フラグ | --database-flags |
データベース フラグを使用して、インスタンスの設定とパラメータを制御できます。データベース フラグの詳細。このパラメータの設定方法の詳細。 |
メンテナンス スケジュール | ||
メンテナンスの時間枠 | --maintenance-window-day 、
--maintenance-window-hour |
Cloud SQL がインスタンスに対し、中断メンテナンスを実行できる 1 時間の時間枠を指定します。この時間枠を設定しない場合、任意の時間に中断メンテナンスが行われる可能性があります。詳細 |
メンテナンスのタイミング | --maintenance-release-channel |
希望するインスタンス更新のタイミング。同じプロジェクトの他のインスタンスとの相対的なタイミングです。他のインスタンスより前に更新する場合は preview を使用し、後に更新する場合は production を使用します。詳細 |
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
インスタンスを作成する
この例では、インスタンスを作成します。バックアップ、バイナリ ロギングなどのオプション パラメータも含まれています。この呼び出しのパラメータの完全なリストについては、Instances:insert ページをご覧ください。リージョンの有効な値など、インスタンスの設定の詳細については、インスタンスの設定をご覧ください。
インスタンス ID には機密情報や個人を特定できる情報を含めないでください。インスタンス ID は外部から閲覧可能です。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- DATABASE_VERSION: データベースのバージョン。たとえば、
MYSQL_8_4
やMYSQL_8_0_37
です。データベース バージョンを指定しない場合、デフォルトのデータベース バージョンはMYSQL_8_0
です。 - REGION: リージョン
- MACHINE_TYPE: マシンタイプ
- EDITION_TYPE: Cloud SQL エディション
- 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
です。この機能はプレビュー版です。
インスタンスの作成時にパスワード ポリシーを設定するには、リクエストに passwordValidationPolicy オブジェクトを含めます。必要に応じて、次のパラメータを設定します。
enablePasswordPolicy
:true
に設定するとパスワード ポリシーが有効になります。パスワード ポリシーを削除するには、
enablePasswordPolicy
の値としてnull
を使用して、PATCH
リクエストを送信します。この場合、他のパスワード ポリシー パラメータはリセットされます。minLength
: パスワードの最小文字数を指定します。complexity
: パスワードが小文字、大文字、数字、英数字以外の文字の組み合わせかどうかを確認します。デフォルト値はCOMPLEXITY_DEFAULT
です。reuseInterval
: 再利用できない以前のパスワードの数を指定します。Cloud SQL for MySQL 8.0 以降でのみサポートされています。
disallowUsernameSubstring
:true
に設定した場合、パスワードにユーザー名を使用できなくなります。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
リクエストの本文(JSON):
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "dataCacheConfig" = { "dataCacheEnabled": DATA_CACHE_ENABLED }, "backupConfiguration": { "binaryLogEnabled": true, "enabled": true }, "passwordValidationPolicy": { "enablePasswordPolicy": true "minLength": "MIN_LENGTH", "complexity": COMPLEXITY_DEFAULT, "reuseInterval": "REUSE_INTERVAL", "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING", } "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [AUTHORIZED_NETWORKS], "ipv4Enabled": false, "enablePrivatePathForGoogleCloudServices": true, "serverCaMode": "CA_MODE" } } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
レスポンスは長時間実行オペレーションのため、完了まで数分かかる場合があります。
root のパスワードを更新します。
インスタンスの初期化が完了したら、root のパスワードを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: 前のステップで作成したインスタンス ID
- root-password: 目的の root パスワード
HTTP メソッドと URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?host=%25&name=root
リクエストの本文(JSON):
{ "name": "root", "host": "%", "password": "root-password" }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
IPv4 アドレスを取得する
新しいインスタンスに自動的に割り当てられる IPv4 アドレスを取得します。
リクエストのデータを使用する前に、次のように置き換えます。
- 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": "MYSQL_8_0_18", "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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "connectionName": "project-id:region:instance-id", "name": "instance-id", "region": "us-west1", "gceZone": "us-west1-a" }
レスポンスで ipAddress
フィールドを探します。
REST v1beta4
インスタンスを作成する
この例では、インスタンスを作成します。バックアップ、バイナリ ロギングなどのオプション パラメータも含まれています。この呼び出しのパラメータの完全なリストについては、Instances:insert ページをご覧ください。リージョンの有効な値など、インスタンスの設定の詳細については、インスタンスの設定をご覧ください。
インスタンス ID には機密情報や個人を特定できる情報を含めないでください。インスタンス ID は外部から閲覧可能です。
インスタンス名にプロジェクト ID を含める必要はありません。この処理は必要に応じて自動的に行われます(ログファイルの場合など)。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID
- INSTANCE_ID: インスタンス ID
- DATABASE_VERSION: データベースのバージョン。たとえば、
MYSQL_8_4
やMYSQL_8_0_37
です。データベース バージョンを指定しない場合、デフォルトのバージョンはMYSQL_8_0
です。 - REGION: リージョン
- MACHINE_TYPE: マシンタイプ
- EDITION_TYPE: Cloud SQL エディション
- 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
です。この機能はプレビュー版です。
インスタンスの作成時にパスワード ポリシーを設定するには、リクエストに passwordValidationPolicy オブジェクトを含めます。必要に応じて、次のパラメータを設定します。
enablePasswordPolicy
:true
に設定するとパスワード ポリシーが有効になります。パスワード ポリシーを削除するには、
enablePasswordPolicy
の値としてnull
を使用して、PATCH
リクエストを送信します。この場合、他のパスワード ポリシー パラメータはリセットされます。minLength
: パスワードの最小文字数を指定します。complexity
: パスワードが小文字、大文字、数字、英数字以外の文字の組み合わせかどうかを確認します。デフォルト値はCOMPLEXITY_DEFAULT
です。reuseInterval
: 再利用できない以前のパスワードの数を指定します。Cloud SQL for MySQL 8.0 以降でのみサポートされています。
disallowUsernameSubstring
:true
に設定した場合、パスワードにユーザー名を使用できなくなります。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
リクエストの本文(JSON):
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "dataCacheConfig" { "dataCacheEnabled": DATA_CACHE_ENABLED }, "backupConfiguration": { "binaryLogEnabled": true, "enabled": true }, "passwordValidationPolicy": { "enablePasswordPolicy": true "minLength": "MIN_LENGTH", "complexity": COMPLEXITY_DEFAULT, "reuseInterval": "REUSE_INTERVAL", "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING", } "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [AUTHORIZED_NETWORKS], "ipv4Enabled": false, "enablePrivatePathForGoogleCloudServices": true, "serverCaMode": "CA_MODE" } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#operation", "targetLink": "https://sqladmin.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://sqladmin.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://sqladmin.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://sqladmin.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://sqladmin.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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_8_0_18", "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://sqladmin.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
フィールドを探します。
MySQL 8.0 のデータベースのマイナー バージョンを指定する
既存の MySQL 8.0 インスタンスのマイナー バージョンを指定するには、gcloud
または REST API を使用します。
gcloud
gcloud sql instances create
コマンドを使用して、--database-version
フラグを指定します。
コマンドを実行する前に、次の変数を置き換えます。
- INSTANCE_NAME: インスタンスの名前。
- DATABASE_VERSION: インスタンスのデータベースのマイナー バージョン:
MYSQL_8_0_18
、MYSQL_8_0_26
、MYSQL_8_0_27
、MYSQL_8_0_28
、MYSQL_8_0_29
、MYSQL_8_0_30
、MYSQL_8_0_31
(MySQL 8.0 のデフォルトのマイナー バージョン)、MYSQL_8_0_32
、MYSQL_8_0_33
、MYSQL_8_0_34
、MYSQL_8_0_35
、MYSQL_8_0_36
、またはMYSQL_8_0_37
。MYSQL_8_0
を指定すると、デフォルトのマイナー バージョンが使用されます。このフラグを指定しない場合は、デフォルトのメジャー バージョン
MYSQL_8_0
が使用されます。
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION
詳細については、gcloud
を使用したインスタンスの作成をご覧ください。
REST v1
instances:insert メソッドと databaseVersion
フラグを指定して、POST リクエストを送信します。
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
- project_id: プロジェクトの ID。
- instance_id: インスタンスの名前。
- databaseVersion: インスタンスのデータベース バージョン:
MYSQL_8_0_18
、MYSQL_8_0_26
、MYSQL_8_0_27
、MYSQL_8_0_28
、MYSQL_8_0_29
、MYSQL_8_0_30
、MYSQL_8_0_31
(MySQL 8.0 のデフォルトのマイナー バージョン)、MYSQL_8_0_32
、MYSQL_8_0_33
、MYSQL_8_0_34
、MYSQL_8_0_35
、MYSQL_8_0_36
、MYSQL_8_0_37
。バージョンとしてMYSQL_8_0
を指定すると、デフォルトのマイナー バージョンが使用されます。databaseVersion
フラグを指定しない場合、デフォルトのメジャー バージョンMYSQL_8_0
が使用されます。
詳細については、REST v1 API を使用したインスタンスの作成をご覧ください。
REST v1beta4
instances:insert メソッドと databaseVersion
フラグを指定して、POST リクエストを送信します。
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
リクエスト データを使用する前に、次の変数を置き換えます。
- project_id: プロジェクトの ID。
- instance_id: インスタンスの名前。
- databaseVersion: インスタンスのデータベース バージョン:
MYSQL_8_0_18
、MYSQL_8_0_26
、MYSQL_8_0_27
、MYSQL_8_0_28
、MYSQL_8_0_29
、MYSQL_8_0_30
、MYSQL_8_0_31
(MySQL 8.0 のデフォルトのマイナー バージョン)、MYSQL_8_0_32
、MYSQL_8_0_33
、MYSQL_8_0_34
、MYSQL_8_0_35
、MYSQL_8_0_36
、MYSQL_8_0_37
。MYSQL_8_0
を指定すると、デフォルトのマイナー バージョンが使用されます。databaseVersion
フラグを指定しない場合、デフォルトのメジャー バージョンMYSQL_8_0
が使用されます。
詳細については、REST v1beta4 API を使用したインスタンスの作成に関するドキュメントをご覧ください。
リードレプリカ、クローン、PITR のマイナー バージョン
リードレプリカを作成するときに、リードレプリカのデータベースのマイナー バージョンを指定できます。デフォルトでは、新しいリードレプリカはデフォルトのマイナー バージョンで作成されます。
インスタンスのクローンを作成すると、新しく作成されたインスタンスにソースと同じマイナー バージョンが設定されます。
ポイントインタイム リカバリを実行した場合、新しく作成されたインスタンスにはソースと同じデータベースのマイナー バージョンが設定されます。
カスタム インスタンス構成
Cloud SQL インスタンスで利用可能なメモリと仮想コアを決定します。使用可能なマシンタイプは Cloud SQL のエディションによって異なります。
オンライン トランザクション処理(OLTP)などのリアルタイム処理を必要とするワークロードの場合は、インスタンスに作業セット全体を保存するための十分なメモリを確保してください。ただし、メモリ要件に影響を与える可能性がある要素は他にもあります(アクティブな接続や内部のオーバーヘッド プロセスの数など)。本番環境でパフォーマンスの問題が発生しないように、負荷テストを実行する必要があります。
インスタンスの構成時に、ワークロードを処理するのに十分なメモリと vCPU を選択し、ワークロードの増加に合わせてアップグレードしてください。vCPU が不十分なマシン構成では、SLA 範囲外になる可能性があります。詳細については、オペレーション ガイドラインをご覧ください。
Cloud SQL Enterprise Plus エディション インスタンスのマシンタイプ
Cloud SQL Enterprise Plus エディション インスタンスの場合、マシンタイプは次のように事前定義されています。
Enterprise Plus マシンタイプ | vCPU | メモリ(GB) | ローカル SSD |
---|---|---|---|
db-perf-optimized-N-2 | 2 | 16 | 375 |
db-perf-optimized-N-4 | 4 | 32 | 375 |
db-perf-optimized-N-8 | 8 | 64 | 375 |
db-perf-optimized-N-16 | 16 | 128 | 750 |
db-perf-optimized-N-32 | 32 | 256 | 1500 |
db-perf-optimized-N-48 | 48 | 384 | 3000 |
db-perf-optimized-N-64 | 64 | 512 | 6000 |
db-perf-optimized-N-80 | 80 | 640 | 6000 |
db-perf-optimized-N-96 | 96 | 768 | 6000 |
db-perf-optimized-N-128 | 128 | 864 | 9000 |
Cloud SQL Enterprise エディション インスタンスのマシンタイプ
Cloud SQL Enterprise エディション インスタンスの場合は、gcloud sql
instances create
コマンドを使用してカスタム インスタンス構成を作成することもできます。カスタム インスタンス構成では、インスタンスに必要なメモリと CPU の量を自分で選択できます。この柔軟性により、ワークロードに適した VM のシェイプを選択できます。
マシンタイプ名の形式は db-custom-#-#
です。
最初の # プレースホルダはマシンの CPU 数に置き換え、2 番目の # プレースホルダはマシンのメモリ量に置き換えます。
たとえば、マシン名が db-custom
で、マシンに 1 つの CPU と 3,840 MB の RAM がある場合、マシンの形式は db-custom-1-3840
になります。
CPU の数とメモリの量を選択する際、選択する構成にはいくつかの制限があります。
- vCPU は 1 または 2~96 の間の偶数にする必要があります。
- メモリは次の条件を満たす必要があります。
- vCPU あたり 0.9~6.5 GB
- 256 MB の倍数
- 3.75 GB(3,840 MB)以上
次の表に、以前の各マシンタイプ名、各マシンタイプの CPU と RAM の数、結果としてできるマシンタイプの文字列を示します。
同等のマシンタイプを作成するには、Google Cloud コンソールで同等の CPU と RAM を指定するか、gcloud CLI を使用するか、または API で db-custom-#-#
を指定します。
以前のマシンタイプ | vCPU | メモリ(MB) | db-custom-CPU-RAM 文字列(API 階層文字列) |
---|---|---|---|
db-n1-standard-1 | 1 | 3840 | db-custom-1-3840 |
db-n1-standard-2 | 2 | 7680 | db-custom-2-7680 |
db-n1-standard-4 | 4 | 15360 | db-custom-4-15360 |
db-n1-standard-8 | 8 | 30720 | db-custom-8-30720 |
db-n1-standard-16 | 16 | 61440 | db-custom-16-61440 |
db-n1-standard-32 | 32 | 122880 | db-custom-32-122880 |
db-n1-standard-64 | 64 | 245760 | db-custom-64-245760 |
db-n1-standard-96 | 96 | 368640 | db-custom-96-368640 |
db-n1-highmem-2 | 2 | 13312 | db-custom-2-13312 |
db-n1-highmem-4 | 4 | 26624 | db-custom-4-26624 |
db-n1-highmem-8 | 8 | 53248 | db-custom-8-53248 |
db-n1-highmem-16 | 16 | 106496 | db-custom-16-106496 |
db-n1-highmem-32 | 32 | 212992 | db-custom-32-212992 |
db-n1-highmem-64 | 64 | 425984 | db-custom-64-425984 |
db-n1-highmem-96 | 96 | 638976 | db-custom-96-638976 |
トラブルシューティング
問題 | トラブルシューティング |
---|---|
エラー メッセージ: Failed to create subnetwork. Couldn't
find free blocks in allocated IP ranges. Please allocate new ranges for
this service provider |
割り振り済みの IP 範囲にこれ以上使用可能なアドレスがありません。いくつかのシナリオがあります。
この問題を解決するには、既存の割り振られた IP 範囲を拡張するか、プライベート サービス接続に追加の IP 範囲を割り振ります。詳細については、IP アドレス範囲を割り振るをご覧ください。 Cloud SQL インスタンスの作成時に 新しい範囲を割り当てる場合は、割り当てが既存の割り当てと重複しないように注意してください。 新しい 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 インスタンスをもう一度作成してみてください。 |
エラー メッセージ: Failed to create subnetwork. Required
'compute.projects.get' permission for PROJECT_ID |
プライベート IP アドレスを使用してインスタンスを作成すると、Service Networking API を使用してサービス アカウントがジャスト イン タイムで作成されます。Service Networking API を最近有効にしたばかりの場合は、サービス アカウントが作成されず、インスタンスの作成が失敗する可能性があります。この場合、サービス アカウントがシステム全体に伝播するのを待つか、必要な権限を使用して手動で追加する必要があります。 |
次のステップ
- インスタンスに MySQL データベースを作成する。
- インスタンスに MySQL ユーザーを作成する。
- インスタンスへのアクセスの保護と制御を行う。
- MySQL クライアントでインスタンスに接続する。
- データベースにデータをインポートする。