インフラストラクチャ自動化ツール「Terraform」について《導入編》

はじめに

Terraformの導入は比較的簡単で、Windows、Mac、Linuxそれぞれの環境に対応しています。本記事では、各OSでのTerraformのインストール手順と、セットアップの基本である環境の初期化やプロバイダ設定について解説します。

Terraformのインストール方法

Windowsでのインストール

Terraform公式ダウンロードページにアクセスし、Windows向けのバイナリをダウンロードします。

ダウンロードしたZIPファイルを展開します。展開されたファイルには、terraform.exeという実行ファイルが含まれています。terraform.exeを任意のディレクトリ(例:C:\Terraform)に移動し、そのディレクトリを環境変数PATHに追加します。

コントロールパネル -> システムとセキュリティ -> システム -> システムの詳細設定 -> 環境変数 -> Path を編集し、C:\Terraformを追加。

コマンドプロンプトまたはPowerShellで次のコマンドを実行し、Terraformが正しくインストールされていることを確認します。

terraform -v

Macでのインストール

Homebrewがインストールされている場合、次のコマンドでTerraformをインストールできます。

brew tap hashicorp/tap
brew install hashicorp/tap/terraform

インストール後、次のコマンドを実行してTerraformのバージョンを確認します。

terraform -v

Linuxでのインストール

Terraform公式ダウンロードページにアクセスし、自身のLinux環境に合ったバイナリをダウンロードします。

ダウンロードしたZIPファイルを解凍し、terraform バイナリを /usr/local/bin などのパスが通ったディレクトリに配置します。

unzip terraform_VERSION_linux_amd64.zip
sudo mv terraform /usr/local/bin/

次のコマンドで、Terraformが正しくインストールされているか確認します。

terraform -v

環境の初期化 (terraform init)

Terraformをインストールした後は、使用するディレクトリを初期化する必要があります。これは、Terraformが必要なプロバイダやモジュールを取得し、設定ファイルを準備するためのコマンドです。

使用したいディレクトリで、terraform initコマンドを実行します。

terraform init

コマンドを実行すると、Terraformは設定ファイル (.tfファイル)内のプロバイダ情報に基づいて、プロバイダプラグインをダウンロードして設定を初期化します。

terraform initに成功すると、ディレクトリ内に.terraformフォルダが作成され、必要なプロバイダ情報や設定が保存されます。

プロバイダ設定の基本

Terraformは、プロバイダを通じてリソースを管理します。以下に、代表的なクラウドプロバイダ(AWS、GCP、Azure)の設定例を示します。

AWSのプロバイダ設定

AWSを使用するには、TerraformにAWSプロバイダを設定し、アクセスキーとシークレットキーで認証を行います。

provider "aws" {
  region     = "us-west-1"
  access_key = "YOUR_ACCESS_KEY"
  secret_key = "YOUR_SECRET_KEY"
}

環境変数を使った認証設定

アクセスキーやシークレットキーを直接コードに書きたくない場合は、環境変数を使うことが推奨されます。

export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY"
export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_KEY"

Terraformの設定ファイルでは、キーを直接書かずに以下のようにプロバイダを設定できます。

provider "aws" {
  region = "us-west-1"
}

GCPのプロバイダ設定

GCPを使用するには、サービスアカウントのキーを用いて認証を行います。

provider "google" {
  credentials = file("path/to/your/service-account-file.json")
  project     = "your-project-id"
  region      = "us-central1"
}

GCPのサービスアカウントファイル(JSON形式)を用いて認証を行います。gcloudコマンドを使ってサービスアカウントを作成し、そのキーをファイルとしてダウンロードする必要があります。

Azureのプロバイダ設定

Azureでは、サービスプリンシパルを使ってTerraformに認証を行います。

provider "azurerm" {
  features {}

  subscription_id = "YOUR_SUBSCRIPTION_ID"
  client_id       = "YOUR_CLIENT_ID"
  client_secret   = "YOUR_CLIENT_SECRET"
  tenant_id       = "YOUR_TENANT_ID"
}

Azure CLIを使ってサービスプリンシパルを作成し、上記の値を取得します。また、Azure CLIにログインしていれば、環境変数を使用することもできます。

az login

この場合、Terraform設定ファイル内でプロバイダのクレデンシャルを省略できます。

まとめ

Terraformのインストールは、OSに応じて異なりますが、基本的には公式バイナリを取得し、環境変数やディレクトリに設定するだけです。インストール後、terraform init コマンドでプロジェクトの初期化を行い、プロバイダ設定を記述することで、クラウド環境にリソースを構築できます。

関連記事

インフラストラクチャ自動化ツール「Terraform」について《ベストプラクティスとトラブルシューティング編》
# はじめに 本記事では、複数環境の管理やターゲット指定によるリソース操作、Lifecycleルールの活用、Sentinelによるポリシー管理などの高度な機能について詳しく解説します。 また、トラブルシューティングとデバッグの観点から、よく [...]
2024年10月10日 15:50
インフラストラクチャ自動化ツール「Terraform」について《応用編》
# はじめに Terraformは、インフラストラクチャをコードとして管理するための強力なツールであり、さまざまなクラウドプロバイダやサービスと連携することで、インフラの構築、管理、変更を自動化することができます。 本記事では、Terraf [...]
2024年10月10日 15:21
インフラストラクチャ自動化ツール「Terraform」について《基本編》
# Terraformの基本構造 Terraformは、HCL(HashiCorp Configuration Language)という宣言型の言語を用いてインフラを定義します。このコードに基づいて、クラウドリソースやインフラを自動的に構築・ [...]
2024年10月10日 15:10
インフラストラクチャ自動化ツール「Terraform」について《概要編》
# はじめに 現代のIT環境では、インフラストラクチャの複雑さが増す中、手動での管理は非効率でエラーが発生しやすいものとなっています。そこで、インフラストラクチャの自動化が注目されており、その中でもTerraformは非常に強力なツールとして知ら [...]
2024年10月10日 13:02