Terraform
Page content
Terraform
クラウドプロバイダ上のリソースを管理する Infrastructure as Code なツールとして有名な Terraform (by HashiCorp 社) について試した。
特徴
- 管理できるリソース
- AWS で言えば EC2 はもちろん、 VPC のネットワーク設定 (SDN 的な要素と言っている)
インストール (2022/12/09)
https://github.com/hashicorp/terraform/releases を見ればわかるけど、結構頻繁にバージョンが上がる。
そこで https://dev.classmethod.jp/articles/beginner-terraform-install-mac/ にあるようにまず tfenv
をインストールして、 Terraform 自体のバージョン管理をするのが良さそう。
その手順でやってみる
$ brew install tfenv
$ tfenv --version
tfenv 3.0.0
$ tfenv list-remote
1.4.0-alpha20221207
1.4.0-alpha20221109
1.3.6
1.3.5
1.3.4
...
$ tfenv install 1.3.6
Installing Terraform v1.3.6
Downloading release tarball from https://releases.hashicorp.com/terraform/1.3.6/terraform_1.3.6_darwin_arm64.zip
...
Installation of terraform v1.3.6 successful. To make this your default version, run 'tfenv use 1.3.6'
$ tfenv list
1.3.6
No default set. Set with 'tfenv use <version>'
$ tfenv use 1.3.6
Switching default version to v1.3.6
Default version (when not overridden by .terraform-version or TFENV_TERRAFORM_VERSION) is now: 1.3.6
$ tfenv list
* 1.3.6 (set by /opt/homebrew/Cellar/tfenv/3.0.0/version)
$ terraform version
Terraform v1.3.6
on darwin_arm64
- Main commands:
init Prepare your working directory for other commands validate Check whether the configuration is valid plan Show changes required by the current configuration apply Create or update infrastructure destroy Destroy previously-created infrastructure
tutorial というかお試しと言うか
参考にやってみる: 10分で理解するTerraform
- サイクル
- 新規
.tf
ファイルを作って,terraform init
.tf
ファイルをちゃんと定義しきったらterraform plan
で適用したら何が起きるかの確認- 実際の適用は
terraform apply
- 最新の状態の出力は
terraform show
で見る
- 更新・運用
- 定義を変更してみる
terraform plan
で適用予定の内容と現状との差分を確認terraform apply
で変更を適用terraform show
で確認
- 廃止
terraform destroy
で実際に削除terraform show
で管理しているリソースがなにもないことを確認
- 新規
Serverless Framework をカバーできるか?
否。
- Lambda を管理するのが辛いらしい。 LambdaをTerraformで管理してた辛みをApexに乗り換えて解決した〜Datadog Logsの例を添えて〜
- ローカルでのテストもなさそう