创建主实例

本页面介绍如何在 AlloyDB 集群中创建主实例。

准备工作

  • 您使用的 Google Cloud 项目必须已启用才能访问 AlloyDB
  • 您必须在所使用的 Google Cloud 项目中拥有以下 IAM 角色之一:
    • roles/alloydb.admin(AlloyDB Admin 预定义 IAM 角色)
    • roles/owner(Owner 基本 IAM 角色)
    • roles/editor(Editor 基本 IAM 角色)

    如果您不拥有上述任何角色,请与组织管理员联系以申请访问权限。

创建 AlloyDB 主实例

控制台

  1. 前往集群页面。

    转到集群

  2. 资源名称列中点击相应集群。

  3. 概览页面中,前往集群中的实例,然后点击创建主实例

  4. 配置主实例:

    1. 实例 ID 字段中,输入主实例的 ID。
    2. 可用区级可用性下,选择以下选项之一:
      1. 如需创建具有自动故障切换功能的高可用性生产实例,请选择多个可用区(高可用性)
      2. 如需创建不需要高可用性的基本实例,请选择单个可用区
    3. 选择以下机器系列之一:

      • C4A(基于 Google Axion 的机器系列)(预览版
      • N2(基于 x86 的机器系列)。这是默认的机器系列。
    4. 选择机器类型。

      • C4A 支持 1、4、8、16、32、48、64 和 72 种机器类型或形式。
      • N2 支持 2、4、8、16、32、64、96 和 128 种机器类型或形式。

      如需详细了解如何使用基于 C4A Axion 的机器系列(包括 1 个 vCPU 机器类型),请参阅使用基于 C4A Axion 的机器系列时的注意事项

    5. 可选:如需通过公共互联网连接您的应用和客户端,请选中公共 IP 连接下的启用公共 IP 复选框。启用公共 IP 可能需要进行额外配置,以确保安全连接。如需了解详情,请参阅使用公共 IP 进行连接

      默认情况下,专用 IP 始终处于启用状态。如需了解详情,请参阅启用专用服务访问通道

    6. 可选:如需启用和使用托管式连接池,请勾选托管式连接池下的启用托管式连接池复选框。如需了解详情,请参阅配置托管式连接池

    7. 可选:如需为实例设置自定义标志,请展开高级配置选项,然后针对每个标志执行以下操作:

      1. 点击添加标志
      2. 新增数据库标志列表中选择一个标志。
      3. 为标志提供值。
      4. 点击完成
    8. 可选:如需在实例上配置 SSL 或连接器要求,请展开高级配置选项,然后执行以下操作:

      1. 默认情况下,AlloyDB 实例要求所有连接都使用 SSL 加密。如要允许非 SSL 连接,请清除仅允许 SSL 连接复选框。
      2. 如果要求与实例的所有数据库连接都使用 AlloyDB Auth Proxy 或 Google 提供的安全连接器库,请勾选需要连接器
  5. 点击创建实例

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 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:在部署 N2 机器时,此参数是可选的。如需部署基于 C4A Axion 的机器系列(预览版),或者在 C4A 机器与 N2 机器之间迁移,请选择此参数并设置以下值。

    MACHINE_TYPECPU_COUNT 结合使用时,CPU_COUNTMACHINE_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

    如需部署 4vCPU 及更高配置的 C4A,请使用后缀 lssd 以启用超快缓存。

    如需详细了解如何使用基于 C4A Axion 的机器系列(包括 1 个 vCPU 机器类型),请参阅使用基于 C4A Axion 的机器系列时的注意事项

    对于基于 x86 的 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

  • AVAILABILITY:相应实例是否应具有高可用性 (HA),即在多个可用区中具有节点。有效值包括:

    • REGIONAL:创建具有单独的活跃节点和备用节点并在两者之间实现自动故障切换的高可用性实例。这是默认值,适用于生产环境。
    • ZONAL:创建仅包含一个节点且不具备自动故障切换功能的基本实例。
  • REGION_ID:您要将实例放置在其中的区域。例如 us-central1

  • CLUSTER_ID:您希望放置实例的集群的 ID。

  • PROJECT_ID:集群所在项目的 ID。

如需将特定 IP 地址范围应用于此实例,而不是允许 AlloyDB 选择 IP 地址范围,请提供以下参数:

      --allocated-ip-range-override=OVERRIDE_RANGE_NAME

OVERRIDE_RANGE_NAME 替换为您想要此实例用于专用服务访问通道的 IP 地址范围的名称,例如 google-managed-services-default。范围名称必须符合 RFC 1035 的要求。具体而言,名称的长度必须为 1-63 个字符,并且必须与正则表达式 [a-z]([-a-z0-9]*[a-z0-9])? 匹配。

如需详细了解此选项,请参阅创建具有特定 IP 地址范围的实例

默认情况下,新实例要求所有连接都使用 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 实例中启用托管式连接池,请将 --enable-connection-pooling 标志添加到 gcloud alpha alloydb instances create 命令中:

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 的 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
  }

  network_config {
    allocated_ip_range_override = google_compute_global_address.private_ip_alloc_2.name
  }

  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
    allocated_ip_range = google_compute_global_address.private_ip_alloc_1.name
  }

  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-address-range-1"
  address_type  = "INTERNAL"
  purpose       = "VPC_PEERING"
  prefix_length = 16
  network       = google_compute_network.default.id
}

resource "google_compute_global_address" "private_ip_alloc_2" {
  name          =  "alloydb-address-range-2"
  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_1.name,google_compute_global_address.private_ip_alloc_2.name]
}

准备 Cloud Shell

如需在 Google Cloud 项目中应用 Terraform 配置,请按以下方式准备 Cloud Shell:

  1. 启动 Cloud Shell
  2. 设置要应用 Terraform 配置的默认 Google Cloud 项目。

    您只需为每个项目运行一次以下命令,即可在任何目录中运行它。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。

准备目录

每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。

  1. Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须是 TF 文件,例如 main.tf。在本文档中,该文件称为 main.tf
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 将示例代码复制到新创建的 main.tf 中。 (可选)从 GitHub 中复制代码。如果 Terraform 代码段是端到端解决方案的一部分,则建议这样做。
    git clone https://github.com/terraform-google-modules/terraform-docs-samples
  3. terraform-docs-samples 目录中,前往 alloydb 目录。
    cd terraform-docs-samples/alloydb
  4. 将示例代码复制到新创建的 main.tf 中。
    cp SAMPLE_FILE
    <var>SAMPLE_FILE</var> 替换为要复制的示例文件的名称,例如 main.tf
  5. 查看和修改要应用到您的环境的示例参数。
  6. 保存更改。
  7. 初始化 Terraform。您只需为每个目录执行一次此操作。
    terraform init
    (可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade 选项:
    terraform init -upgrade

应用更改

  1. 查看配置,确认 Terraform 更新是否符合您的预期:
    terraform plan
    根据需要更正配置。
  2. 通过运行以下命令并在提示符处输入 yes 来应用 Terraform 配置:
    terraform apply
    等待 Terraform 显示 Apply complete! 消息。

打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到相应资源,以确保 Terraform 已创建或更新它们。

REST v1

此示例会创建一个主实例。如需查看此调用的完整参数列表,请参阅方法:projects.locations.clusters.instances.create。如需了解集群设置,请参阅查看集群和实例设置

请勿在集群 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

后续步骤