Skip to main content

CDK Constructs for AWS DynamoDB

Project description

Amazon DynamoDB Construct Library


Stability: Stable


Here is a minimal deployable DynamoDB table definition:

import dynamodb = require('@aws-cdk/aws-dynamodb');

const table = new dynamodb.Table(this, 'Table', {
  partitionKey: { name: 'id', type: dynamodb.AttributeType.STRING }
});

Keys

When a table is defined, you must define it's schema using the partitionKey (required) and sortKey (optional) properties.

Billing Mode

DynamoDB supports two billing modes:

  • PROVISIONED - the default mode where the table and global secondary indexes have configured read and write capacity.
  • PAY_PER_REQUEST - on-demand pricing and scaling. You only pay for what you use and there is no read and write capacity for the table or its global secondary indexes.
import dynamodb = require('@aws-cdk/aws-dynamodb');

const table = new dynamodb.Table(this, 'Table', {
  partitionKey: { name: 'id', type: dynamodb.AttributeType.STRING },
  billingMode: dynamodb.BillingMode.PAY_PER_REQUEST
});

Further reading: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.

Configure AutoScaling for your table

You can have DynamoDB automatically raise and lower the read and write capacities of your table by setting up autoscaling. You can use this to either keep your tables at a desired utilization level, or by scaling up and down at preconfigured times of the day:

Auto-scaling is only relevant for tables with the billing mode, PROVISIONED.

const readScaling = table.autoScaleReadCapacity({ minCapacity: 1, maxCapacity: 50 });

readScaling.scaleOnUtilization({
  targetUtilizationPercent: 50
});

readScaling.scaleOnSchedule('ScaleUpInTheMorning', {
  schedule: appscaling.Schedule.cron({ hour: '8', minute: '0' }),
  minCapacity: 20,
});

readScaling.scaleOnSchedule('ScaleDownAtNight', {
  schedule: appscaling.Schedule.cron({ hour: '20', minute: '0' }),
  maxCapacity: 20
});

Further reading: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html https://aws.amazon.com/blogs/database/how-to-use-aws-cloudformation-to-configure-auto-scaling-for-amazon-dynamodb-tables-and-indexes/

Amazon DynamoDB Global Tables

Please see the @aws-cdk/aws-dynamodb-global package.

Project details


Release history Release notifications | RSS feed

This version

1.3.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aws-cdk.aws-dynamodb-1.3.0.tar.gz (95.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aws_cdk.aws_dynamodb-1.3.0-py3-none-any.whl (93.2 kB view details)

Uploaded Python 3

File details

Details for the file aws-cdk.aws-dynamodb-1.3.0.tar.gz.

File metadata

  • Download URL: aws-cdk.aws-dynamodb-1.3.0.tar.gz
  • Upload date:
  • Size: 95.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.5

File hashes

Hashes for aws-cdk.aws-dynamodb-1.3.0.tar.gz
Algorithm Hash digest
SHA256 f64c2b58129bc36ad642a09397f7cfbd5b8cf0c673aa8056d8d7e20985411351
MD5 e90406d132b9afec1e35cd20721e82cc
BLAKE2b-256 0cb3871ce36f3c5ceeae6bef473c02c275923bcb70f20e1393380a1f6f9b44dc

See more details on using hashes here.

File details

Details for the file aws_cdk.aws_dynamodb-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: aws_cdk.aws_dynamodb-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 93.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.5

File hashes

Hashes for aws_cdk.aws_dynamodb-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc9d84bbe25984213ef4bf39115f184c93014a52f64e7d491dd212a93d820866
MD5 6739ffafc85c1b1edf21c81d267fb860
BLAKE2b-256 4562e7fa202f4ec51f2c3fe32a4a0c8857ae3b474522a8f5ccb21ba97045a84e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page