Más contenido relacionado
La actualidad más candente (20)
Similar a 俺とHashiCorp (20)
俺とHashiCorp
- 2. 自己紹介
apiVersion: selfIntroduction/v1
name: “真壁 徹(まかべ とおる)”
company:
name: “日本マイクロソフト株式会社”
role: “クラウド ソリューションアーキテクト”
career:
- name: “大和総研”
- name: ”HP Enterprise”
cert : “CNCF Certified Kubernetes Admin.”
education: “JAIST(社会人コース 在学中)”
- 13. 一般的な判断ポイント
Terraform? Azure Resource Manager(ARM)テンプレート?
<ARMテンプレート>
新リソースへの対応スピード
一般的なJSONを拡張
ワンストップサポート
実行環境の管理は不要 (CLIのみ)
<Terraform>
複数のクラウドに対応
スッキリ書けるHCL
変数や条件の表現の豊富さ
小気味よいフィードバックループ
- 15. 私がTerraformを好んで使う理由
Azure外のリソースもまとめて管理したいから (例: Azure Kubernetes Service環境)
Networking
(VNet, App Gateway, etc)
Database/Datastore
(PostgreSQL, Cosmos DB, etc)
Azure Kubernetes Service
Kubernetes Configuration
(Role, StorageClass, ConfigMap, etc)
Utilities for Kubernetes
(Prometheus, Grafana, etc)
User Application
Azure Resource Manager テンプ
レートでも管理できる
Azure Resource Manager テン
プレートでは管理できない
なのでTerraformを使う
アプリは別のパイプラインで管
理することが多い
ライフサイクル/担当チームの分界点
- 19. 俺のTerraform開発環境
Windows 10 (Insider Slow Ring)
WSL 2
VS Code
Remote
Dev. Ext.
Terraform
Ext. GitHub
Settings Sync
Ext.
macOS
VS Code
Terraform
Ext.
Settings Sync
Ext.
Terraform
Cloud
Git Terraform Git Terraform
State
Infra. Code &
VS Code settings
• VS CodeのRemote Development Extensionがゲームチェンジャー
(Linux向けの開発環境をWSLに閉じられるようになった)
• WSL 1でも可能だが、WSL 2ではFile I/Oなど開発体験が大きく改善
チーム用RepoInfra. Code
- 20. Tips: Terraform Azure関連情報 入手先
ここを抑えておけば だいたいOK
https://registry.terraform.io/providers/hashicorp/azurerm
使い方
GitHub
Repo
• 最近ドキュメントの入り口が
Terraform Registryとしてま
とめられました
• リリースやIssueの確認は
GitHubで
• Azure ADプロバイダーは分離
されていますので、こちらを
- 22. Tips: VS Code Terraform Extension LSP
Language Server Protocol導入後に 読み込まれない/古いプロバイダーがある
• 現在、LSP用のプロバイダーは
$HOME/.vscode/extensions/m
auve.terraform-1.4.0/lspbin の
下に導入されます
• 同ディレクトリのproviders.tf
に必要なプロバイダー/バー
ジョンを書いて、terraform
init すると解決します
Visual Studio Marketplace
HCL2の構文ハイライトや補完をしてくれる拡張
最近のLSPへの移行により不具合あり
- 23. 俺のTerraform コードレビュー
GitHub Actionsを活用
• Terraform向けGitHub Actionsを
使って、レビュー前に もろもろ
整える
• コードの整形、妥当性、出来上
がるリソースのチェック
• applyも可能だが、本番向けでは
あまり使われていない印象(いま
はAzure Pipelinesなどで別パイ
プラインにするケースが多い)
GitHub
Pull Request
Trigger
GitHub
Actions
• terraform fmt
• terraform init
• terraform validate
• terraform plan
- 26. 俺のTerraform コンテナー環境
Kubernetesの場合
Inner loop
Test
Debug
AKS dev
cluster
CI/CD Pipelines
GitHub repos
Azure
Container
Registry
Helm chart
Container
image
AKS
production
cluster
Azure
Monitor
Scale
Terraform
Develop Deliver Operate
Boards
• Terraformはイン
フラの構成に活用
• アプリは別パイプ
ライン
• Helm2->3、
GitOpsの波が来て
おり、継続的見直
し中
- 28. 赤丸急上昇
いま注目している HashiCorp Stack Products
• Istioに代わるService Meshの選
択肢として
• 必要な機能を地に足付けて開発
している印象
• Consul Service on Azure
(Managed)のプライベートプレ
ビューが開始しており、期待
- 30. 参考情報
Azure 上の Terraform のドキュメント
Terraform Bootcamp - Azure Infrastructure as Code隊
(コードはHCL 1なのでご参考まで)
Terraform Azure関連の開発リーダーはTom Harveyさん @HashiCorp