如何有计划地扩展dynamodb写容量?



我计划了一些任务,这些任务将向特定的dynamodb表写入大量有效负载

我的dynamodb是通过terraform创建的,我的问题是当我尝试自动扩展它时,它需要一些时间来配置。

我试着添加一个AWS APP自动扩展,让它在午夜运行,就在我繁重的写请求进来的时候,但它仍然限制了大多数请求,正如我在管理控制台的图表中看到的那样

我如何在一个时间表上适当地扩展我的写请求?

resource "aws_dynamodb_table" "test-dynamodb-table" {
name           = "test-dynamodb-table"
billing_mode   = "PROVISIONED
read_capacity  = "1"
write_capacity = "1"
hash_key       = "name"
range_key      = "address"
attribute {
name = "name"
type = "S"
}
attribute {
name = "address"
type = "S"
}
}
resource "aws_appautoscaling_target" "dynamodb" {
max_capacity       = 200
min_capacity       = 1
resource_id        = "table/test-dynamodb-table"
scalable_dimension = "dynamodb:table:WriteCapacityUnits"
service_namespace  = "dynamodb"
}
resource "aws_appautoscaling_scheduled_action" "dynamodb" {
name               = "dynamodb"
service_namespace  = aws_appautoscaling_target.dynamodb.service_namespace
resource_id        = aws_appautoscaling_target.dynamodb.resource_id
scalable_dimension = aws_appautoscaling_target.dynamodb.scalable_dimension
schedule           = "cron(0 12 * * ? *)"
scalable_target_action {
min_capacity = 100
max_capacity = 200
}
}

您可以更改自动缩放策略,将新的期望值作为最小值。这是推荐的方法。这意味着当峰值过去时,你需要将其设置得更低。

也可以直接在自动伸缩系统之外设置容量,例如使用CLI更新表。这可能会导致自动缩放系统有点混乱,因为你绕过它的背面,所以它会在某个时候覆盖你的更改(这可以被视为好或坏,取决于)。

最新更新