本页面介绍如何在 AlloyDB 集群中创建主实例。
准备工作
- 您使用的 Google Cloud 项目必须已启用才能访问 AlloyDB。
- 您必须在所使用的 Google Cloud 项目中拥有以下 IAM 角色之一:
      - roles/alloydb.admin(AlloyDB Admin 预定义 IAM 角色)
- roles/owner(Owner 基本 IAM 角色)
- roles/editor(Editor 基本 IAM 角色)
 如果您不拥有上述任何角色,请与组织管理员联系以申请访问权限。 
创建 AlloyDB 主实例
控制台
- 前往集群页面。 
- 在资源名称列中点击相应集群。 
- 在概览页面中,前往集群中的实例,然后点击创建主实例。 
- 配置主实例: - 在实例 ID 字段中,输入主实例的 ID。
- 在可用区级可用性下,选择以下选项之一:
- 如需创建具有自动故障切换功能的高可用性生产实例,请选择多个可用区(高可用性)。
- 如需创建不需要高可用性的基本实例,请选择单个可用区。
 
- 选择以下机器系列之一: - C4A(基于 Google Axion 的机器系列)
- N2(基于 x86 的机器系列)。这是默认的机器系列。
 
- 选择机器类型。 - C4A 支持 1、4、8、16、32、48、64 和 72 种机器类型或形式。
- N2 支持 2、4、8、16、32、64、96 和 128 种机器类型或形式。
 - 如需详细了解如何使用基于 C4A Axion 的机器系列(包括 1 个 vCPU 机器类型),请参阅使用基于 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:创建具有单独的活跃节点和备用节点并在两者之间实现自动故障切换的高可用性实例。这是默认值,适用于生产环境。
- ZONAL:创建仅包含一个节点且不具备自动故障切换功能的基本实例。
 
- 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 实例中启用托管式连接池,请将 --enable-connection-pooling 标志添加到 gcloud alloydb instances create 命令中:
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 项目。 - 您只需为每个项目运行一次以下命令,即可在任何目录中运行它。 - 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。您只需为每个目录执行一次此操作。
terraform init -upgrade选项:terraform init -upgrade 
应用更改
- 查看配置,确认 Terraform 更新是否符合您的预期:
terraform plan 
- 通过运行以下命令并在提示符处输入 yes来应用 Terraform 配置:terraform apply Apply complete!消息。
打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到相应资源,以确保 Terraform 已创建或更新它们。
REST v1
创建实例
此示例会创建一个主实例。如需查看此调用的完整参数列表,请参阅方法:projects.locations.clusters.instances.create。如需了解集群设置,请参阅查看集群和实例设置。
请勿在集群 ID 中包含敏感信息或个人身份信息,因为它可供外部用户查看。无需在集群名称中包含项目 ID,因为系统会在适当的位置(例如在日志文件中)自动包含项目 ID。
如需发送请求,请将请求正文保存在名为 instance_request.json 的文件中。
{
  "instance_type": "PRIMARY",
  "machine_config": {
    "cpu_count": "vCPU_COUNT",
  },
}
进行以下替换:
- CPU_COUNT:要创建的实例上的可见 CPU 核心数。
上述示例创建了一个具有以下规范的 N2 实例:
- 2:2 vCPUs、16 GB RAM
- 4:4 vCPUs, 32 GB RAM
- 8:8 vCPUs, 64 GB RAM
- 16:16 vCPUs, 128 GB RAM
- 32:32 vCPUs, 256 GB RAM
- 64:64 vCPUs, 512 GB RAM
- 96:96 vCPUs, 768 GB RAM
- 128:128 vCPUs, 864 GB RAM
如需创建 C4A 实例,请在 machine_config 结构中使用 machine_type 字段,而不是 cpu_count,如以下示例所示:
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 方法和网址:
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