佈建

透過 目錄Cloud Databases CLI 外掛程式、 Cloud Databases APITerraform 或預先建立、開放源碼且適用於企業的 Terraform IBM 模組(TIM),提供 IBM Cloud® Databases for PostgreSQL 部署。

透過IBM Cloud控制台進行配置

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

服務詳細資料

  • 服務名稱- 名稱可以是任何字串,並且是在 Web 和 CLI 中用於識別新部署的名稱。
  • 資源組- 如果您要將服務組織到 資源組 中,請在此欄位中指定資源組。 否則,您可以保留預設值。 如需相關資訊,請參閱管理資源群組
  • Location- 部署的公有雲區域。

代管模式

  • 隔離: 針對複雜且高效能的企業工作負載提供安全單一租戶供應項目。
  • 共享: 靈活的多租戶產品,可實現動態、微調和解耦的容量選擇。 有關更多信息,請參閱 託管模型

資源配置

細部調整您的資源配置。 可用的選項會根據您選取的管理模型而有所不同。

  • 隔離: 使用表格來選擇部署中每一個成員的機器大小,並指定磁碟大小。
  • 共用: 依預設,會選取可能的最小資源配置。 這適用於小型應用程式或測試。 對於較大的配置,請選取 自訂 磚,以容許具有 2 個以上核心的彈性資源配置。

共享運算託管模型支援更細粒度的資源分配,為保持清晰度,這些資源分配未顯示在 UI 中。 有關更多信息,請參閱 託管模型

視您的需求而定,指定磁碟大小。 它可以在佈建之後增加,但無法減少以防止資料流失。

服務配置

  • 資料庫版本僅在部署時設定- 資料庫的部署版本。 若要確保最佳效能,請執行偏好的版本。 會自動使用最新的次要版本。 有關詳細信息,請參閱 版本控制策略
  • 加密- 如果您使用 Key Protect,則可以選擇實例和金鑰來加密部署的磁碟。 如果您不使用自己的金鑰,部署會自動建立並管理自己的磁碟加密金鑰。
  • [僅在部署時設定]端點- 在部署中設定服務端點。 預設設定為隱私

選取適當的設定之後,請按一下 建立 以啟動佈建處理程序。

透過 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"
    

    使用相同的 "members_host_flavor" -p參數配置一個Databases for PostgreSQL隔離實例,並將其設定為所需的隔離大小。 表 2 列出了可用的託管大小及其 members_host_flavor value 參數。 例如,{"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 必須 實例名稱可以是任何字串,而且是在 Web 及 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>"}。 對於共享計算,指定 multitenant。 對於隔離運算,選擇所需的 CPU 和 RAM 配置。 如需詳細資訊,請參閱下表或 託管機型
    --service-endpoints 必須 配置部署的 服務端點publicprivatepublic-and-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 參數定義計算大小。 若要佈建「共用運算」實例,請指定 multitenant。 若要設定隔離計算實例,請輸入所需 CPU 和 RAM 配置的適當值。

主機風味尺寸參數
會員主機風味 members_host_flavor 值
共用運算 multitenant
4 CPU x 16 RAM b3c.4x16.encrypted
8 CPU x 32 RAM b3c.8x32.encrypted
8 CPU x 64 RAM m3c.8x64.encrypted
16 CPU x 64 RAM b3c.16x64.encrypted
32 CPU x 128 RAM b3c.32x128.encrypted
30 CPU x 240 RAM m3c.30x240.encrypted

Cloud Databases Isolated Compute 不支援 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 佈建

請遵循以下步驟,使用 Resource Controller 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": ""
          }
        ]
      }
    }
    

    如圖所示,us-south 區域中的Databases for PostgreSQL實例可用的獨立計算主機類型有:

    • b3c.4x16.encrypted
    • b3c.8x32.encrypted
    • m3c.8x64.encrypted
    • b3c.16x64.encrypted
    • b3c.32x128.encrypted
    • m3c.30x240.encrypted

    若要將執行個體配置或擴展到 4 個 CPU 和 16384 兆位元組或 RAM,請提交以下命令:

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

    若要將實體擴充到 8 個 CPU 和 32768 MB RAM,請提交一個新的 scale 指令 members_host_flavor

    {
      "parameters": {
        "members_host_flavor": "b3c.8x32.encrypted"
      }
    }
    
  5. Once you have all the information, 提供新的資源實例 with the IBM Cloud Resource Controller.

    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>"
        }
      }'
    

    例如,若要建立共享運算實例,請遵循此指令:

    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": {
          "members_host_flavor": "multitenant",
          "service_endpoints":"private",
          "members_memory_allocation_mb": 16384,
          "members_cpu_allocation_count": 4
        }
      }'
    

    使用相同的 "members_host_flavor" 參數配置一個Databases for PostgreSQL隔離實例,並將其設定為所需的隔離大小。 表 2 列出了可用的託管大小及其 members_host_flavor value 參數。 例如,{"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_idservice_endpoints 都是必需的。

    下表說明指令中的欄位。

    基本命令格式字段
    欄位 說明 旗標
    name 必須 實例名稱可以是任何字串,而且是在 Web 及 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>"} 等參數。 對於共享計算,指定 multitenant。 對於隔離運算,選擇所需的 CPU 和 RAM 配置。 有關更多信息,請參閱下表或 託管模型
    service_endpoints 必須 配置部署的 服務端點publicprivatepublic-and-private
    version 要配置的資料庫版本。 如果省略,則會以最新的主要及次要版本來建立資料庫。

host flavor 參數

members_host_flavor 參數定義計算大小。 若要佈建「共用運算」實例,請指定 multitenant。 若要設定隔離計算實例,請輸入所需 CPU 和 RAM 配置的適當值。

主機風味尺寸參數
會員主機風味 members_host_flavor 值
共用運算 multitenant
4 CPU x 16 RAM b3c.4x16.encrypted
8 CPU x 32 RAM b3c.8x32.encrypted
8 CPU x 64 RAM m3c.8x64.encrypted
16 CPU x 64 RAM b3c.16x64.encrypted
32 CPU x 128 RAM b3c.32x128.encrypted
30 CPU x 240 RAM m3c.30x240.encrypted

Cloud Databases Isolated Compute 不支援 CPU 和 RAM 自動調整。 磁碟自動調整可用。 如果您已佈建隔離式實體,或從具有自動擴充功能的部署轉換過來,請使用 IBM Cloud® Monitoring 整合 來監控您的資源,它提供記憶體、磁碟空間和磁碟 I/O 使用率的指標。 若要將資源新增至實例,請手動調整部署。

其他參數清單

  • backup_id- 要從中還原的備份資源的 CRN。 備份必須由具有相同服務 ID 的資料庫部署建立。 在佈建之後會載入備份,且會啟動使用該資料的新部署。 備份 CRN 的格式為 crn:v1:<...>:backup:<uuid>- 如果省略,則資料庫將配置為空。

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

  • backup_encryption_key_crn- KMS 金鑰的 CRN ([Key Protect ) 的 CRN,然後用於備份加密。 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 佈建

使用 Terraform 管理基礎架構,透過 ibm_database 資源,Terraform 支援佈建 Cloud Databases 部署。 另外,您也可以使用 Terraform IBM Modules,透過 Terraform IBM Modules for Databases for PostgreSQL 管理基礎架構。

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

使用 Terraform 配置共享計算

配置一個Databases for PostgreSQL共享託管模型實例,並將 "host_flavor" 參數設為 multitenant。 請參閱下列範例:

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 = "multitenant"
    },
    cpu {
      allocation_count = 6
    }
    memory {
      allocation_mb = 24576
    }
    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}"
}

使用 Terraform 配置隔離計算

使用相同的 "host_flavor" 參數配置一個Databases for PostgreSQL隔離實例,並將其設定為所需的隔離大小。 表 1 列出了可用的託管大小及其 host_flavor value 參數。 例如,{"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 參數定義計算大小。

  • 共享計算- 若要配置共享計算實例,請指定 multitenant
  • 隔離計算- 若要設定隔離計算實例,請輸入所需 CPU 和 RAM 配置的適當值。 數值如下表所示。
主機風味尺寸參數
主機特性 host_flavor 值
共用運算 multitenant
4 CPU x 16 RAM b3c.4x16.encrypted
8 CPU x 32 RAM b3c.8x32.encrypted
8 CPU x 64 RAM m3c.8x64.encrypted
16 CPU x 64 RAM b3c.16x64.encrypted
32 CPU x 128 RAM b3c.32x128.encrypted
30 CPU x 240 RAM m3c.30x240.encrypted

Cloud Databases Isolated Compute 不支援 CPU 和 RAM 自動調整。 磁碟自動調整可用。 如果您已佈建隔離式實體,或從具有自動擴充功能的部署轉換過來,請使用 IBM Cloud® Monitoring 整合 來監控您的資源,它提供記憶體、磁碟空間和磁碟 I/O 使用率的指標。 若要將資源新增至實例,請手動調整部署。