

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 自動スケーリングを有効にして新規テーブルを作成する
<a name="autoscaling.createTable"></a>

新しい Amazon Keyspaces テーブルの作成時に、テーブルの書き込みキャパシティまたは読み取りキャパシティの自動スケーリングを自動的に有効にすることができます。その場合は、Amazon Keyspaces が自動的に Application Auto Scaling と通信してテーブルをスケーラブルターゲットとして登録し、プロビジョニング済みの書き込みキャパシティまたは読み取りキャパシティを調整します。

マルチリージョンテーブルを作成し、テーブルのレプリカごとに異なる自動スケーリング設定を行う方法については、「[Amazon Keyspaces で自動スケーリングが有効なプロビジョンドモードのマルチリージョンテーブルを作成する](tables-mrr-create-provisioned.md)」を参照してください。

**注記**  
Amazon Keyspaces の自動スケーリングでは、ユーザーに代わって自動スケーリングアクションを実行するサービスリンクロール (`AWSServiceRoleForApplicationAutoScaling_CassandraTable`) の存在が必要になります。このロールは自動的に作成されます。詳細については、「[Amazon Keyspaces のサービスリンクロールの使用](using-service-linked-roles.md)」を参照してください。

------
#### [ Console ]

**自動スケーリングが有効な新規テーブルをコンソールで作成する**

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) で Amazon Keyspaces コンソールを開きます。

1. ナビゲーションペインで [**Tables]** (テーブル) を選択して、[**Create table (テーブルの作成)**] を選択します。

1. [**Table details (テーブルの詳細)**] セクションの [**Create table (テーブルの作成)**] ページで、キースペースを選択し、新しいテーブルに名前を付けます。

1. **[列]** セクションで、テーブルのスキーマを作成します。

1. **[プライマリキー]** セクションで、テーブルのプライマリキーを定義し、オプションでクラスタリング列を選択します。

1. [**Table settings (テーブルの設定)**] セクションで、[**Customize settings (設定のカスタマイズ)**] を選択します。

1. [**Read/write capacity settings (読み取り/書き込みキャパシティの設定)**] に進みます。

1. [**Capacity mode (キャパシティモード)**] で、[**Provisioned (プロビジョン)**] を選択します。

1. [**Read capacity]** (読み取りキャパシティ) セクションで、[**Scale automatically (自動スケーリング)**] が選択されているか確認します。

   このステップでは、テーブルの読み取りキャパシティユニットの最小値と最大値、およびターゲット使用率を選択します。
   + **最小キャパシティユニット** — テーブルをいつでもすぐにサポートできる状態にするために、最小レベルのスループット値を入力します。この値は、1 から、アカウントの秒単位の最大スループットクォータ (デフォルトは 40,000) までの範囲でなければなりません。
   + **最大キャパシティユニット** — テーブルに対してプロビジョニングするスループットの最大量を入力します。この値は、1 から、アカウントの秒単位の最大スループットクォータ (デフォルトは 40,000) までの範囲でなければなりません。
   + **ターゲット使用率**— ターゲット使用率を 20%～90% の範囲で入力します。定義したターゲット使用率をトラフィックが上回ると、キャパシティが自動的に増加されます。定義したターゲットをトラフィックが下回ると、再び容量が自動的に減少されます。
**注記**  
アカウントのデフォルトクォータの詳細およびクォータを引き上げる方法については、「[Amazon Keyspaces (Apache Cassandra 向け) のクォータ](quotas.md)」を参照してください。

1. **[書き込みキャパシティ]** セクションで、前の手順で定義した読み取りキャパシティと同じ設定を選択するか、またはキャパシティの値を手動で設定します。

1. [**Create table (テーブルの作成)**] を選択します。指定した自動スケーリングパラメータを使用してテーブルが作成されます。

------
#### [ Cassandra Query Language (CQL) ]

**Amazon Keyspaces の自動スケーリングが有効な新規テーブルを CQL を使用して作成する**

テーブルの自動スケーリング設定をプログラムによって行うには、`AUTOSCALING_SETTINGS` ステートメントに Amazon Keyspaces 自動スケーリングのパラメータを指定します。これらのパラメータでは、テーブルのプロビジョニング済みスループットを調整するように Amazon Keyspaces に指示する条件を定義し、追加で実行するアクションがあれば、それらも任意で定義します。この例では、*mytable* の自動スケーリング設定を定義します。

ポリシーには、次の要素が含まれます。
+ `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 の自動スケーリングでは、プロビジョニング済みのキャパシティに占める実際のキャパシティ消費の割合が、この値と同じか近い値で維持されます。`target_value` をパーセンテージとして定義します。
    + `disableScaleIn`: (オプション) テーブルに対して `scale-in` が無効か有効かを指定する `boolean`。このパラメータは、デフォルトでは無効になっています。`scale-in` を有効にするには、`boolean` 値を `FALSE` に設定します。その場合は、テーブルのキャパシティが自動的にスケールダウンされます。
    + `scale_out_cooldown` — スケールアウトアクティビティでテーブルのプロビジョンドスループットを増加させます。スケールアウトアクティビティのクールダウン期間を追加するには、`scale_out_cooldown` の値を秒単位で指定します。値を指定しない場合、デフォルト値は 0 です。ターゲット追跡とクールダウン期間の詳細については、「Application Auto Scaling ユーザーガイド**」の「[ターゲット追跡スケーリングポリシー](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)」を参照してください。
    + `scale_in_cooldown` — スケールインアクティビティでテーブルのプロビジョンドスループットを減少させます。スケールインアクティビティのクールダウン期間を追加するには、`scale_in_cooldown` の値を秒単位で指定します。値を指定しない場合、デフォルト値は 0 です。ターゲット追跡とクールダウン期間の詳細については、「Application Auto Scaling ユーザーガイド**」の「[ターゲット追跡スケーリングポリシー](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)」を参照してください。

**注記**  
`target_value` がどのように機能するかをさらに理解するために、書き込み容量単位が 200 で、プロビジョンされたスループット設定を持つテーブルがあるとします。このテーブルのスケーリングポリシーを作成することにしました。`target_value` は 70% です。  
ここで、実際の書き込みスループットが 150 容量単位になるように、テーブルへの書き込みトラフィックを駆動し始めたとします。消費とプロビジョンの比率は現在 (150/200)、つまり 75% です。この割合は目標値を上回っているため、自動スケーリングはプロビジョニング済みの書き込みキャパシティを 215 に増やします。これで、割合が (150/215)、つまり 69.77% になります。これは、`target_value` に可能な限り近く、なおかつ上回らない値です。

*mytable* では、読み取りキャパシティと書き込みキャパシティの両方の `TargetValue` を 50% に設定します。Amazon Keyspaces の自動スケーリングは、テーブルのプロビジョニング済みスループットを 5～10 キャパシティユニットの範囲内で調整し、プロビジョニング済みキャパシティに占める実際のキャパシティ消費の割合が 50%、または 50% に近くなるようにします。読み取りキャパシティについては、`ScaleOutCooldown` と `ScaleInCooldown` の値を 60 秒に設定します。

次のステートメントを使用して、自動スケーリングを有効にした新しい 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
            }  
        }  
    }
};
```

------
#### [ CLI ]

**を使用して Amazon Keyspaces 自動スケーリングで新しいテーブルを作成する AWS CLI**

テーブルの自動スケーリング設定をプログラムによって行うには、`autoScalingSpecification` アクションに Amazon Keyspaces 自動スケーリングのパラメータを指定します。これらのパラメータでは、テーブルのプロビジョニング済みスループットを調整するように Amazon Keyspaces に指示する条件を定義し、追加で実行するアクションがあれば、それらも任意で定義します。この例では、*mytable* の自動スケーリング設定を定義します。

ポリシーには、次の要素が含まれます。
+ `autoScalingSpecification` – キャパシティスループットの自動調整を Amazon Keyspaces に許可するかどうかを指定します。読み取りキャパシティと書き込みキャパシティに対して別々に自動スケーリングを有効にすることができます。`autoScalingSpecification` の次のパラメータを指定する必要があります。
  + `writeCapacityAutoScaling` – 最大および最小の書き込みキャパシティユニット。
  + `readCapacityAutoScaling` – 最大および最小の読み取りキャパシティユニット。
  + `scalingPolicy` – Amazon Keyspaces はターゲット追跡ポリシーに対応しています。ターゲット追跡ポリシーを定義するには、次のパラメータを設定します。
    + `targetValue` — Amazon Keyspaces の自動スケーリングでは、プロビジョニング済みのキャパシティに占める実際のキャパシティ消費の割合が、この値と同じか近い値で維持されます。`targetValue` をパーセンテージとして定義します。
    + `disableScaleIn`: (オプション) テーブルに対して `scale-in` が無効か有効かを指定する `boolean`。このパラメータは、デフォルトでは無効になっています。`scale-in` を有効にするには、`boolean` 値を `FALSE` に設定します。その場合は、テーブルのキャパシティが自動的にスケールダウンされます。
    + `scaleOutCooldown` — スケールアウトアクティビティでテーブルのプロビジョンドスループットを増加させます。スケールアウトアクティビティのクールダウン期間を追加するには、`ScaleOutCooldown` の値を秒単位で指定します。デフォルト値は 0 です。ターゲット追跡とクールダウン期間の詳細については、「Application Auto Scaling ユーザーガイド**」の「[ターゲット追跡スケーリングポリシー](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)」を参照してください。
    + `scaleInCooldown` — スケールインアクティビティでテーブルのプロビジョンドスループットを減少させます。スケールインアクティビティのクールダウン期間を追加するには、`ScaleInCooldown` の値を秒単位で指定します。デフォルト値は 0 です。ターゲット追跡とクールダウン期間の詳細については、「Application Auto Scaling ユーザーガイド**」の「[ターゲット追跡スケーリングポリシー](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html)」を参照してください。

**注記**  
`TargetValue` がどのように機能するかをさらに理解するために、書き込み容量単位が 200 で、プロビジョンされたスループット設定を持つテーブルがあるとします。このテーブルのスケーリングポリシーを作成することにしました。`TargetValue` は 70% です。  
ここで、実際の書き込みスループットが 150 容量単位になるように、テーブルへの書き込みトラフィックを駆動し始めたとします。消費とプロビジョンの比率は現在 (150/200)、つまり 75% です。この割合は目標値を上回っているため、自動スケーリングはプロビジョニング済みの書き込みキャパシティを 215 に増やします。これで、割合が (150/215)、つまり 69.77% になります。これは、`TargetValue` に可能な限り近く、なおかつ上回らない値です。

*mytable* では、読み取りキャパシティと書き込みキャパシティの両方の `TargetValue` を 50% に設定します。Amazon Keyspaces の自動スケーリングは、テーブルのプロビジョニング済みスループットを 5～10 キャパシティユニットの範囲内で調整し、プロビジョニング済みキャパシティに占める実際のキャパシティ消費の割合が 50%、または 50% に近くなるようにします。読み取りキャパシティについては、`ScaleOutCooldown` と `ScaleInCooldown` の値を 60 秒に設定します。

テーブルの作成時に複雑な自動スケーリング設定を行う場合は、JSON ファイルから自動スケーリング設定を読み込むと便利です。次の例を使用するには、サンプル JSON ファイルを収録した [auto-scaling.zip](samples/auto-scaling.zip) をダウンロードし、`auto-scaling.json` を抽出します。ファイルのパスを書き留めておいてください。この例では、JSON ファイルは現在のディレクトリにあります。さまざまなファイルパスオプションについては、「[ファイルからパラメーターを読み込む方法](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html#cli-usage-parameters-file-how)」を参照してください。

```
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
```

------