この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
DynamoDBテーブルに「低頻度アクセス時のコスト改善」を目的としたテーブルクラスが追加されました。
本記事では、実際に試してみました。
おすすめの方
- DynamoDBテーブルの Standard-Infrequent Access をCloudFormationで作りたい方
マネジメントコンソールでDynamoDBテーブルのテーブルクラスを設定する
DynamoDBテーブル作成時に、「テーブルクラス」の設定ができるようになっていました。
- DynamoDB 標準
- DynamoDB 標準 - 低頻度アクセス
なお、キャパシティー設定もオンデマンド・プロビジョニングがそれぞれ選べます。
CloudFormationでDynamoDBテーブルのテーブルクラスを設定する
CloudFormationテンプレート
TableClass
で指定します。
- STANDARD
- STANDARD_INFREQUENT_ACCESS
dynamodb.yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: DynamoDB Table Class Sample
Resources:
SampleTable:
Type: AWS::DynamoDB::Table
Properties:
BillingMode: PAY_PER_REQUEST
TableClass: STANDARD_INFREQUENT_ACCESS
AttributeDefinitions:
- AttributeName: userId
AttributeType: S
KeySchema:
- AttributeName: userId
KeyType: HASH
デプロイ
aws cloudformation deploy \
--template-file dynamodb.yaml \
--stack-name Dynamodb-Table-Class-Sample-Stack \
--capabilities CAPABILITY_NAMED_IAM
DynamoDBテーブルの様子
できました。
DynamoDBテーブル作成後も、テーブルクラスの変更はできます
マネジメントコンソールでも、CloudFormationでも、テーブルクラスの変更ができます。
料金について
本記事の作成時点では、DynamoDBの料金は、まだ更新されていませんでした。 しかし、AWS公式ブログでは下記の記載があります。
例えば、米国東部 (バージニア北部) の DynamoDB 標準 – IA ストレージの料金は GB あたり 0.10 USD (DynamoDB 標準より 60% 低い) になりましたが、読み取りと書き込みは 25% 高くなっています。
https://aws.amazon.com/jp/blogs/news/new-dynamodb-table-class-save-up-to-60-in-your-dynamodb-costs/
データはたくさんあるけど、普段はアクセスしないDynamoDBテーブルに向いていそうです。 ただし、「ストレージ料金が安くなる&読み書き料金が高くなる」ので、DynamoDBテーブルのデータ量が少ない場合は、メリットが少なそうですね。