Terraform - AWS RDSのengine_versionが見つからない
- Terraformで何も考えずにAWS RDSを作ろうと思ったら以下のエラーで暫くハマってた。
Error: error creating RDS DB Instance: InvalidParameterCombination: Cannot find version 5.7.mysql_aurora.2.07.2 for aurora
状況
- 以下の構成でAurora for MySQLを作ろうとしてた
resource "aws_rds_cluster" "this" { cluster_identifier = "***" engine = "aurora-mysql" engine_version = var.rds_aurora_version db_subnet_group_name = aws_db_subnet_group.this.name vpc_security_group_ids = [aws_security_group.aurora.id] master_username = var.rds_master_username master_password = var.rds_master_password enabled_cloudwatch_logs_exports = ["error", "slowquery"] backup_retention_period = 5 preferred_backup_window = "18:00-19:00" preferred_maintenance_window = "sun:20:00-sun:21:00" } resource "aws_rds_cluster_instance" "this" { count = 1 identifier = "***-instance-${count.index}" cluster_identifier = aws_rds_cluster.this.id instance_class = var.rds_instance }
これに環境変数var.rds_aurora_version = "5.7.mysql_aurora.2.07.2"
を渡して、そのままterraform apply
すると何故か最初にも書いたようなエラーで落ちる
Error: error creating RDS DB Instance: InvalidParameterCombination: Cannot find version 5.7.mysql_aurora.2.07.2 for aurora
いや、普通にAWSコンソールでもバージョンあるやん!とか思いつつ調べてたら
engine
のデフォルト値はaurora
らしい
なのでengine="aurora"
のバージョンを見に行って落ちていた
対応策
ここにもあるようにaws_rds_cluster_instance
にもengine
, engine_version
を指定することで解決
RDSのTerraformは地味に時間かかるのではまると辛い
resource "aws_rds_cluster_instance" "this" { count = 1 identifier = "***-instance-${count.index}" cluster_identifier = aws_rds_cluster.this.id engine = "aurora-mysql" engine_version = var.rds_aurora_version instance_class = var.rds_instance }