Tagbangers Blog

Terraform の RDS のブルー/グリーンデプロイを試してみました

TLDR

Terraform でやるとブルー/グリーンデプロイのためのインスタンスの作成や古いインスタンスの削除までやってくれます!


背景

RDS の更新でダウンタイムを最初限にしたかったので、ブルー/グリーンデプロイを検討しました。

ただし、AWS のコンソールでポチポチする作業は怖いので Terraform でできないのかなって調べたらまさか対応してくれます!

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance#blue_green_update


blue_green_update.enabled = true にするだけでブルー/グリーンデプロイが可能です。

resource "aws_db_instance" "default" {
  db_name              = "mydb"
  ...省略

  blue_green_update {
      enabled = true
    }
}


検証

早速 terrafrom apply して検証してみました。

Apply した後に、ブルー/グリーンデプロイのためのインスタンスが作成されました。

しばらく経ったら Green 環境が更新されました。

Green の更新が完了したらインスタンスの切り替えが行われます。

先ほど Green だった新環境が今度新しい Blue 環境になりました。

Terraform でやるとちゃんと切り替え完了後に古いインスタンスも削除してくれます。


ブルー/グリーンデプロイのインスタンスの作成や古いインスタンスの削除までやってくれているのですごく便利です!