DynamoDBテーブルの 低頻度アクセス (Standard-Infrequent Access) を試してみた (CloudFormation & マネジメントコンソール) #reinvent
DynamoDBテーブルに「低頻度アクセス時のコスト改善」を目的としたテーブルクラスが追加されました。
本記事では、実際に試してみました。
おすすめの方
- DynamoDBテーブルの Standard-Infrequent Access をCloudFormationで作りたい方
マネジメントコンソールでDynamoDBテーブルのテーブルクラスを設定する
DynamoDBテーブル作成時に、「テーブルクラス」の設定ができるようになっていました。
- DynamoDB 標準
- DynamoDB 標準 - 低頻度アクセス
なお、キャパシティー設定もオンデマンド・プロビジョニングがそれぞれ選べます。
CloudFormationでDynamoDBテーブルのテーブルクラスを設定する
CloudFormationテンプレート
TableClass
で指定します。
- STANDARD
- STANDARD_INFREQUENT_ACCESS
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テーブルのデータ量が少ない場合は、メリットが少なそうですね。