📦

【AWS CDK v1/v2】DynamoDB(GSI含む)のキャパシティ戦略をProvisioned Auto Scalingにする

2022/11/11に公開

CDKのインターフェースが分かりづらく、ググってもなかなか見つからなかったためシェアします。
CDK v1/v2の両方で動きます。

コード

const bookTable = new dynamodb.Table(this, 'BookTable', {
  partitionKey: {
    name: 'PK',
    type: dynamodb.AttributeType.STRING
  },
  sortKey: {
    name: 'SK',
    type: dynamodb.AttributeType.STRING
  },
  stream: dynamodb.StreamViewType.NEW_IMAGE
})
const bookTableReadCapacity = bookTable.autoScaleReadCapacity({
  minCapacity: 1,
  maxCapacity: 3
})
bookTableReadCapacity.scaleOnUtilization({
  targetUtilizationPercent: 80
})
const bookTableWriteCapacity = bookTable.autoScaleWriteCapacity({
  minCapacity: 1,
  maxCapacity: 3
})
bookTableWriteCapacity.scaleOnUtilization({
  targetUtilizationPercent: 80
})

bookTable.addGlobalSecondaryIndex({
  indexName: 'bookId_index',
  partitionKey: {
    name: 'BookId',
    type: dynamodb.AttributeType.STRING
  },
  sortKey: {
    name: 'SK',
    type: dynamodb.AttributeType.STRING
  }
})
bookTable.autoScaleGlobalSecondaryIndexReadCapacity('bookId_index', {
  minCapacity: 1,
  maxCapacity: 3
}).scaleOnUtilization({
  targetUtilizationPercent: 80
})
bookTable.autoScaleGlobalSecondaryIndexWriteCapacity('bookId_index', {
  minCapacity: 1,
  maxCapacity: 3
}).scaleOnUtilization({
  targetUtilizationPercent: 80
})

主なドキュメント

追伸1

こちらの記事の流れで実施したのですが、DynamoDBの詳細は本旨でなかったため、別記事にしました。

https://zenn.dev/sumiren/articles/2f826c92560820

追伸2

この記事はMagicodeから移転しました。
2022年9月あたりの記事となります。

よければTwitterもフォローお願いします!
@sumiren_t

Discussion