Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?
@k-idetsuka

Terraform環境構築(Windows編)

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以降のバージョンが対象

main.tf
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以前のバージョンを使っている方はこちらを使ってください

main.tf
# プロバイダー(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のマネジメントコンソールに入ってリソースが反映されているか確認
VPC.png

しっかり、反映されていますねー

最後はお片付け。作ったリソースを削除していきます。

# リソース削除
$ terraform destroy

再度マネジメントコンソールから確認してみると消えてます

まとめ

今回は、IaC化に向けた第一歩として、Terraformの実行環境構築からTerraformのコードからAWS上にVPCを作成してみました
細かい記述の仕方などはまた今度!それでは、皆様の快適なIaCライフを~☆

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?