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/

Amazon DynamoDB Global Tables

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

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

Uploaded Source

Built Distribution

aws_cdk.aws_dynamodb-0.30.0-py3-none-any.whl (86.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aws-cdk.aws-dynamodb-0.30.0.tar.gz
  • Upload date:
  • Size: 89.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.30.0.tar.gz
Algorithm Hash digest
SHA256 011cc76a35932693cb13779e426e13a574aef5deaa4b0b6a7cc1526fb8ecd859
MD5 3f0001e5ce7181729adee9cd5165473c
BLAKE2b-256 7a9498c3009cbd8e9841e7d21307ecc72ffe9abd0ec72fc78ab7bd83a2ca0b80

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: aws_cdk.aws_dynamodb-0.30.0-py3-none-any.whl
  • Upload date:
  • Size: 86.8 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.30.0-py3-none-any.whl
Algorithm Hash digest
SHA256 07c21072fcea8de2f1861bce9d3197558633b42991b694c36a8c7320b297b9e7
MD5 766a39c00f309e35e9892e59310b0531
BLAKE2b-256 a803cbb4c9eca79124026e5927407d032fabf62431238da999d307452360980b

See more details on using hashes here.

Provenance

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