使用 CLI 管理 Amazon Keyspaces 擴展政策 - Amazon Keyspaces (適用於 Apache Cassandra)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 CLI 管理 Amazon Keyspaces 擴展政策

若要以程式設計方式更新和管理 Amazon Keyspaces auto 擴展設定,您可以使用 AWS Command Line Interface (AWS CLI) 或 AWS API。若要使用卡桑德拉查詢語言 (CQL) 管理 Amazon Keyspaces auto 擴展政策,請參閱。使用卡桑德拉查詢語言(CQL)管理 Amazon Keyspaces auto 擴展本主題提供您可以使用程式設計方式管理的 auto 調整比例工作的概觀 AWS CLI。

如需本主題所述之 Amazon Keyspaces 命 AWS CLI 令的詳細資訊,請參閱命AWS CLI 令參考

開始之前

您必須先完成下列工作,才能開始。

設定許可

如果您尚未這麼做,則必須為使用者設定適當的權限,才能建立和管理自動資源調整設定。在 AWS Identity and Access Management (IAM) 中,管理 Amazon Keyspaces 擴展政策AmazonKeyspacesFullAccess需要 AWS 受管政策。如需詳細步驟,請參閱開始之前:為 Amazon Keyspaces 授予使用者許可自動擴展

安裝 AWS CLI

若您尚未執行此作業,您必須安裝及設定 AWS CLI。若要這麼做,請前往 AWS Command Line Interface 使用者指南,並依照下列指示進行:

使用建立具有自動縮放比例的新資料表 AWS CLI

當您建立新的 Amazon Keyspaces 資料表時,您可以在CreateTable作業中自動為資料表的寫入或讀取容量啟用自動擴展。這可讓 Amazon Keyspaces 代表您聯絡 Application Auto Scaling,將您指定的表格註冊為可擴展目標,並調整佈建的寫入或讀取容量。

如需如何使用 auto 調整規模組態建立多區域表格的詳細資訊,請參閱使用 auto 擴展 (CLI) 在佈建模式中建立新的多區域表格

注意

Amazon Keyspaces auto 動擴展需要存在服務連結角色 (AWSServiceRoleForApplicationAutoScaling_CassandraTable),才能代表您執行自動擴展動作。系統會自動建立此角色。如需詳細資訊,請參閱 針對 Amazon Keyspaces 使用服務連結角色

若要以程式設計方式設定表格的 auto autoScalingSpecification 動擴展設定,您可以使用定義 Amazon Keyspaces auto 動擴展參數的動作。這些參數定義了指示 Amazon Keyspaces 調整表格佈建輸送量的條件,以及要採取的其他選用動作。在此範例中,您會定義 mytable 的 auto 縮放設定。

該政策包含下列元素:

  • autoScalingSpecification— 指定是否允許 Amazon Keyspaces 代表您調整容量輸送量。您可以分別為讀取和寫入容量啟用 auto 調整功能。然後,您必須為以下參數指定autoScalingSpecification

    • writeCapacityAutoScaling— 最大和最小寫入容量單位。

    • readCapacityAutoScaling— 最大和最小讀取容量單位。

    • scalingPolicy— Amazon Keyspaces 支持目標跟踪政策。若要定義目標追蹤原則,請設定下列參數。

      • targetValue— Amazon Keyspaces auto 擴展可確保消耗容量與佈建容量的比例保持在或接近此值。您能以百分比的形式定義 targetValue

      • disableScaleIn: (選擇性) Aboolean,指定表格scale-in是否已停用或啟用。依預設,會停用此參數。若要開啟scale-in,請將boolean值設定為FALSE。這表示會代表您自動縮減資料表的容量。

      • scaleOutCooldown— 向外延展活動會增加表格的佈建輸送量。若要增加向外延展活動的冷卻時間,請指定一個值 (以秒為單位)。ScaleOutCooldown預設值為 0。如需目標追蹤和冷卻時間的詳細資訊,請參閱《應用程式自動調整規模使用者指南》中的目標追蹤擴展政策

      • scaleInCooldown— 縮放活動會降低表格的佈建輸送量。若要增加縮放活動的冷卻時間,請指定一個值 (以秒為單位)。ScaleInCooldown預設值為 0。如需目標追蹤和冷卻時間的詳細資訊,請參閱《應用程式自動調整規模使用者指南》中的目標追蹤擴展政策

注意

為了進一步了解 TargetValue 如何運作,請假設您資料表的佈建輸送量設定為 200 個寫入容量單位。您決定為此資料表建立擴展政策,並將 TargetValue 設為70 %。

現在,假設您開始將寫入流量導向該資料表,那實際的寫入輸送量就會是 150 個容量單位。現在的 consumed-to-provisioned 比率是 (一百五十/二百),或百分之七十五。此比率超過您的目標,因此 auto 擴展會將佈建的寫入容量增加到 215,以便比例為 (150/ 215) 或 69.77 百分比 — TargetValue 盡可能接近,但不超過它。

對於 mytable,您可以將讀TargetValue取和寫入容量設定為 50%。Amazon Keyspaces auto 擴展可在 5 到 10 個容量單位範圍內調整表格的佈建輸送量,使 consumed-to-provisioned 比率維持在 50% 或接近 50%。對於讀取容量,您可ScaleInCooldown以將值設定為 ScaleOutCooldown 60 秒。

使用複雜的 auto 縮放設定建立資料表時,從 JSON 檔案載入 auto 縮放設定會很有幫助。在下列範例中,您可以從 auto-scaling.zip 下載範例 JSON 檔案並擷取auto-scaling.json,並記下檔案的路徑。在此範例中,JSON 檔案位於目前的目錄中。如需不同的檔案路徑選項,請參閱如何從檔案載入參數

aws keyspaces create-table --keyspace-name mykeyspace --table-name mytable \ --schema-definition 'allColumns=[{name=pk,type=int},{name=ck,type=int}],partitionKeys=[{name=pk},{name=ck}]' \ --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 \ --auto-scaling-specification file://auto-scaling.json

在現有資料表上啟用自動調整比例 AWS CLI

對於現有的 Amazon Keyspaces 表格,您可以使用UpdateTable操作為表格的寫入或讀取容量開啟 auto 擴展。如需如何更新多區域表格之 auto 調整比例設定的詳細資訊,請參閱更新多區域表格 (CLI) 的佈建容量和 auto 調整規模設定

注意

Amazon Keyspaces 自動擴展需要存在代表您執行自動擴展動作的服務連結角色 (AWSServiceRoleForApplicationAutoScaling_CassandraTable)。系統會自動建立此角色。如需詳細資訊,請參閱 針對 Amazon Keyspaces 使用服務連結角色

您可以使用下列命令為現有資料表開啟 Amazon Keyspaces auto 擴展。資料表的 auto 縮放設定是從 JSON 檔案載入。在下列範例中,您可以從 auto-scaling.zip 下載範例 JSON 檔案並擷取auto-scaling.json,並記下檔案的路徑。在此範例中,JSON 檔案位於目前的目錄中。如需不同的檔案路徑選項,請參閱如何從檔案載入參數

如需下列範例中使用之 auto 縮放比例設定的詳細資訊,請參閱使用建立具有自動縮放比例的新資料表 AWS CLI

aws keyspaces update-table --keyspace-name mykeyspace --table-name mytable \ --capacity-specification throughputMode=PROVISIONED,readCapacityUnits=1,writeCapacityUnits=1 \ --auto-scaling-specification file://auto-scaling.json

檢視表格的 Amazon Keyspaces auto 擴展組態,請使用 AWS CLI

要查看表的 auto 縮放配置,可以使用get-table-auto-scaling-settings操作。下面的 CLI 命令就是這樣的一個例子。

aws keyspaces get-table-auto-scaling-settings --keyspace-name mykeyspace --table-name mytable

此命令的輸出如下所示。

{ "keyspaceName": "mykeyspace", "tableName": "mytable", "resourceArn": "arn:aws:cassandra:us-east-1:5555-5555-5555:/keyspace/mykeyspace/table/mytable", "autoScalingSpecification": { "writeCapacityAutoScaling": { "autoScalingDisabled": false, "minimumUnits": 5, "maximumUnits": 10, "scalingPolicy": { "targetTrackingScalingPolicyConfiguration": { "disableScaleIn": false, "scaleInCooldown": 0, "scaleOutCooldown": 0, "targetValue": 50.0 } } }, "readCapacityAutoScaling": { "autoScalingDisabled": false, "minimumUnits": 5, "maximumUnits": 10, "scalingPolicy": { "targetTrackingScalingPolicyConfiguration": { "disableScaleIn": false, "scaleInCooldown": 60, "scaleOutCooldown": 60, "targetValue": 50.0 } } } } }

關閉使用表的 Amazon Keyspaces auto 擴展 AWS CLI

您可以隨時關閉表格的 Amazon Keyspaces 間 auto 擴展。如果您不再需要擴展表格的讀取或寫入容量,則應考慮關閉 auto 擴展,這樣 Amazon Keyspaces space 就不會繼續修改表格的讀取或寫入容量設定。您可以使用UpdateTable操作更新表格。

下列指令會關閉表格讀取容量的 auto 調整比例。它也會刪除代表您建立的 CloudWatch 警報。

aws keyspaces update-table --keyspace-name mykeyspace --table-name mytable \ --auto-scaling-specification readCapacityAutoScaling={autoScalingDisabled=true}
注意

若要刪除 Application Auto Scaling 使用的服務連結角色,您必須停用帳戶中所有資料表的自動調度資源。 AWS 區域