Magicode logo
Magicode
0
2 min read

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

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

コード

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
})

主なドキュメント

追伸

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

https://jp.magicode.io/Sumiren/articles/4d533e5ee06e45949f953721cf53d51d

Discussion

コメントにはログインが必要です。