Terraformにて、AuroraやElastiCacheのスペック変更はデフォルトでメンテナンスウィンドウでの変更になる
こんにちは、ゲームソリューション部のsoraです。
今回は、Terraformを使ってAuroraやElastiCacheのスペックを変更する際の挙動について書いていきます。
はじめに+結論
TerraformにてAuroraやElastiCacheを構築した後、Terraformのコード内のスペックを変更してterraform apply
を実行してもスペックが変更されませんでした。
結論から先に言うと、デフォルトではメンテナンスウィンドウでの変更になっており、即時変更をしたい場合は、apply_immediately = true
を明示的に記載する必要があります。
Aurora(MySQL)での挙動の確認
Aurora(MySQL)にて挙動を確認していきます。
Aurora構築
以下のコードにて作成します。
その後、apply_immediately = true
を指定したパターンとしないパターン(defaultはfalse)でインスタンスクラスを変更して挙動を確認します。
## Auroraクラスター
resource "aws_rds_cluster" "aurora_cluster" {
cluster_identifier = "aurora-immediately-cluster"
engine = "aurora-mysql"
engine_version = "8.0.mysql_aurora.3.08.2"
master_username = "admin"
manage_master_user_password = true
backup_retention_period = 7
preferred_backup_window = "18:30-19:30"
preferred_maintenance_window = "tue:17:00-tue:18:00"
deletion_protection = false
skip_final_snapshot = false
storage_encrypted = true
port = 3306
vpc_security_group_ids = [aws_security_group.aurora_sg.id]
db_subnet_group_name = aws_db_subnet_group.aurora_subnet_group.name
db_cluster_parameter_group_name = aws_rds_cluster_parameter_group.aurora_cluster_pg.name
enabled_cloudwatch_logs_exports = ["error", "slowquery"]
copy_tags_to_snapshot = true
tags = {
Name = "aurora-immediately-test-cluster"
}
}
## Auroraインスタンス(ライターインスタンス)
resource "aws_rds_cluster_instance" "aurora_primary" {
cluster_identifier = aws_rds_cluster.aurora_cluster.id
identifier = "aurora-immediately-cluster-0"
engine = aws_rds_cluster.aurora_cluster.engine
engine_version = aws_rds_cluster.aurora_cluster.engine_version
# インスタンスクラス
instance_class = "db.t4g.medium"
db_parameter_group_name = aws_db_parameter_group.aurora_instance_pg.name
performance_insights_enabled = false
auto_minor_version_upgrade = true
# 変更の即座適用
# apply_immediately = true
tags = {
Name = "aurora-immediately-test-cluster-0"
}
}
インスタンスクラスの変更
インスタンスクラスを変更してterraform apply
してみます。
apply_immediately = true
を指定しないパターンだと、即時でのインスタンスクラスは変更されずに、以下の画面にて変更予定であることが確認できました。
apply_immediately = true
を指定するパターンだと、apply後に以下のように即時で変更されました。
※保留中の変更にも変更内容が入りました。
ちなみに、この後にもう一度apply_immediately = true
をコメントアウトしてインスタンスタイプを変更してみると、即時で変更されてしまいます。
そのため、もう一度即時変更をせずにメンテナンスウィンドウでの変更に戻したい場合は、apply_immediately = false
と明示的に指定してください。
最後に
今回は、Terraformを使ってAuroraやElastiCacheのスペックを変更する際の挙動について記事にしました。
どなたかの参考になると幸いです。