Amazon DynamoDB テーブルのキャパシティモードを変更したいです。
簡単な説明
DynamoDB テーブルを作成する際、プロビジョニング済みキャパシティモードまたはオンデマンドキャパシティモードのいずれかを指定する必要があります。
既存のテーブルのキャパシティモードを変更するには、次のいずれかの方法をとります。
- DynamoDB コンソール
- AWS コマンドラインインターフェイス (AWS CLI)
- Python
キャパシティモードを切り替える前に、キャパシティモードを切り替える際の考慮事項を参照してください。
解決方法
**注:**AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
DynamoDB コンソール
次の手順を実行します。
- DynamoDB コンソールを開きます。
- ナビゲーションペインで、[テーブル] を選択します。
- 変更するテーブルを選択します。
- [更新] を選択します。
- [キャパシティモード] で、使用する新しいキャパシティモードを選択します。
[プロビジョニング済み] の場合、読み取りキャパシティユニットと書き込みキャパシティユニットを入力します。
[オンデマンド] の場合、DynamoDB はお使いのアプリケーションのニーズに基づき、プロビジョニングされた容量を自動的にスケールアップ/スケールダウンします。
- [テーブルを更新] を選択します。
AWS CLI
既存の DynamoDB テーブルのキャパシティモードをプロビジョニング済みに切り替えるには、次のコマンドを実行します。
aws dynamodb update-table --table-name <YOUR_TABLE_NAME> --billing-mode PROVISIONED --provisioned-throughput ReadCapacityUnits=<YOUR_READ_CAPACITY>,WriteCapacityUnits=<YOUR_WRITE_CAPACITY>
既存の DynamoDB テーブルのキャパシティモードをオンデマンドに切り替えるには、次のコマンドを実行します。
aws dynamodb update-table --table-name <YOUR_TABLE_NAME> --billing-mode PAY_PER_REQUEST
Python
Python スクリプトの実行には、Amazon Elastic Compute Cloud (EC2) インスタンスまたは AWS Lambda を使用できます。既存の DynamoDB テーブルのキャパシティモードをプロビジョニング済みに切り替えるには、次のコマンドを実行します。
import boto3
# Create a DynamoDB client
dynamodb = boto3.client('dynamodb', region_name=region_name, aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
# Name of your DynamoDB table
table_name = 'YOUR_TABLE_NAME'
# Change the capacity mode to PROVISIONED
response = dynamodb.update_table(
TableName=table_name,
BillingMode='PROVISIONED',
ProvisionedThroughput={
'ReadCapacityUnits': 5, # Set your desired read capacity units
'WriteCapacityUnits': 5 # Set your desired write capacity units
}
)
print("Capacity mode changed to PROVISIONED")
既存の DynamoDB テーブルのキャパシティモードをオンデマンドに切り替えるには、次のコマンドを実行します。
import boto3
# Create a DynamoDB client
dynamodb = boto3.client('dynamodb', region_name=region_name, aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
# Name of your DynamoDB table
table_name = 'YOUR_TABLE_NAME'
# Change the capacity mode to PAY_PER_REQUEST
response = dynamodb.update_table(
TableName=table_name,
BillingMode='PAY_PER_REQUEST'
)
print("Capacity mode changed to PAY_PER_REQUEST")
関連情報
DynamoDB スループットキャパシティ