このページでは、AlloyDB クラスタにプライマリ インスタンスを作成する方法について説明します。
始める前に
- 使用している Google Cloud プロジェクトで AlloyDB へのアクセスが有効になっている必要があります。
- 使用している Google Cloud プロジェクトで、次のいずれかの IAM ロールが必要です。
roles/alloydb.admin
(AlloyDB 管理者の IAM 事前定義ロール)roles/owner
(オーナーの IAM 基本ロール)roles/editor
(編集者の IAM 基本ロール)
これらのロールが付与されていない場合は、アクセス権を付与するよう組織管理者に依頼してください。
AlloyDB プライマリ インスタンスを作成する
コンソール
[クラスタ] ページに移動します。
[リソース名] 列でクラスタをクリックします。
[概要] ページで [クラスタ内のインスタンス] に移動し、[プライマリ インスタンスを作成] をクリックします。
プライマリ インスタンスを構成します。
- [インスタンス ID] フィールドに、プライマリ インスタンスの ID を入力します。
- [ゾーンの可用性] で、次のいずれかのオプションを選択します。
- 自動フェイルオーバーを備えた高可用性の本番環境インスタンスを作成するには、[複数のゾーン(高可用性)] を選択します。
- 高可用性が不要である基本的なインスタンスを作成するには、[シングルゾーン] を選択します。
次のいずれかのマシンシリーズを選択します。
- C4A(Google Axion ベースのマシンシリーズ)
- N2(x86 ベースのマシンシリーズ)。これがデフォルトのマシンシリーズです。
マシンタイプを選択します。
- C4A は vCPU 数が 1、4、8、16、32、48、64、72 個のマシンタイプまたはシェイプをサポートしています。
- N2 は、2、4、8、16、32、64、96、128 のマシンタイプまたはシェイプをサポートしています。
1 vCPU マシンタイプなど、C4A Axion ベースのマシンシリーズの使用の詳細については、C4A Axion ベースのマシンシリーズを使用する場合の考慮事項をご覧ください。
省略可: 一般のインターネット経由でアプリケーションとクライアントを接続するには、[パブリック IP 接続] で [パブリック IP を有効にする] チェックボックスをオンにします。パブリック IP を有効にすると、安全な接続を確保するために追加の構成が必要になる場合があります。詳細については、パブリック IP を使用して接続するをご覧ください。
デフォルトでは、プライベート IP は常に有効になっています。詳細については、プライベート サービス アクセスを有効にするをご覧ください。
省略可: マネージド接続プールを有効にして使用するには、[マネージド接続プール] の [マネージド接続プールを有効にする] チェックボックスをオンにします。詳細については、マネージド接続プールを構成するをご覧ください。
省略可: インスタンスにカスタムフラグを設定するには、[詳細な構成オプション] を開き、フラグごとに次の操作を行います。
- [フラグを追加] をクリックします。
- [新しいデータベース フラグ] リストからフラグを選択します。
- フラグの値を指定します。
- [完了] をクリックします。
省略可: インスタンスで SSL またはコネクタの要件を構成するには、[詳細構成オプション] を開いて、次の操作を行います。
- デフォルトでは、AlloyDB インスタンスではすべての接続で SSL 暗号化を使用する必要があります。SSL 以外の接続を許可するには、[SSL 接続のみ許可] チェックボックスをオフにします。
- インスタンスへのすべてのデータベース接続で AlloyDB Auth Proxy または Google が提供する安全なコネクタ ライブラリを使用するようにするには、[コネクタを必須にする] を選択します。
[インスタンスを作成] をクリックします。
gcloud
gcloud CLI を使用するには、Google Cloud CLI をインストールして初期化するか、Cloud Shell を使用します。
gcloud alloydb instances create
コマンドを使用して、プライマリ インスタンスを作成します。
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID
INSTANCE_ID
: 作成するインスタンスの ID。先頭は英小文字にします。英小文字、数字、ハイフンを使用できます。AVAILABILITY
: このインスタンスを高可用性(HA)にするか、複数のゾーンにノードを配置するか。有効な値は次のとおりです。REGIONAL
: アクティブ ノードとスタンバイ ノードを別々に持つ HA インスタンスを作成し、それらの間で自動フェイルオーバーを行います。これはデフォルト値で、本番環境に適しています。ZONAL
: 1 つのノードのみを含む基本インスタンスを作成し、自動フェイルオーバーは行いません。
REGION_ID
: インスタンスを配置するリージョン。例:us-central1
CLUSTER_ID
: インスタンスを配置するクラスタの ID。CPU_COUNT
: インスタンスに必要な vCPU の数。cpu_count
またはmachine_type
を指定する必要があります。cpu_count
のみが指定されている場合、次の仕様で N2 インスタンスが作成されます。- 2: 2 vCPU、16 GB RAM
- 4: 4 vCPU、32 GB RAM
- 8: 8 vCPU、64 GB RAM
- 16: 16 vCPU、128 GB RAM
- 32: 32 個の vCPU、256 GB の RAM
- 64: 64 vCPU、512 GB RAM
- 96: 96 vCPU、768 GB RAM
- 128: 128 vCPU、864 GB RAM
machine_type
とcpu_count
の両方が指定されている場合、cpu_count
の値はmachine_type
で指定された vCPU の数と一致する必要があります。たとえば、machine_type
がn2-highmem-4
の場合は、cpu_count
を4
に設定する必要があります。
MACHINE_TYPE
: インスタンスのマシンタイプ。C4A Axion ベースのマシンシリーズの場合、有効な値は次のとおりです。
c4a-highmem-1
c4a-highmem-4-lssd
c4a-highmem-8-lssd
c4a-highmem-16-lssd
c4a-highmem-32-lssd
c4a-highmem-48-lssd
c4a-highmem-64-lssd
c4a-highmem-72-lssd
N2 マシンシリーズの場合、有効な値は次のとおりです。
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-64
n2-highmem-96
n2-highmem-128
machine_type
とcpu_count
を一緒に使用する場合、cpu_count
とmachine_type
の値は一致している必要があります。たとえば、machine_type
がn2-highmem-4
の場合は、cpu_count
を4
に設定する必要があります。
PROJECT_ID
: クラスタが配置されるプロジェクトの ID。
デフォルトでは、新しいインスタンスではすべての接続で SSL 暗号化を使用する必要があります。インスタンスへの SSL 以外の接続を許可するには、コマンドに --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
フラグを追加します。
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
Auth Proxy または Google 提供のコネクタ ライブラリを使用する他のアプリケーションを介して、クライアントと AlloyDB インスタンス間の安全な接続を適用するには、コマンドに --require-connectors
フラグを追加します。
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID \
--require-connectors
AlloyDB インスタンスでマネージド接続プールを有効にするには、gcloud alloydb instances create
コマンドに --enable-connection-pooling
フラグを追加します。
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--project=PROJECT_ID \
--enable-connection-pooling
Private Service Connect が有効になっている AlloyDB インスタンスを作成することもできます。Private Service Connect が有効になっているクラスタのプライマリ インスタンスの作成については、AlloyDB インスタンスを作成するをご覧ください。
Terraform
インスタンスの作成
データベース クラスタ内にインスタンスを作成するには、Terraform リソースを使用します。
resource "google_alloydb_instance" "default" { cluster = google_alloydb_cluster.default.name instance_id = "alloydb-instance" instance_type = "PRIMARY" machine_config { cpu_count = 2 } depends_on = [google_service_networking_connection.vpc_connection] } resource "google_alloydb_cluster" "default" { cluster_id = "alloydb-cluster" location = "us-central1" network_config { network = google_compute_network.default.id } initial_user { password = "alloydb-cluster" } } data "google_project" "project" {} resource "google_compute_network" "default" { name = "alloydb-network" } resource "google_compute_global_address" "private_ip_alloc" { name = "alloydb-cluster" address_type = "INTERNAL" purpose = "VPC_PEERING" prefix_length = 16 network = google_compute_network.default.id } resource "google_service_networking_connection" "vpc_connection" { network = google_compute_network.default.id service = "servicenetworking.googleapis.com" reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name] }
上記の例では、N2 インスタンスが作成されます。C4A インスタンスを作成するには、次の例に示すように、machine_config
構造内の machine_type
フィールドを使用します。
machine_config { machine_type = "c4a-highmem-4-lssd" }
Cloud Shell を準備する
Google Cloud プロジェクトで Terraform 構成を適用するには、次のように Cloud Shell を準備します。
- Cloud Shell を起動します。
Terraform 構成を適用するデフォルトの Google Cloud projectwhere を設定します。
このコマンドは、プロジェクトごとに 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 スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。git clone https://github.com/terraform-google-modules/terraform-docs-samples
terraform-docs-samples
ディレクトリで、alloydb
ディレクトリに移動します。cd terraform-docs-samples/alloydb
- 新しく作成した
main.tf
にサンプルコードをコピーします。cp SAMPLE_FILE
<var>SAMPLE_FILE</var>
は、コピーするサンプル ファイルの名前に置き換えます(例:main.tf
)。 - 環境に適用するサンプル パラメータを確認し、変更します。
- 変更を保存します。
- Terraform を初期化します。これは、ディレクトリごとに 1 回だけ行います。
省略可: 最新バージョンの Google プロバイダを使用する場合は、terraform init
-upgrade
オプションを使用します。terraform init -upgrade
変更を適用する
- 構成を確認して、Terraform の更新が想定どおりであることを確認します。
必要に応じて構成を修正します。terraform plan
- 次のコマンドを実行します。プロンプトで「
yes
」と入力して、Terraform 構成を適用します。 Terraform に「terraform apply
Apply complete!
」というメッセージが表示されるまで待ちます。
Google Cloud プロジェクトを開いて結果を表示します。 Google Cloud コンソールの UI でリソースに移動し、Terraform によってリソースが作成または更新されたことを確認します。
REST v1
インスタンスの作成
この例では、プライマリ インスタンスを作成します。この呼び出しのパラメータの完全なリストについては、メソッド: projects.locations.clusters.instances.create をご覧ください。クラスタの設定については、クラスタとインスタンスの設定を表示するをご覧ください。
クラスタ ID には機密情報や個人を特定できる情報を含めないでください。クラスタ ID は外部から閲覧可能です。クラスタ名にプロジェクト ID を含める必要はありません。プロジェクト ID は、必要に応じて自動的に追加されます(ログファイルなど)。
リクエストを送信するには、リクエスト本文を instance_request.json
という名前のファイルに保存します。
{ "instance_type": "PRIMARY", "machine_config": { "cpu_count": "vCPU_COUNT", }, }
次のように置き換えます。
CPU_COUNT
: 作成するインスタンスで可視な CPU コアの数。
上記の例では、次の仕様で N2 インスタンスを作成します。
- 2: 2 vCPU、16 GB RAM
- 4: 4 vCPU、32 GB RAM
- 8: 8 vCPU、64 GB RAM
- 16: 16 vCPU、128 GB RAM
- 32: 32 vCPU、256 GB RAM
- 64: 64 vCPU、512 GB RAM
- 96: 96 vCPU、768 GB RAM
- 128: 128 vCPU、864 GB RAM
C4A インスタンスを作成するには、次の例に示すように、machine_config
構造で cpu_count
ではなく machine_type
フィールドを使用します。
machine_config: { machine_type : MACHINE_TYPE, },
C4A Axion ベースのマシンシリーズの場合、次の値が有効です。
c4a-highmem-1
c4a-highmem-4-lssd
c4a-highmem-8-lssd
c4a-highmem-16-lssd
c4a-highmem-32-lssd
c4a-highmem-48-lssd
c4a-highmem-64-lssd
c4a-highmem-72-lssd
N2 マシンシリーズの場合、有効な値は次のとおりです。
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-64
n2-highmem-96
n2-highmem-128
次の HTTP メソッドと URL を使用します。
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID
次のように置き換えます。
PROJECT_ID
: クラスタを配置するプロジェクトの ID。LOCATION_ID
: クラスタのリージョンの ID。CLUSTER_ID
: 作成するクラスタの ID。ID は英小文字で始まり、英小文字、数字、ハイフンを使用できます。INSTANCE_ID
: 作成するプライマリ インスタンスの名前。
次の例に示すように、curl を使用してリクエストを実行できます。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://alloydb.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID -d @instance_request.json