Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Terraformテスト入門

msato
July 24, 2024

 Terraformテスト入門

Developers IO 2024 Day9(7/24)

Terraformコードに対して、テストすることで品質を向上させ障害のリスクを低減することができます。
本セッションでは、Terraformコードのテスト手法の概要をそれぞれ紹介します。

msato

July 24, 2024
Tweet

More Decks by msato

Other Decks in Programming

Transcript

  1. ⾃⼰紹介 3 resource “my_profile” “this” { name = “佐藤雅樹” x

    = “@chari7311” company = “クラスメソッド株式会社” department = “ソリューションアーキテクト” }
  2. 25 コントラクトテスト 概要 • モジュール間のインターフェースや依存関係を検証する テスト例 • EC2モジュールのVariable AMI IDが正しい形式になっているか

    • EC2インスタンスのパブリックDNSが想定通りの設定になっているか ツール‧機能 • Input variable validation(terraformネイティブ機能) • Preconditions/postconditions(terraformネイティブ機能)
  3. 34 Check blocksの利点 • Terraformライフサイクルの外側でのチェックが⾏いやすい - 例)AWS Budgetsの予算を超過していないか、ACMでインポートした証明書の有効期限は切れ ていないか •

    実⾏時間が短い(terraform testと違い⼀時的なリソース作成が⾏わない) • HCP TerraformのContinuous validationを利⽤できる - 定期的にCheck blocksを実⾏する機能 https://dev.classmethod.jp/articles/terraform-test-check/
  4. 36 セッションの振り返り • Terraformのテストを導⼊することで、⾃信をもってリソース変更ができるよ うになります • 静的解析‧ポリシーテスト → セキュリティとガバナンス向上 •

    モジュール関連のテスト → 共通モジュールの管理負荷軽減 - ユニットテスト - コンストラクトテスト - インテグレーションテスト • E2Eテスト → インフラの全体的な信頼性向上
  5. 39 Terraformのことなら、ClassMethodへ! • Terraformの豊富な導⼊実績 • HCP Terraform等、各種SaaS製品を販売 • HashiCorp Ambassadors在籍

    • DevelopersIOブログも!!→ - Terraformの使い⽅ - AWSマルチアカウント環境での活⽤ - TerraformのCI/CD