はじめのTerraform入門講座①Terraformの概要と基本手順について説明します!

Terraform入門講座 その壱 インフラ

今回は、クラウド等のインフラを自動で構築できるTerraformについて説明します。

私が現在参画しているプロジェクトでは、Terraformを使用し、GoogleCloudサービスを構築することが要件になっています。

その中で学習した内容について説明します。

今後、私と同じようにTerraformを使用する方向けに、Terraform学習の手助けになれば幸いです!

Terraformの概要

自動化

Terraformとは、HashiCorp社が開発したクラウドやネットワーク等のインフラストラクチャを自動で構築することができるサービスです。

なぜ、このようなサービスがあるかというと、例えば、クラウドでインフラを構築する場合、毎回管理コンソールやコマンドを使用して環境を構築するのは手間です。そのような場合に、Terraformを使用し、インフラ環境の設定を記述することで、すばやくインフラを構築することができます。

また、基本となるインフラのテンプレートを作成することで、異なるインフラを構築する場合も、設定の値を変えることで、簡単に構築することができます。

Terraformのインストール方法

インストール

macOSにTerraformをインストールする方法について説明します。

インストールは、5ステップ

  1. Homebrewのインストール
  2. バージョンマネージャーのインストール
  3. Terraformのインストール
  4. バージョン指定
  5. PATH設定

Windowsをご使用の方は、HashiCorp社のホームページからインストーラーをダウンロードしてインストールを行ってください。インストラーは、32bit版と64bit版の2種類があります。

1.Homebrewのインストール

まずは、macOSにHomebrewのインストールを行います。

Homebrewとは、一般的にパッケージマネージャーとよばれ、ソフトウェアをインストールするにあたり、依存関係を確認し、必要なソフトウェアをインストールしてくれるものです。依存関係とは、例えば、Adobe Illustratorをインストールするのに、Adobe Creative Cloudデスクトップをインストールしないといけない等の関係です。

Homebrewのインストールは、Terminalから下記コマンドを実行することでインストールすることができます。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

上記のコマンドでインストールできない場合は、Homebrewのホームページを御覧ください。インストーラーが保存されているURLが変更されている可能性があります。

2.バージョンマネージャーのインストール

Terraformの複数バージョンを使用するために、バージョンマネージャーであるtfenvをインストールします。

Terraformは、HashiCorp社によって、逐次アップデートされています。バージョンによって、使用できる設定等が変わる可能性もあるので、複数のバージョンを使用することができるようにしておくと便利です。

tfenvをインストールするコマンドは下記になります。

brew install tfenv

3.Terraformのインストール

Terraformのインストールを行います。

まずは、現在インストールできるバージョンを確認します。インストール可能なバージョンを確認するコマンドは、下記になります。

tfenv list-remote

2022年12月時点、インストールできるバージョンは、「0.1.0」〜「1.4.0-alpha20221207」になります。alphaやbetaとバージョンについているものは、開発バージョンになりますので、基本は使わないでください。下記が「tfenv list-remote」を実行した場合の画面になります。

バージョン一覧

最新バージョンをインストールする場合は、下記コマンドになります。基本は、こちらを使用してください。

このコマンドは、現在リリースされている安定バージョン(v1.3.6)がインストールされます。(※2022年12月16日時点)

tfenv install latest

インストールが正常に完了した場合、下記画面赤枠部分のように「Installation of terraform v1.3.6 successful」という文字が表示されます。失敗した場合は、エラーになった部分をコピーしてGoogle検索を行って調べてください。

インストール成功
terraform version

バージョンを指定してインストールする場合は、下記コマンドになります。数字の部分が、バージョンになります。

tfenv install 1.3.5

4.バージョン指定

tfenvをインストールしてTerraformをインストールした場合、必ずどのバージョンを使用するか指定する必要があります。

バージョンを指定するコマンドは、下記になります。

tfenv use 1.3.6

正常にバージョンが指定されると、下記画面が表示されます。

バージョン指定

インストールされているTerraformのバージョンを確認する方法は、下記になります。

terraform version

Terraformが使用できる状態の場合、下記画面のようにバージョンが出力されます。

バージョン表示

5.PATH設定

ターミナルで「terraform」コマンドを使用するためには、PATH設定を行うと便利です。

PATH設定を行うと、Terminalで「terraform」コマンドを使用する際、terraformが保存されているPATH(ディレクトリ)を指定しなくてもコマンドを使用できます。これは、Terminalが該当のコマンドをmacOS内のフォルダの中から探してくれるからです。

下記コマンドを設定することで、terraformコマンドとそのコマンドが保存されているPATHを紐付けてくれます。要は、自分の家と住所を紐付けてくれる設定です。

export PATH=$PATH:/usr/local/bin/terraform

Terraformのインストール方法は、以上5ステップになります。

Terraformの基本手順

基本手順

Terraformを実行する基本手順は以下になります。

  1. フォルダ作成
  2. 構成ファイルを作成
  3. Terraformの初期化
  4. 実行計画の確認
  5. Terrafomの実行

1.フォルダ作成

まずは、Terraformの構成ファイルを保存するためのフォルダ(ディレクトリ)を任意の場所に作成します。GUI上で作成してもCUIで作成してもよいです。今回は、「terraform」フォルダを作成します。

今回ホームフォルダ直下にフォルダを作成します。CUIでフォルダを作成する場合は、下記コマンドになります。

mkdir ~/terraform

※~(チルダ)はホームフォルダを表す記号になります。

2.構成ファイルを作成

Terraformに関連する構成ファイルを作成します。

今回は、Google Cloudサービスを使用して仮想マシンを作成する構成ファイルを作成します。作成については、Google CloudサービスのTerraformに関するこちらのドキュメントを参考しております。

Terraform構成ファイルの拡張子は、「.tf」です。今回作成するファイルは、「main.tf」になります。基本となる設定は、「main.tf」に記述します。

構成ファイルを作成する場合、「Visual Code Studio」や「Atom」等、テキストエディタを使用して作成してください。ちなみに、macOSのテキストエディットだと、Terraformのファイル「.tf」ファイルを作成しても、「.txt」ファイルで作成されるので、他のテキストエディタを使用する必要があります。私は、「Visual Code Studio」を使用しています。

下記が「main.tf」の内容になります。詳細は次回のブログで説明しますので、今回は、このような記述方法になるということだけ覚えておいてください。実際、下記記述には、GoogleCloudに関する認証情報は含んでおりませんので、その情報等が必要になります。

provider "google" {
  project     = "my-project-id"
  region      = "asia-northeast1"
}
resource "google_compute_network" "vpc_network" {
  name                    = "my-custom-mode-network"
  auto_create_subnetworks = false
  mtu                     = 1460
}

resource "google_compute_subnetwork" "default" {
  name          = "my-custom-subnet"
  ip_cidr_range = "10.0.1.0/24"
  region        = "asia-northeast1"
  network       = google_compute_network.vpc_network.id
}

# Create a single Compute Engine instance
resource "google_compute_instance" "default" {
  name         = "test-vm"
  machine_type = "f1-micro"
  zone         = "asia-northeast1-a"
  tags         = ["ssh"]

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
network_interface {
    subnetwork = google_compute_subnetwork.default.id

    access_config {
      # Include this section to give the VM an external IP address
    }
  }

3.Terraformの初期化

Terraformの初期化を行います。

こちらは、最初の1回のみ実行します。初期化を行うことで、Terraformを実行する上で必要なプラグイン等がインストールされます。

Terminalで該当のフォルダに移動した後、初期化コマンドを実行します。

terraform init

Terraformが正常に実行されると、下記画面赤枠部分のように「Terraform has been successfully initialized!」の文字が表示されます。

Terraform初期化

4.実行計画の確認

次に作成したTerraformの構成ファイルに記述されている内容が正しいか確認します。

その際に使用するコマンドが、下記になります。記述したTerraformの構成ファイルが間違っている場合、エラーが表示されます。

terraform plan

5.Terrafomの実行

実行計画が正常な場合、最後にTerraformを実行します。

実行するコマンドは、下記になります。

terraform plan

Terraformを使用してインフラを構築する手順は、以上5ステップになります。

備考:環境の削除

作成したクラウド環境を削除する場合は、下記コマンドを使用します。

このコマンドを使用することで、Terraformで作成した環境を削除することができます。

terraform destroy

まとめ

今回は、下記3点について説明を行いました。

  1. Terraformの概要
  2. Terraformのインストール方法
  3. Terraformの基本手順

Terraformを使用することで、クラウドの検証環境等を素早く作成することができます。また、クラウドエンジニアになるなら習得してほしい技術の一つです。是非、覚えておいてください!

これからも、Macのシステムエンジニアとして、日々、習得した知識や経験を発信していきますので、是非、ブックマーク登録してくれると嬉しいです!

それでは、次回のブログで!

タイトルとURLをコピーしました