このページでは、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 のマシンタイプまたはシェイプをサポートしています。
vCPU 数が 1 個のマシンタイプなど、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 \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID
INSTANCE_ID
: 作成するインスタンスの ID。先頭は英小文字にします。英小文字、数字、ハイフンを使用できます。CPU_COUNT
: インスタンスに必要な N2 vCPU の数。N2 がデフォルトです。有効な値は次のとおりです。2
: 2 vCPU、16 GB RAM4
: 4 vCPU、32 GB RAM8
: 8 vCPU、64 GB RAM16
: 16 vCPU、128 GB RAM32
: 32 vCPU、256 GB RAM64
: 64 vCPU、512 GB RAM96
: 96 vCPU、768 GB RAM128
: 128 vCPU、864 GB RAM
MACHINE_TYPE
: N2 マシンをデプロイする場合、このパラメータは省略可能です。C4A Axion ベースのマシンシリーズ(プレビュー)をデプロイする場合、または C4A マシンと N2 マシン間で移行する場合は、次の値でこのパラメータを選択します。MACHINE_TYPE
とCPU_COUNT
を一緒に使用する場合、CPU_COUNT
と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
4 vCPU 以上の C4A をデプロイするには、接尾辞
lssd
を使用して超高速キャッシュを有効にします。vCPU 数が 1 個のマシンタイプなど、C4A Axion ベースのマシンシリーズの使用の詳細については、C4A Axion ベースのマシンシリーズを使用する場合の考慮事項をご覧ください。
N2 x86 ベースのマシンシリーズの場合は、次の値を使用します。
N2-highmem-2
N2-highmem-4
N2-highmem-8
N2-highmem-16
N2-highmem-32
N2-highmem-64
N2-highmem-96
N2-highmem-128
AVAILABILITY
: このインスタンスを高可用性(HA)にするか、複数のゾーンにノードを配置するか。有効な値は次のとおりです。REGIONAL
: アクティブ ノードとスタンバイ ノードを別々に持つ HA インスタンスを作成し、それらの間で自動フェイルオーバーを行います。これはデフォルト値で、本番環境に適しています。ZONAL
: 1 つのノードのみを含む基本インスタンスを作成し、自動フェイルオーバーは行いません。
REGION_ID
: インスタンスを配置するリージョン。例:us-central1
CLUSTER_ID
: インスタンスを配置するクラスタの ID。PROJECT_ID
: クラスタが配置されるプロジェクトの ID。
デフォルトでは、新しいインスタンスではすべての接続で SSL 暗号化を使用する必要があります。インスタンスへの SSL 以外の接続を許可するには、コマンドに --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
フラグを追加します。
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
Auth Proxy または Google 提供のコネクタ ライブラリを使用する他のアプリケーションを介して、クライアントと AlloyDB インスタンス間の安全な接続を適用するには、コマンドに --require-connectors
フラグを追加します。
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--require-connectors
AlloyDB インスタンスでマネージド接続プールを有効にするには、gcloud alpha alloydb instances create
コマンドに --enable-connection-pooling
フラグを追加します。
gcloud alpha alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-connection-pooling
Private Service Connect が有効なクラスタのプライマリ インスタンスを作成するには、--allowed-psc-projects
フラグを追加して、インスタンスへのアクセスを許可するプロジェクト ID またはプロジェクト番号のカンマ区切りリストを設定します(例: my-project-1
、12345
、my-project-n
)。
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI
次のように置き換えます。
ALLOWED_PROJECT_LIST
(省略可): インスタンスへのアクセスを許可するプロジェクト ID またはプロジェクト番号のカンマ区切りリスト(例:my-project-1
、12345
、my-project-n
)。インスタンスへの接続方法としてクラスタが Private Service Connect を使用している場合は、許可するプロジェクトまたは番号のリストを設定する必要があります。NETWORK_ATTACHMENT_URI
(省略可): 作成するネットワーク アタッチメント URI の完全なリソース名。例:projects/<var>PROJECT_ID</var>/regions/<var>REGION_ID</var>/networkAttachments/<var>NETWORK_ATTACHMENT_ID</var>
。
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]
}
Cloud Shell を準備する
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 スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。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.create をご覧ください。クラスタの設定の詳細については、クラスタとインスタンスの設定を表示するをご覧ください。
クラスタ ID には機密情報や個人を特定できる情報を含めないでください。クラスタ ID は外部から閲覧可能です。クラスタ名にプロジェクト ID を含める必要はありません。この処理は必要に応じて(ログファイルなどに対して)自動的に行われます。
リクエストのデータを使用する前に、次のように置き換えます。
CLUSTER_ID
: 作成するクラスタの ID。先頭は英小文字にします。英小文字、数字、ハイフンを使用できます。PROJECT_ID
: クラスタを配置するプロジェクトの ID。LOCATION_ID
: クラスタのリージョンの ID。INSTANCE_ID
: 作成するプライマリ インスタンスの名前。vCPU_COUNT
: 作成するインスタンスで可視な CPU コアの数。
リクエストの JSON 本文は次のようになります。
{
instanceId = "INSTANCE_ID"
instanceType = "PRIMARY"
machineConfig {
cpuCount = vCPU_COUNT
}
databaseFlags = {
"key1" : "value1",
"key2" : "value2"
}
}
リクエストを送信するには、リクエスト本文を request.json
という名前のファイルに保存し、次の POST
リクエストを使用します。
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances