我正在使用 terraform 将 AWS rds aurora postgress 集群从无服务器 v1 升级到无服务器 v2。
我遵循的步骤:
下面是我的无服务器 v2 的 terraform 配置:
resource "aws_rds_cluster" "aurora_rds_serverless_v2" {
cluster_identifier = "aurora-v2-serverless-cluster-new-197789"
engine = local.env_config.rds_engine
engine_version = local.env_config.rds_engine_version
backup_retention_period = 14
engine_mode = "serverless"
snapshot_identifier= aws_db_cluster_snapshot.aurora_rds_provisioned_db_snapshot.id
apply_immediately = true
skip_final_snapshot = true
enable_http_endpoint = true
timeouts {
create = "120m"
}
scaling_configuration {
auto_pause = true
min_capacity = 2
max_capacity = 4
}
}
我的问题是我是否需要创建单独的 terraform 资源来定义无服务器 v2 的实例还是自动缩放?
类似这样的:
resource "aws_rds_cluster_instance" "aurora_serverless_instance" {
count = 2 # Example: Two instances (one writer, one reader)
cluster_identifier = aws_rds_cluster.aurora_rds_provisioned_db_v2.id
instance_class = "db.r5.large"
apply_immediately = true
}
Aurora Serverless v2 不会自动缩放实例数量。无服务器实例本身的容量是自动缩放的。 Serverless v2 使用“预配置”集群模式而不是“无服务器”模式,然后您可以通过
instance_class
属性将集群中的各个实例配置为预配置实例或无服务器实例。 rds_cluster
资源文档页面上有一个完整的示例,这里。
resource "aws_rds_cluster" "example" {
cluster_identifier = "example"
engine = "aurora-postgresql"
engine_mode = "provisioned"
engine_version = "13.6"
database_name = "test"
master_username = "test"
master_password = "must_be_eight_characters"
storage_encrypted = true
serverlessv2_scaling_configuration {
max_capacity = 1.0
min_capacity = 0.5
}
}
resource "aws_rds_cluster_instance" "example" {
cluster_identifier = aws_rds_cluster.example.id
instance_class = "db.serverless"
engine = aws_rds_cluster.example.engine
engine_version = aws_rds_cluster.example.engine_version
}