使用terraform的RDS存储自动扩展支持实时数据库

时间:2019-07-11 15:17:14

标签: amazon-web-services terraform amazon-rds autoscaling terraform-provider-aws

AWS已recently启动了对RDS实例的存储自动扩展的支持。我们的生产环境中有多个RDS实例,它们具有超额配置的存储。我们希望利用这一新功能来降低一些成本。由于我们无法减少实时RDS实例的存储量,因此我们必须首先创建具有较少存储空间且具有自动缩放支持的RDS实例,然后将现有数据迁移到新实例,然后删除旧实例。

我们将terraform与terraform-aws-provider一起使用来创建我们的基础结构。问题是我无法使用Terraform实现上述策略。 这是我尝试过的:

  1. 修改现有的RDS创建脚本以再创建两个 资源。
  2. 一个是aws_db_snapshot类型,另一个是 aws_db_instance(使用快照)。
  3. 但是我得到以下信息 错误修改数据库实例(test-rds-snapshot)时出错: InvalidParameterCombination:引擎名称的无效存储大小 postgres和存储类型gp2:20。
# Existing RDS instance with over provisioned storage
resource "aws_db_instance" "test_rds"{
.
.
.
}

# My changes below
# The snapshot
resource "aws_db_snapshot" "test_snapshot" {
  db_instance_identifier = "${aws_db_instance.test_rds.id}"
  db_snapshot_identifier = "poc-snapshot"
}

# New instance with autoscale support and reduced storage
resource "aws_db_instance" "test_rds_snapshot" {
  identifier            = "test-rds-snapshot"
  allocated_storage     = 20
  max_allocated_storage = 50
  snapshot_identifier   = "${aws_db_snapshot.test_snapshot.id}"
.
.
.
}

我想知道我是否处在正确的轨道上,并且能够使用此策略迁移生产数据库。如果您需要更多信息,请与我们联系。

0 个答案:

没有答案