翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Cassandra クエリ言語 (CQL) による Amazon Keyspaces Auto Scaling の管理
Cassandra クエリ言語 (CQL) を使用して Amazon Keyspaces テーブルの自動スケーリング設定を作成および管理するには、 を使用できますcqlsh
。このトピックでは、CQL を使用してプログラムで管理できる Auto Scaling タスクの概要を説明します。
このトピックで説明する CQL ステートメントの詳細については、「」を参照してくださいAmazon Keyspaces の DDL ステートメント (データ定義言語)。
トピック
開始する前に
開始する前に、次のタスクを完了する必要があります。
のアクセス許可を設定します。
まだアクセス許可を設定していない場合は、ユーザーがオートスケーリング設定の作成と管理を行えるように、適切なアクセス許可を設定する必要があります。 AWS Identity and Access Management (IAM) では、Amazon Keyspaces スケーリングポリシーを管理するために AWS マネージドポリシーAmazonKeyspacesFullAccess
が必要です。詳細なステップについては、「開始する前に: Amazon Keyspaces オートスケーリングのアクセス許可をユーザーに付与する」を参照してください。
cqlsh
を設定する
まだインストールして設定していない場合は、 をインストールして設定する必要がありますcqlsh
。これを行うには、「」の手順に従いますcqlsh-expansion による Amazon Keyspaces までの接続。その後、 を使用して、以下のセクションのコマンド AWS CloudShell を実行できます。
CQL を使用して自動スケーリングで新しいテーブルを作成する
新しい Amazon Keyspaces テーブルを作成すると、 CREATE TABLE
ステートメントでテーブルの書き込みキャパシティまたは読み取りキャパシティの自動スケーリングを自動的に有効にできます。これにより、Amazon Keyspaces はユーザーに代わって Application Auto Scaling に連絡し、テーブルをスケーラブルターゲットとして登録し、プロビジョニングされた書き込みまたは読み取り容量を調整できます。
マルチリージョンテーブルを作成し、テーブルレプリカのさまざまな Auto Scaling 設定を構成する方法の詳細については、「」を参照してくださいデフォルト設定でマルチリージョンテーブルを作成する (CQL)。
注記
Amazon Keyspaces Auto Scaling では、ユーザーに代わって自動スケーリングアクションを実行するために、サービスにリンクされたロール (AWSServiceRoleForApplicationAutoScaling_CassandraTable
) が必要です。このロールは自動的に作成されます。詳細については、「Amazon Keyspaces のサービスリンクロールの使用」を参照してください。
テーブルの Auto Scaling 設定をプログラムで設定するには、Amazon Keyspaces Auto Scaling のパラメータを含む AUTOSCALING_SETTINGS
ステートメントを使用します。パラメータは、テーブルのプロビジョニングされたスループットを調整するように Amazon Keyspaces に指示する条件と、実行する追加のオプションアクションを定義します。この例では、mytable の Auto Scaling 設定を定義します。
ポリシーには、次の要素が含まれます。
-
AUTOSCALING_SETTINGS
– Amazon Keyspaces がユーザーに代わってスループットキャパシティを調整できるかどうかを指定します。以下の値が必要です。-
provisioned_write_capacity_autoscaling_update
:-
minimum_units
-
maximum_units
-
-
provisioned_read_capacity_autoscaling_update
:-
minimum_units
-
maximum_units
-
-
scaling_policy
— Amazon Keyspaces はターゲット追跡ポリシーをサポートしています。ターゲット追跡ポリシーを定義するには、次のパラメータを設定します。-
target_value
– Amazon Keyspaces Auto Scaling により、プロビジョンドキャパシティに対する消費キャパシティの比率がこの値またはその近くに留まります。target_value
をパーセンテージとして定義します。 -
disableScaleIn
: (オプション) テーブルに対してscale-in
が無効か有効かboolean
を指定する 。このパラメータはデフォルトで無効になっています。をオンにするにはscale-in
、boolean
値を に設定しますFALSE
。つまり、ユーザーに代わってテーブルの容量が自動的にスケールダウンされます。 -
scale_out_cooldown
— スケールアウトアクティビティでテーブルのプロビジョンドスループットを増加させます。スケールアウトアクティビティのクールダウン期間を追加するには、scale_out_cooldown
の値を秒単位で指定します。値を指定しない場合、デフォルト値は 0 です。ターゲット追跡およびクールダウン期間の詳細については、Application Auto Scaling ユーザーガイドの「ターゲット追跡スケーリングポリシー」を参照してください。 Auto Scaling -
scale_in_cooldown
— スケールインアクティビティでテーブルのプロビジョンドスループットを減少させます。スケールインアクティビティのクールダウン期間を追加するには、scale_in_cooldown
の値を秒単位で指定します。値を指定しない場合、デフォルト値は 0 です。ターゲット追跡およびクールダウン期間の詳細については、Application Auto Scaling ユーザーガイドの「ターゲット追跡スケーリングポリシー」を参照してください。 Auto Scaling
-
-
注記
target_value
がどのように機能するかをさらに理解するために、書き込み容量単位が 200 で、プロビジョンされたスループット設定を持つテーブルがあるとします。このテーブルのスケーリングポリシーを作成することにしました。target_value
は 70% です。
ここで、実際の書き込みスループットが 150 容量単位になるように、テーブルへの書き込みトラフィックを駆動し始めたとします。 consumed-to-provisioned 比率は現在 (150/200)、つまり 75% です。この比率はターゲットを超えているため、Auto Scaling はプロビジョニングされた書き込み容量を 215 に増やし、比率が (150/215)、69.77% になるようにします。これは、target_value
可能な限り に近いですが、それを超えないようにします。
mytable の場合、読み込みキャパシティーと書き込みキャパシティーTargetValue
の両方を 50% に設定します。Amazon Keyspaces Auto Scaling は、テーブルのプロビジョニングされたスループットを 5~10 キャパシティーユニットの範囲内で調整し、 consumed-to-provisioned 比率が 50% 前後になるようにします。読み込み容量については、 ScaleOutCooldown
と の値を 60 ScaleInCooldown
秒に設定します。
次のステートメントを使用して、Auto Scaling を有効にした新しい Amazon Keyspaces テーブルを作成できます。
CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };
CQL を使用して既存のテーブルで自動スケーリングを有効にする
既存の Amazon Keyspaces テーブルでは、 ALTER TABLE
ステートメントを使用して、テーブルの書き込みキャパシティまたは読み取りキャパシティのオートスケーリングを有効にできます。現在オンデマンドキャパシティモードになっているテーブルを更新する場合は、 capacity_mode
が必要です。テーブルがすでにプロビジョンドキャパシティモードになっている場合は、このフィールドを省略できます。
注記
Amazon Keyspaces のオートスケーリングでは、ユーザーに代わってオートスケーリングアクションを実行するサービスリンクロール (AWSServiceRoleForApplicationAutoScaling_CassandraTable
) の存在が必要になります。このロールは自動的に作成されます。詳細については、「Amazon Keyspaces のサービスリンクロールの使用」を参照してください。
次の例では、 ステートメントはオンデマンドキャパシティモードのテーブル mytable を更新します。ステートメントは、自動スケーリングを有効にして、テーブルのキャパシティモードをプロビジョニングモードに変更します。
書き込みキャパシティは、5~10 キャパシティーユニットの範囲内で、ターゲット値が 50% に設定されます。読み取りキャパシティーは、5~10 キャパシティーユニットの範囲内で、ターゲット値が 50% に設定されます。読み込み容量については、 scale_out_cooldown
と の値を 60 scale_in_cooldown
秒に設定します。
ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };
CQL を使用してテーブルの Amazon Keyspaces Auto Scaling 設定を表示する
テーブルの Auto Scaling 設定の詳細を表示するには、次のコマンドを使用します。
SELECT * FROM system_schema_mcs.autoscaling WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';
このコマンドの出力は次のようになります。
keyspace_name | table_name | provisioned_read_capacity_autoscaling_update | provisioned_write_capacity_autoscaling_update ---------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mykeyspace | mytable | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}
CQL を使用してテーブルの Amazon Keyspaces Auto Scaling を無効にする
テーブルの Amazon Keyspaces Auto Scaling はいつでもオフにできます。テーブルの読み込みまたは書き込み容量をスケーリングする必要がなくなった場合は、Amazon Keyspaces がテーブルの読み込みまたは書き込み容量設定を変更し続けないように、自動スケーリングをオフにすることを検討してください。ALTER TABLE
ステートメントを使用してテーブルを更新できます。
次のステートメントは、テーブル mytable の書き込みキャパシティーの Auto Scaling をオフにします。また、ユーザーに代わって作成された CloudWatch アラームも削除されます。
ALTER TABLE mykeyspace.mytable WITH AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'autoscaling_disabled': true } };
注記
Application Auto Scaling が使用するサービスにリンクされたロールを削除するには、すべての でアカウント内のすべてのテーブルのオートスケーリングを無効にする必要があります AWS リージョン。