佈建

第 2 代

透過 目錄Cloud Databases CLI 外掛程式Cloud Databases APITerraform 來部署 IBM Cloud® Databases for PostgreSQL。

透過 IBM Cloud 控制台 (UI) 進行配置

請透過控制台指定以下參數進行部署:

地點與平台

  • 位置- 選擇您要部署資料庫的區域。 清單中的每個區域皆標示其支援的平台( 第一代或第二代 ),以協助您進行選擇。
  • 平台- 選擇您要部署資料庫的平台。 可選方案取決於您選擇的地區。 有關第一代與第二代之間差異的更多資訊,請參閱 《第一代與第二代概覽》

服務詳細資料

  • 服務名稱 — 名稱可以是任何字串,並用於在網頁和命令列介面 (CLI) 中識別此新部署。
  • 資源群組 — 若您將服務整理成 資源群組,請在此欄位中指定該資源群組。 否則,您可以保留預設設定。 如需相關資訊,請參閱管理資源群組

代管模式

對於第 2 代部署,僅提供「隔離式」託管模式。

隔離式: 專為複雜且需高效能的企業工作負載所設計的安全單租戶解決方案。 如需更多資訊,請參閱「託管模式」。

資源配置

精細調整您的資源配置。 請參照下表,為部署中的每個成員選擇機器規格,並指定磁碟大小。

固定型材

固定型材選項
主機大小 vCPU x RAM
4x20 4 顆 vCPU 處理器 × 20 GB 記憶體
8x40 8 顆 vCPU 處理器 × 40 GB 記憶體
16x80 16 vCPU × 80 GB RAM
32x160 32 英吋 vCPU x 160 GB RAM
48x240 48 vCPU × 240 GB RAM

Flex 配置檔

Flex 型號選項
主機大小 vCPU x RAM
4x16 4 顆 vCPU,搭配 16 GB RAM
8x32 8 vCPU × 32 GB RAM
16x64 16 vCPU x 64 GB RAM
32x128 32 vCPU x 128 GB RAM

請根據您的需求選擇磁碟大小。 如有需要,您稍後可以增加其大小,但為避免潛在的資料遺失,在配置完成後不得縮小其大小。

服務配置

  • 資料庫版本 [僅在部署時設定] {: tag-red}- 您的資料庫的部署版本。 為確保最佳效能,請執行首選版本。 系統會自動採用最新的次版本。 如需更多資訊,請參閱《 版本控制政策 》。
  • 加密 — 若您使用 Key Protect,可選擇一個實例和金鑰來加密部署的磁碟。 如果您未使用自己的金鑰,部署程序會自動建立並管理專屬的磁碟加密金鑰。
  • [僅在部署時設定的]端點 {: tag-red}- 在您的部署中設定服務端點。 對於第 2 代,僅支援私有端點。

選取適當的設定後,請按一下「建立」以開始配置程序。

透過 CLI 進行配置

透過 CLI 建立服務實例

在進行配置之前,請依照文件中的指示安裝 IBM Cloud 命令列介面(CLI)工具

  1. 登入 IBM Cloud。 如果您使用的是聯邦式使用者 ID,請務必切換至一次性驗證碼(ibmcloud login --sso ),或使用 API 金鑰(ibmcloud --apikey key or @key_file )進行驗證。 如需進一步了解如何透過 CLI 登入,請參閱 ibmcloud login 中的「一般 CLI(ibmcloud)指令」。

    ibmcloud login
    
  2. 請選擇您希望為資料庫配置的 託管模式。 您可以稍後進行變更。

  3. 請使用以下指令為您的資料庫進行初始化:

    ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_NAME> <SERVICE_PLAN_NAME> <LOCATION> <RESOURCE_GROUP> -p '{"members_host_flavor": "<members_host_flavor value>"}' --service-endpoints="<Endpoint>"
    

    例如,若要配置一個採用「Databases for PostgreSQL」共享運算主機模式的實例,請使用類似以下的指令:

    ibmcloud resource service-instance-create test-database databases-for-postgresql standard us-south -p '{"members_host_flavor": "multitenant", "members_memory_allocation_mb": "8192"}' --service-endpoints="private"
    

    請部署一個 Databases for PostgreSQL 隔離型實例,並使用相同的 "members_host_flavor" -p 參數,將其設定為所需的隔離型實例大小。 可用的主機空間大小及其 members_host_flavor value 參數列於 表 2 中。 例如,{"members_host_flavor": "b3c.4x16.encrypted"}。 請注意,由於主機規格選項已包含 CPU 和 RAM 容量(b3c.4x16.encrypted 代表 4 顆 CPU 和 16 RAM),因此此請求不接受同時選擇「隔離規格」以及分別設定 CPU 和 RAM 配額的選項。

    ibmcloud resource service-instance-create test-database databases-for-postgresql enterprise us-south -p '{"members_host_flavor": "b3c.4x16.encrypted"}' --service-endpoints="private"
    

    該指令中的各欄位說明詳見下表。

    基本指令格式欄位
    欄位 說明 旗標
    INSTANCE_NAME 必填 實例名稱可以是任何字串,這是用於在網頁和命令列介面 (CLI) 中識別新部署的名稱。
    SERVICE_NAME 必填 服務的名稱或 ID。 若要存取 Databases for PostgreSQL,請使用 databases-for-postgresql
    SERVICE_PLAN_NAME 必填 標準方案(standard
    LOCATION 必填 您要部署的位置。 若要擷取區域清單,請使用 ibmcloud regions 指令。
    RESOURCE_GROUP 資源群組名稱。 預設值為 default -g
    --parameters 要建立服務實例之參數的 JSON 檔案或 JSON 字串 -p
    members_host_flavor 若要配置隔離運算實例,請使用 {"members_host_flavor": "<members_host_flavor value>"}。 對於「隔離式運算」,請選擇所需的 CPU 和 RAM 配置。 如需更多資訊,請參閱下表或「託管模式」。
    --service-endpoints 必填 僅支援 private

    您將會看到類似以下的回應:

    Creating service instance INSTANCE_NAME in resource group default of account    USER...
    OK
    Service instance INSTANCE_NAME was created.
    Name:                INSTANCE_NAME
    ID:                  crn:v1:bluemix:public:databases-for-postgresql:us-south:a/   40ddc34a846383BGB5b60e:dd13152c-fe15-4bb6-af94-fde0af5303f4::
    GUID:                dd13152c-fe15-4bb6-af94-fde0af56897
    Location:            LOCATION
    State:               provisioning
    Type:                service_instance
    Sub Type:            Public
    Service Endpoints:   private
    Allow Cleanup:       false
    Locked:              false
    Created at:          2023-06-26T19:42:07Z
    Updated at:          2023-06-26T19:42:07Z
    Last Operation:
                         Status    create in progress
                         Message   Started create instance operation
    
    • 若要檢查配置狀態,請使用以下指令:

      ibmcloud resource service-instance <INSTANCE_NAME_OR_CRN>
      

      完成後,您將看到類似以下的回應:

      Retrieving service instance INSTANCE_NAME in resource group default under account USER's Account as USER...
      OK
      Name:                  INSTANCE_NAME
      ID:                    crn:v1:bluemix:public:databases-for-postgresql:us-south:a/40ddc34a953a8c02f109835656860e:dd13152c-fe15-4bb6-af94-fde0af5303f4::
      GUID:                  dd13152c-fe15-4bb6-af94-fde5654765
      Location:              <LOCATION>
      Service Name:          databases-for-postgresql
      Service Plan Name:     standard
      Resource Group Name:   default
      State:                 active
      Type:                  service_instance
      Sub Type:              Public
      Locked:                false
      Service Endpoints:     private
      Created at:            2023-06-26T19:42:07Z
      Created by:            USER
      Updated at:            2023-06-26T19:53:25Z
      Last Operation:
                             Status    create succeeded
                             Message   Provisioning postgresql with version 12 (100%)
      
    • (可選) 刪除服務實例 執行類似以下的指令來刪除一個實例:

      ibmcloud resource service-instance-delete <INSTANCE_NAME_OR_CRN>
      

members host flavor 參數

members_host_flavor 參數用於定義您的 Compute 規格。

要配置一個「隔離運算」執行個體,請指定符合您所需設定的 CPU 和 RAM 數值。

修正了 CLI 選項的設定
主機大小 vCPU x RAM host_flavor 值
4x20 4 顆 vCPU 處理器 × 20 GB 記憶體 bx3d.4x20.encrypted
8x40 8 顆 vCPU 處理器 × 40 GB 記憶體 bx3d.8x40.encrypted
16x80 16 vCPU × 80 GB RAM mx3d.16x80.encrypted
32x160 32 英吋 vCPU x 160 GB RAM bx3d.32x160.encrypted
48x240 48 vCPU × 240 GB RAM bx3d.48x240.encrypted
Flex 設定檔 CLI 選項
主機大小 vCPU x RAM host_flavor 值
4x16 4 顆 vCPU,搭配 16 GB RAM b3c.4x16.encrypted
8x32 8 vCPU × 32 GB RAM b3c.8x32.encrypted
16x64 16 vCPU x 64 GB RAM b3c.16x64.encrypted

Cloud Databases 隔離運算服務不支援 CPU 和 RAM 的自動擴展,但支援磁碟的自動擴展。 透過 IBM Cloud® Monitoring 整合 功能監控您的資源,該功能可追蹤記憶體、磁碟空間及磁碟 I/O 使用狀況。 若要增加資源,請手動擴展您的部署規模。

--parameters 參數

service-instance-create 指令支援 -p 參數,此參數可將 JSON 格式的參數傳遞至配置流程。 例如,您可以將雲端資源名稱(CRN)作為參數值傳入,該名稱可唯一識別雲端中的資源。 所有參數名稱和值均以字串形式傳遞。

舉例來說,若要從某個特定備份建立資料庫,且新資料庫的部署在三個成員上總共需要 12 GB 記憶體,那麼每名成員配置 4 GB 的指令如下:

ibmcloud resource service-instance-create databases-for-postgresql <INSTANCE_NAME> standard us-south \
-p \ '{
  "backup_id": "crn:v1:blue:public:databases-for-postgresql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "members_memory_allocation_mb": "4096"
}' --service-endpoints="private"

透過資源控制器 API 進行資源配置

請依照以下步驟,使用 資源控制器 API 進行資源配置。

  1. 取得 從您的 API 憑證中取得 IAM 憑證

  2. 您需要知道要進行部署的資源群組的 ID。 請使用此指令來取得您帳戶中的資源群組清單:

     curl -X GET "https://resource-controller.cloud.ibm.com/v2/resource_groups?account_id=<YOUR_ACCOUNT>" -H "Authorization: Bearer <TOKEN>"
    
  3. 您需要了解欲進行部署的區域。 若要列出可從當前區域進行部署配置的所有區域,請使用此 API 指令:

     curl -X GET https://api.<YOUR-REGION>.databases.cloud.ibm.com/v5/ibm/regions -H 'Authorization: Bearer <TOKEN>' \
    
  4. 請選擇您希望為資料庫配置的 託管模式。 您可以稍後進行變更。

    主機類型代表固定大小的保證資源分配。 若要查看您所在地區可用的主機類型,請如下所示呼叫 主機類型功能端點

    curl -X POST  https://api.{region}.databases.cloud.ibm.com/v5/ibm/capability/flavors  \
     -H 'Authorization: Bearer <>' \
     -H 'ContentType: application/json' \
     -d '{
       "deployment": {
         "type": "postgresql",
         "location": "us-south"
        }
      }'
    

    這會傳回:

    {
      "deployment": {
        "type": "postgresql",
        "location": "us-south",
        "platform": "classic"
      },
      "capability": {
        "flavors": [
          {
            "id": "b3c.4x16.encrypted",
            "name": "4x16",
            "cpu": {
              "allocation_count": 4
            },
            "memory": {
              "allocation_mb": 16384
            },
            "hosting_size": "xs"
          },
          {
            "id": "b3c.8x32.encrypted",
            "name": "8x32",
            "cpu": {
              "allocation_count": 8
            },
            "memory": {
              "allocation_mb": 32768
            },
            "hosting_size": "s"
          },
          {
            "id": "m3c.8x64.encrypted",
            "name": "8x64",
            "cpu": {
              "allocation_count": 8
            },
            "memory": {
              "allocation_mb": 65536
            },
            "hosting_size": "s+"
          },
          {
            "id": "b3c.16x64.encrypted",
            "name": "16x64",
            "cpu": {
              "allocation_count": 16
            },
            "memory": {
              "allocation_mb": 65536
            },
            "hosting_size": "m"
          },
          {
            "id": "b3c.32x128.encrypted",
            "name": "32x128",
            "cpu": {
              "allocation_count": 32
            },
            "memory": {
              "allocation_mb": 131072
            },
            "hosting_size": "l"
          },
          {
            "id": "m3c.30x240.encrypted",
            "name": "30x240",
            "cpu": {
              "allocation_count": 30
            },
            "memory": {
              "allocation_mb": 245760
            },
            "hosting_size": "xl"
          },
          {
            "id": "multitenant",
            "name": "multitenant",
            "cpu": {
              "allocation_count": 0
            },
            "memory": {
              "allocation_mb": 0
            },
            "hosting_size": ""
          }
        ]
      }
    }
    

    若要將您的執行個體配置或擴展至 4 個 CPU 及 16384 兆位元組的 RAM,請執行以下指令:

    {
      "parameters": {
        "members_host_flavor": "b3c.4x16.encrypted"
      }
    }
    

    若要將您的執行個體擴展至 8 個 CPU 及 32768 百萬位元組的 RAM,請提交一個包含新 members_host_flavor 的擴展指令:

    {
      "parameters": {
        "members_host_flavor": "b3c.8x32.encrypted"
      }
    }
    
  5. 取得所有資訊後,請使用「IBM Cloud」資源控制器來 配置新的資源實例

    curl -X POST \
      https://resource-controller.cloud.ibm.com/v2/resource_instances \
      -H "Authorization: Bearer <>" \
      -H 'Content-Type: application/json' \
        -d '{
        "name": "<INSTANCE_NAME_OR_CRN",
        "target": "<LOCATION>",
        "resource_group": "RESOURCE_GROUP_ID",
        "resource_plan_id": "<SERVICE_PLAN_NAME>"
        "parameters": {
            "members_host_flavor": "<members_host_flavor_value>",
            "service_endpoints": "<ENDPOINT>",
            "version": "<version>"
        }
      }'
    

    部署一個具有相同 "members_host_flavor" 參數的 Databases for PostgreSQL 隔離實例,並將該參數設定為所需的隔離實例大小。 可用的主機空間大小及其 members_host_flavor value 參數列於 表 2 中。 例如,{"members_host_flavor": "b3c.4x16.encrypted"}。 請注意,由於主機規格選項已包含 CPU 和 RAM 容量(b3c.4x16.encrypted 代表 4 顆 CPU 和 16 RAM),因此此請求不接受同時選擇「隔離規格」以及分別設定 CPU 和 RAM 配額的選項。

    curl -X POST \
      https://resource-controller.cloud.ibm.com/v2/resource_instances \
      -H "Authorization: Bearer <>" \
      -H 'Content-Type: application/json' \
        -d '{
       "name": "my-instance",
       "target": "us-south",
       "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
       "resource_plan_id": "databases-for-postgresql-standard"
       "parameters": {
          "member_host_flavor": "b3c.4x16.encrypted",
          "service_endpoints": "private"
        }
      }'
    

    參數 nametargetresource_groupresource_plan_id 以及 service_endpoints 均為必填項目。

    該指令中的各欄位說明詳見下表。

    基本指令格式欄位
    欄位 說明 旗標
    name 必填 實例名稱可以是任何字串,這是用於在網頁和命令列介面 (CLI) 中識別新部署的名稱。
    target 必填 您要部署的區域。 若要擷取區域清單,請使用 ibmcloud regions 指令。
    resource_group 資源群組名稱。 預設值為 default -g
    resource_plan_id 必填 服務的名稱或 ID。 若要存取 Databases for PostgreSQL,請使用 databases-for-postgresql-standard
    --parameters 要建立服務實例之參數的 JSON 檔案或 JSON 字串 -p
    members_host_flavor 若要配置隔離運算實例,請使用 {"members_host_flavor": "<members_host_flavor value>"}。 對於「隔離式運算」,請選擇所需的 CPU 和 RAM 配置。 如需更多資訊,請參閱下表或「託管模式」。
    --service-endpoints 必填 僅支援 private
    version 即將部署的資料庫版本。 若未指定,系統將使用最新的主要版本和次要版本來建立資料庫。

host flavor 參數

members_host_flavor 參數用於定義您的 Compute 規格。

要配置一個「隔離運算」執行個體,請指定符合您所需設定的 CPU 和 RAM 數值。

已修正的 API 選項清單
主機大小 vCPU x RAM host_flavor 值
4x20 4 顆 vCPU 處理器 × 20 GB 記憶體 bx3d.4x20.encrypted
8x40 8 顆 vCPU 處理器 × 40 GB 記憶體 bx3d.8x40.encrypted
16x80 16 vCPU × 80 GB RAM mx3d.16x80.encrypted
32x160 32 英吋 vCPU x 160 GB RAM bx3d.32x160.encrypted
48x240 48 vCPU × 240 GB RAM bx3d.48x240.encrypted
Flex 配置檔 API 選項
主機大小 vCPU x RAM host_flavor 值
4x16 4 顆 vCPU,搭配 16 GB RAM b3c.4x16.encrypted
8x32 8 vCPU × 32 GB RAM b3c.8x32.encrypted
16x64 16 vCPU x 64 GB RAM b3c.16x64.encrypted

Cloud Databases 隔離運算服務不支援 CPU 和 RAM 的自動擴展,但支援磁碟的自動擴展。 透過 IBM Cloud® Monitoring 整合 功能監控您的資源,該功能可追蹤記憶體、磁碟空間及磁碟 I/O 使用狀況。 若要增加資源,請手動擴展您的部署規模。

附加參數清單

  • backup_id- 要用來還原的備份資源的 CRN。 該備份必須由具有相同服務 ID 的資料庫部署所建立。 在完成配置後,系統會載入備份,並啟動使用該資料的新部署。 備用 CRN 的格式為 crn:v1:<...>:backup:<uuid> —— 若未指定,則會配置一個空的資料庫。

  • disk_encryption_key_crn- KMS 金鑰的 CRN( Key Protect ),此值隨後將用於磁碟加密。 KMS 金鑰的 CRN 格式為 crn:v1:<...>:key:<id>

  • backup_encryption_key_crn- KMS 金鑰的 CRN([Key Protect ),該值隨後將用於備份加密。 KMS 金鑰的 CRN 格式為 crn:v1:<...>:key:<id>

    若要為備份使用金鑰,您必須先 啟用「服務對服務」授權功能

  • members_memory_allocation_mb- RAM 分配量為每次部署的總量。 資料庫內各資料庫成員之間將共享的記憶體總量。 舉例來說,若該值為「8192」,且有兩個資料庫成員,則該部署將獲得總計 8 GB 的 RAM,每個成員可分配 4 GB 的 RAM。 若未指定,則會採用資料庫類型的預設值。 此參數僅適用於 multitenant

  • members_disk_allocation_mb- 磁碟配額為每次部署的總量。 資料庫內各資料庫成員之間將共享的磁碟總容量。 舉例來說,若該值為「30720」,且共有三個成員,則該部署將獲得總計 30 GB 的磁碟空間,每個成員可分配 10 GB 的磁碟空間。 若未指定,則會使用資料庫類型的預設值。 此參數僅適用於 multitenant

  • members_cpu_allocation_count- CPU 資源的分配是針對每個資料庫成員分別進行的。 啟用並為您的部署分配指定數量的核心。 例如,若要為每個成員分配兩個專用核心,請使用 "members_cpu_allocation_count":"2"。 若未指定,將套用預設的「共享運算」CPU:RAM 比例。 此參數僅適用於 multitenant

  • remote_leader_id- 用於建立複本(唯讀)部署的領導者資料庫之 CRN。 領導者資料庫是由 Databases for PostgreSQL 部署所建立的。 建立一個唯讀副本,以透過非同步複製,將您所有資料從領導者部署複製到副本部署。 如需更多資訊,請參閱「設定唯讀複本」。

使用 Terraform 進行配置

透過 ibm_database Terraform 的資源 使用 Terraform 管理您的基礎架構,該服務支援 Cloud Databases 部署的配置。

請選擇您希望為資料庫配置的 託管模式。 您可以稍後進行變更。

使用 Terraform 配置隔離的運算資源

部署一個具有相同 "host_flavor" 參數的 Databases for PostgreSQL 隔離實例,並將該參數設定為所需的隔離實例大小。 可用的主機空間大小及其 host_flavor value 參數列 於表 1 中。 例如,{"host_flavor": "b3c.4x16.encrypted"}。 請注意,由於主機規格選項已包含 CPU 和 RAM 容量(b3c.4x16.encrypted 代表 4 顆 CPU 和 16 RAM),因此此請求不接受同時選擇「隔離規格」以及分別設定 CPU 和 RAM 配額的選項。

data "ibm_resource_group" "group" {
  name = "<your_group>"
}
resource "ibm_database" "<your_database>" {
  name              = "<your_database_name>"
  plan              = "standard"
  location          = "eu-gb"
  service           = "databases-for-postgresql"
  resource_group_id = data.ibm_resource_group.group.id
  service_endpoints = "private"
  tags              = ["tag1", "tag2"]
  adminpassword                = "password12"
  group {
    group_id = "member"
    host_flavor {
      id = "b3c.8x32.encrypted"
    }
    disk {
      allocation_mb = 256000
    }
  }
  users {
    name     = "user123"
    password = "password12"
  }
  allowlist {
    address     = "172.168.1.1/32"
    description = "desc"
  }
}
output "ICD Postgresql database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

host flavor 參數

host_flavor 參數用於定義您的 Compute 規格。

隔離運算- 若要配置一個隔離運算實例,請指定符合您所需配置的 CPU 和 RAM 數值。

已修正 Terraform 選項的設定
主機大小 vCPU x RAM host_flavor 值
4x20 4 顆 vCPU 處理器 × 20 GB 記憶體 bx3d.4x20.encrypted
8x40 8 顆 vCPU 處理器 × 40 GB 記憶體 bx3d.8x40.encrypted
16x80 16 vCPU × 80 GB RAM mx3d.16x80.encrypted
32x160 32 英吋 vCPU x 160 GB RAM bx3d.32x160.encrypted
48x240 48 vCPU × 240 GB RAM bx3d.48x240.encrypted
Flex 設定檔的 Terraform 選項
主機大小 vCPU x RAM host_flavor 值
4x16 4 顆 vCPU,搭配 16 GB RAM b3c.4x16.encrypted
8x32 8 vCPU × 32 GB RAM b3c.8x32.encrypted
16x64 16 vCPU x 64 GB RAM b3c.16x64.encrypted

Cloud Databases 的「隔離運算」服務不支援 CPU 和 RAM 的自動擴展,但支援磁碟的自動擴展。 透過 IBM Cloud® Monitoring 整合 功能監控您的資源,該功能可追蹤記憶體、磁碟空間及磁碟 I/O 使用狀況。 若要增加資源,請手動擴展您的部署規模。