Terraform環境構築(Windows編)
Terraformとは
HashiCorp社が提供するIaC(インフラをコード化して管理する)を実現してくれるツールです。
クラウド上のサーバーやネットワークなどのインフラ構築を自動化してくれます。
HCL記法でコードを記述し、インフラ管理していく。
AWSや、Azure、Google Cloudなどの複数のプロバイダーに対応しているので、HCLの記述さえ慣れれば、神ツールです。
今回はAWS環境にTerraformを使ってVPCを作成してみることについて解説します。
※AWS Cliの設定済みの前提で話を進めます。
Terraformのバージョン管理ツール(tfenv)のインストール
Terraformの公式ページから、直接ダウンロードしてきてもいいですが、
TerraformのHCLの記法がv0.13以降、大幅に変わったこともあり、今からはじめるなら
バージョン管理できた方がいいねということで、tfenvをインストールしていきます。
今回はWSL2+Ubuntuの環境にインストールしていきます。
Ubuntuのターミナル上で以下を実行していきます。
# tfenvのツールが置いているリモートリポジトリから、クローンしてきます
$ git clone https://github.com/tfutils/tfenv.git ~/.tfenv
# コマンドが実行できる/usr/local/bin にシンボリックリンクを設定
$ sudo ln -s ~/.tfenv/bin/* /usr/local/bin
# tfenvコマンドが使えるかテスト
$ tfenv --version
# Terraform使えるバージョンを確認
$ tfenv list-remote
# 使いたいバージョンのTerraformをインストール
$ tfenv install <使いたいバージョン>
# 指定したバージョンがインストールされているか確認
$ tfenv list
# インストールしてきたバージョンを設定する
$ tfenv use <使いたいバージョン>
# 指定したバージョンが設定されているか確認
$ terraform --version
以上で環境構築は完了!お疲れさまでした。
では、早速でAWS上にVPCをサクッと作成してみます。
プロジェクトフォルダを作成し、その中に以下のVPCをつくるファイルを配置します。
※Terraform v0.13.0以降のバージョンが対象
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.0"
}
}
}
# AWSプロバイダーの設定
provider "aws" {
region = "ap-northeast-1"
}
# CIDRが10.0.0.0/16のVPCを作成
resource "aws_vpc" "example" {
cidr_block = "10.0.0.0/16"
}
※Terraform v0.12.0以前のバージョンを使っている方はこちらを使ってください
# プロバイダー(AWS)の設定
provider "aws" {
version = "~> 3.0"
region = "us-east-1"
}
# CIDRが10.0.0.0/16のVPCを作成
resource "aws_vpc" "example" {
cidr_block = "10.0.0.0/16"
}
プロジェクトフォルダを作成したら、その中に、main.tfを配置。
再びUbuntuターミナルに戻り、以下を実行
# Terraform の初期化
$ terraform init
# コードを反映してリソースを作成する前に、あらかじめ変化を確認
$ terraform plan
Plan: 1 to add, 0 to change, 0 to destroy.
# 設定を反映
$ terraform apply
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value:yes
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
AWSのマネジメントコンソールに入ってリソースが反映されているか確認
しっかり、反映されていますねー
最後はお片付け。作ったリソースを削除していきます。
# リソース削除
$ terraform destroy
再度マネジメントコンソールから確認してみると消えてます
まとめ
今回は、IaC化に向けた第一歩として、Terraformの実行環境構築からTerraformのコードからAWS上にVPCを作成してみました
細かい記述の仕方などはまた今度!それでは、皆様の快適なIaCライフを~☆