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

Uploaded Source

Built Distribution

aws_cdk.aws_dynamodb-0.27.0-py3-none-any.whl (83.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aws-cdk.aws-dynamodb-0.27.0.tar.gz
  • Upload date:
  • Size: 85.1 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.27.0.tar.gz
Algorithm Hash digest
SHA256 e85467c650673fb64a615caf54719d2936a58928d2fee5a9dffaeee15a0565ea
MD5 b7082826ec3e35ceee7eca6658500dad
BLAKE2b-256 f2d4fc0ef35dd2294704920d62dd7d46e552d371afcc25c25c0d0efd4607d6ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aws_cdk.aws_dynamodb-0.27.0-py3-none-any.whl
  • Upload date:
  • Size: 83.4 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.27.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d4ca22cc13788c8adba4c2428a3238960eb1d4c262f373c18c356ab073d98433
MD5 7bb28b709f9ae501e922437f51e83d6a
BLAKE2b-256 9d6dd2a6b16959ede2c63629ec213d21fb2e5518e01e185696b725865ad6d6e6

See more details on using hashes here.

Supported by

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