Slide 1

Slide 1 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. TerraformをSaaSで使うとAzureの運用が こんなに楽ちん! HCP Terraformって何? 2025/6/18 第54回 Tokyo Jazug Night

Slide 2

Slide 2 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 2 自己紹介 ⚫ 東京エレクトロン デバイス株式会社 CN BU CN技術本部 カスタマーサクセスデザイン部 中林 稔 ⚫ 経歴 ✓ ネットワーキング(L1/L2/L3, エンタープライズやキャリア) ✓ サイバーセキュリティ ✓ プライベート/パブリック クラウド ✓ HashiCorp製品担当

Slide 3

Slide 3 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 3 内容 HCP Terraformとは コミュニティ版と比較してうれしいこと ※本資料に掲載されている会社名・製品・サービス名・ロゴは各社の商標または登録商標です。 また、写真・ロゴマーク・その他の著作物に関する著作権はそれぞれの権利を有する各社に帰属します。

Slide 4

Slide 4 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 4 こんなお悩みはお持ちでないでしょうか?

Slide 5

Slide 5 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 5 Stateやサービスプリンシパル の漏えいが心配 セキュリティリスク 設定変更の確認漏れや 想定外のコスト増加 設定ミス 一貫性のあるインフラ 構成管理が困難 構成のばらつき 社内ルール違反や 異常な構成の見落とし ルールの不徹底 コードを知らないと デプロイができない スキルの差 State管理や作業環境の 準備に手間がかかる 管理の手間 運用が結構 大変 Terrformを使っているものの...

Slide 6

Slide 6 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 6 こんなお悩みを解決 する強い味方

Slide 7

Slide 7 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 7 HCP※ Terraform とは? ※HCPとはHashiCorp Cloud Platformの略で、HashiCorpが管理するSaaSサービス TerraformのSaaS版です

Slide 8

Slide 8 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 8 コミュニティ版 vs HCP Terraform 8つご紹介します

Slide 9

Slide 9 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 9 運用負荷軽減 Stateファイル アクセス制御 • ネットワークルール • RBAC バックアップ ロック(排他制御)を仕込む CMKの管理※TBD Azure コミュニティ版 管理する部品が多い Stateファイル • ネットワーク制御不要 • 冗長ストレージでバージョ ニングも可 • ロックは自動 • 暗号鍵の管理が不要 HCP Terraform 管理不要 Stateファイルの管理が不要 Blob Storage Cosmos DB 1/8

Slide 10

Slide 10 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 10 Stateファイルは機密情報が露出しやすいので注意! "resources": [ { "type": "aws_db_instance", "name": "example", "instances": [ { "attributes": { "username": "db_user", "password": "db_password" } variables.tf terraform.tfvars terraform.tfstate コミュニティ版 外部からアクセスされるリスク Azure 平文で書かれている HCP Terraform 利用者のみ閲覧できる

Slide 11

Slide 11 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 11 設定ミス削減①(planの可視性) Terraform v1.12.1 on linux_amd64 Initializing plugins and modules... Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # aws_instance.ec2[0] will be created + resource "aws_instance" "ec2" { + ami = "ami-02a2700d37baeef8b" + arn = (known after apply) + associate_public_ip_address = true + availability_zone = (known after apply) + cpu_core_count = (known after apply) + cpu_threads_per_core = (known after apply) + disable_api_stop = (known after apply) + disable_api_termination = (known after apply) + ebs_optimized = (known after apply) + get_password_data = false + host_id = (known after apply) + host_resource_group_arn = (known after apply) + iam_instance_profile = (known after apply) + id = (known after apply) + instance_initiated_shutdown_behavior = (known after apply) ~ 途中省略 ~ Plan: 19 to add, 0 to change, 0 to destroy. コミュニティ版 表示が多い ⇒ 確認漏れ起こりやすい HCP Terraform 1つずつ確実にチェック ⇒ 確認漏れを削減 直感的なGUIで、確認しやすい 2/8

Slide 12

Slide 12 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 12 設定ミス削減②(Cost Estimation) コミュニティ版 作ってから気付く HCP Terraform 作る前に見つける デプロイ前のコストチェックで、安心なデプロイ Azure NSG 3/8

Slide 13

Slide 13 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 13 azure ├ envs # Resource definitions per environment │ ├ production │ │ │ ├ main.tf │ │ │ ├ variables.tf │ │ │ ├ local.tf │ │└ ... │ ├ development │└ ... └ modules # Make a module a resource definition… ├ base # A group of resources commonly… │ ├ outputs.tf │ ├ variables.tf │ ├ .tf │└ ... └ services # resource definition per service ├ service-A │ ├ outputs.tf │ ├ variables.tf │ ├ .tf │└ ... 一貫性のある構成①(Gitブランチとワークスペースを1対1で対応) 顧客A用 Project 共通モジュール 共通変数 コミュニティ版 複雑な構成を個人管理 HCP Terraform 複数の環境で同じ設定をプルリクで使う 環境間の不整合がなく、後戻りを防ぐ Dev-Workspace 検証用 Stage-Workspace Prod-Workspace variable state variable state variable state 本番用 開発用 GitHub Devブランチ GitHub Stageブランチ GitHub Prodブランチ デプロイ デプロイ デプロイ マージ マージ コピーミス 4/8

Slide 14

Slide 14 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 14 一貫性のある構成②(Private Module) Repository #1 (Module code) Repository #2 (WS#1 code) Repository #3 (WS#2 code) 開発者 Service A Environment Service B Environment Organization push push push deploy Workspace#1 Workspace#2 Private Module use use 標準化したモジュールを使って、いつでも必要な環境が手に入る GitHub AWS Cloud Azure AWS Cloud Azure 5/8

Slide 15

Slide 15 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 15 社内ルールのコード化(Policy as Code) 社内ポリシーの設定例 ⚫ Terrafromの実行時間の制御 ⚫ リージョン/アベイラビリティゾーンの制約 ⚫ タグ付けを強制 ⚫ CIDRおよびネットワーク設定の確認 ⚫ リソース使用制限 ⚫ クラウド利用料金の上限設定 など 社内ルール確認を自動化して、目視に頼らない統制 6/8

Slide 16

Slide 16 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 16 スキルギャップの解消(No-code Provisioning) インフラのセルフサービス化 コードを知らなくても、GUIで簡単にデプロイ Azure GitHub K8s 7/8

Slide 17

Slide 17 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 17 じみにうれしい(Drift Detection) コミュニティ版 変更が分からず調査に時間を要す HCP Terraform 変更がすぐ分かり早期に対策 承認のない変更にすぐに気付けて即修正 Webサーバー APサーバー DBサーバー Webサーバー APサーバー DBサーバー 8/8

Slide 18

Slide 18 text

Copyright © Tokyo Electron Device LTD. All Rights Reserved. 18