DynamoDB with non-recommended table billing mode This product is not supported for your selected
Datadog site . (
).
Id: cloudformation-aws-dynamodb-with-table-billing-mode-not-recommended
Provider: AWS
Platform: CloudFormation
Severity: Low
Category: Build Process
Learn More Description DynamoDB tables must explicitly specify a valid billing mode to ensure predictable capacity behavior and to avoid deploying tables with undefined or unexpected throughput that can impact availability. In CloudFormation, the BillingMode property on AWS::DynamoDB::Table must be set to either PROVISIONED or PAY_PER_REQUEST. Resources missing the BillingMode property or using any other value will be flagged. If you choose PROVISIONED, also configure appropriate provisioned throughput or auto-scaling. If you choose PAY_PER_REQUEST, do not define ProvisionedThroughput.
Secure example using on-demand (PAY_PER_REQUEST):
MyDynamoTable :
Type : AWS::DynamoDB::Table
Properties :
TableName : my-table
BillingMode : PAY_PER_REQUEST
Secure example using provisioned capacity:
MyDynamoTable :
Type : AWS::DynamoDB::Table
Properties :
TableName : my-table
BillingMode : PROVISIONED
ProvisionedThroughput :
ReadCapacityUnits : 5
WriteCapacityUnits : 5
Compliant Code Examples AWSTemplateFormatVersion : "2010-09-09"
Resources :
myDynamoDBTable :
Type : AWS::DynamoDB::Table
Properties :
AttributeDefinitions :
-
AttributeName : "Album"
AttributeType : "S"
-
AttributeName : "Artist"
AttributeType : "S"
KeySchema :
-
AttributeName : "Album"
KeyType : "HASH"
-
AttributeName : "Artist"
KeyType : "RANGE"
ProvisionedThroughput :
ReadCapacityUnits : "5"
WriteCapacityUnits : "5"
TableName : "myTableName"
myDynamoDBTable2 :
Type : AWS::DynamoDB::Table
Properties :
AttributeDefinitions :
-
AttributeName : "Album"
AttributeType : "S"
-
AttributeName : "Artist"
AttributeType : "S"
BillingMode : "PAY_PER_REQUEST"
KeySchema :
-
AttributeName : "Album"
KeyType : "HASH"
-
AttributeName : "Artist"
KeyType : "RANGE"
TableName : "myTableName"
myDynamoDBTable3 :
Type : AWS::DynamoDB::Table
Properties :
AttributeDefinitions :
-
AttributeName : "Album"
AttributeType : "S"
-
AttributeName : "Artist"
AttributeType : "S"
BillingMode : "PROVISIONED"
KeySchema :
-
AttributeName : "Album"
KeyType : "HASH"
-
AttributeName : "Artist"
KeyType : "RANGE"
ProvisionedThroughput :
ReadCapacityUnits : "5"
WriteCapacityUnits : "5"
TableName : "myTableName"
Non-Compliant Code Examples AWSTemplateFormatVersion : "2010-09-09"
Resources :
myDynamoDBTable :
Type : AWS::DynamoDB::Table
Properties :
AttributeDefinitions :
-
AttributeName : "Album"
AttributeType : "S"
-
AttributeName : "Artist"
AttributeType : "S"
BillingMode : "PayPal"
KeySchema :
-
AttributeName : "Album"
KeyType : "HASH"
-
AttributeName : "Artist"
KeyType : "RANGE"
TableName : "myTableName"