【TECH BLOG】GitHub Actionsとtfupdateを使ってTerraformおよびTerraform Providerのバージョンアップを自動化する
こんにちは。SRE部MLOpsチームの築山(@2kyym)です。
Infrastructure as Code(IaC)が一般的になり、またパブリッククラウドをフル活用したインフラ構築が当たり前となりつつあります。そんな中で、インフラの構成管理にTerraformを用いているチームも多いのではないでしょうか。本記事ではTerraformを用いたインフラ構成管理において避けては通れないTerraformやProviderのバージョンアップを自動化し、IaCの運用負荷を削減する方法をご紹介します。MLOpsチームでの運用を参考に、具体的な設定やハマりどころを交えつつ解説できればと思います。
Terraformとは
TerraformとはHashiCorp Inc.が開発しているIaCを実現するためのオープンソースツールです。GCPやAWSなどパブリッククラウドのインフラ構成を始め、各種SaaS上の設定も含めてリソースという単位でコードとして定義できます。例えば以下はGoogle Cloud Storageバケットのリソースを定義する例です。
resource "google_storage_bucket" "sample-bucket" {
name = "sample-bucket"
location = "asia"
}
このような定義を記述したファイル(以下tfファイル)を用意し、インフラ構成を適用するコマンドである
terraform apply
を実行することで、リソースの作成・変更・削除が行われます。
MLOpsチームにおけるTerraform運用の背景
まずTerraformのバージョンアップの自動化について述べる前に、MLOpsチームにおけるTerraform運用の背景をご紹介します。チームの状況を踏まえ、運用にどういった課題が生じていたのか説明します。
続きはこちら