Skip to main content

CDK Constructs for AWS DynamoDB

Project description

AWS DynamoDB Construct Library

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.PayPerRequest
});

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.Cron.dailyUtc(8),
  minCapacity: 20,
});

readScaling.scaleOnSchedule('ScaleDownAtNight', {
  schedule: appscaling.Cron.dailyUtc(20),
  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/

Project details


Release history Release notifications | RSS feed

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-0.28.0.tar.gz (84.9 kB view details)

Uploaded Source

Built Distribution

aws_cdk.aws_dynamodb-0.28.0-py3-none-any.whl (83.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aws-cdk.aws-dynamodb-0.28.0.tar.gz
Algorithm Hash digest
SHA256 b042005558245ddf63d36389361dcd0e8c95a7e886f4f2c1ff05f036542ea905
MD5 aad050b561c9b66c59bde0fa095aa37c
BLAKE2b-256 dc7a7fe9e75e497062a1367cb823c16fc47f6226c6175cc1c19b78d6ec3723da

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for aws_cdk.aws_dynamodb-0.28.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6ca2dac98d7a41f2c402a1c067b026563b8292be49fc0e1926c720f499d5bec4
MD5 635e935ae403bb36258ce853bd865aab
BLAKE2b-256 d8f6dd7557bec3f2ff258c73b6e20c2f6bf1b8a14c93d16e693c86d0b3fb9404

See more details on using hashes here.

Supported by

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