2021/06/16

Terraformとは?AWSで利用するメリットやインストール方法をご紹介

 
  

Terraformとは


HashiCorpが提供する「Terraform」は、インフラ構築や設定作業などを自動化したり、効率化したりできるツールです。

このTerraformは、HCL(HashiCorp構成言語)を用いて、人間が簡単に読める形で構築作業の構成や展開を管理します。

Terraformを使うことで、ユーザーがその環境特有の構築方法を意識しなくても、パラメータなどを指定するだけで、予め用意されているテンプレートを用いた構築を実行できます。

Terraformは、AWSをはじめとするクラウドサービスやツールで利用することができます。

Terraformに対応しているプロバイダーはAWS・Azureなど


Terraformは多くのプロバイダーに対応しています。なおTerraformでは、アップストリームAPIを提供しているクラウドサービスやツールのことを総称してプロバイダーと呼んでいます。

Terraformに公式に対応しているプロバイダーは以下の通りです。

まず、代表的なプロバイダーとして、AWS、Azure、Google Cloud Platform、KubernetesOracle Cloud Infrastructureが挙げられます。

上記以外のサービスやツールでは、ActiveDirectory、Archive、Azure Active Directory、Azure Stack、Boundary、Cisco ASA、Cloudinit、Consul、DNS、External、GitHub、Google Beta、Helm、HTTP、Kubernetes(Alpha)、Local、Nomad、Null、Oracle Public Cloud、Olacle Cloud Platform、Random、Template、Terraform、Terraform Cloud、Time、TLS、Vault、VMware vSphereが挙げられます。

また、公式にはサポートされていませんが、動作確認済で良く利用されるものとしてAlibaba Cloud、aciなどがあります。

Terraform モジュールとは


Terraformでは、「モジュール」と呼ばれる自己完結型パッケージを提供しています。

例えば、AWSでVPCリソースを作成したい場合、そのために必要なTerraformにおけるテンプレートやコードなどがセットになったものを「モジュール」として提供しています。

2020年12月現在では、4,571ものモジュールが公開されており、多いものでは630万回もダウンロードされ、多くの人に利用されています。

Terraformを使ってAWSにインフラストラクチャを構築するには


Terraformには様々なプロバイダーに合わせたスタートガイドが用意されています。

AWSの場合は、HashiCorp LeanのサイトでAWS Get Startedのページを参考にしましょう。

AWSのスタートガイドでは、Terraformのインストール方法、AWS EC2でのインスタンス構築、Terraformの設定、AWS EC2インスタンスの変更や終了方法などを動画やテキストで学ぶことができます。

学習の目安も表示されており、AWS Get Startedを全て学習するに必要な時間は全部で40分間となっています。

AWSでTerraformを利用するメリットは?


Terraformは、あまりスクリプトが得意ではない人や、またそのプラットフォームに精通していない人でも、やりたいことに合わせて分かりやすく構成を行うことができます。

ここでは、AWSでTerraformを利用するメリットを見て行きましょう。メリットとして挙げられる点は大きく3つありますので、Terraformのメリットを把握しておきましょう。

メリットその1 スクリプト初心者でもインフラ構築の自動化ができる

メリットその1は、スクリプト初心者でもインフラ構築の自動化ができる点です。

Terraformでは、「モジュール」と呼ばれる各プロバイダー向けのテンプレートやコードをパッケージ化したものが提供されています。

プログラミングが苦手な人でも、やりたいことが明確であれば、それに合わせたモジュールを利用することで、はじめからコードを書くことなく簡単に構築を行えます。

メリットその2 プラットフォームにとらわれずに設定を行うことができる

メリットその2は、Terraformレジストリによって、プラットフォームにとらわれずに様々な設定を手軽に行うことができる点です。

Terraformでは、加えたい設定があれば「terraform init」を実行することで、構成に必要なプロバイダープラグインなどをすべて自動でダウンロードしてくれます。

これにより、自分でどのモジュールが必要かを事前に悩むことがなくなり、大幅な時間削減に繋がります。

また、複数のプラットフォームを利用している場合でも一元管理できるため、プラットフォーム間での移行にも役立ちます。

メリットその3 チュートリアルが充実している

メリットその3は、先も触れたとおり、Terraformを利用するためのスタートガイドやチュートリアルが充実している点です。

簡単なシナリオに沿ったチュートリアルが動画付きで解説され、それにかかる学習時間の目安も表記されているため、ユーザーはTerraformを利用する計画を立てやすくなります。

構築するチーム内のメンバーも、Terraformを習得するのが容易になるでしょう。

Terraformをインストールするには


まずはTerraformをインストールしてみましょう。以下の公式サイトからコンパイルされたバイナリをダウンロードすることができます。

Terraformをダウンロードする

macOS、FreeBSD、Linux、OPENBSD、Solaris、Windowsとお使いの環境に合わせてダウンロードします。ダウンロードできたら解凍してそれぞれでインストールします。

また、インストール不要でWeb上で使うことができるTerraform Cloudというサービスもあります。
Linuxの場合はLinuxのダウンロードURLをコピーして以下のコマンドでダウンロードします。

(例)

wget https://releases.hashicorp.com/terraform/0.14.0/terraform_0.14.0_linux_amd64.zip

次に解凍を行います。

(例)

unzip terraform_0.14.0_linux_amd64.zip

解凍したら任意のフォルダを作成して移動することもできます。移動した場合は出力パスの変更も行いましょう。出力パスの変更を行うには.profileファイルを編集します。

編集モードにして以下の行を最後に追加します。(downloadsフォルダに移動した場合)

export PATH="$PATH:~/downloads

Windowsの場合はダウンロードをしたあと任意のフォルダで解凍します。今回はC:\Terraformフォルダを作ってそこに解凍したとします。

解凍したらそのフォルダへパスを通します。

パスを通すにはまずシステムのプロパティを開き、詳細設定タブの[環境変数]ボタンを選択します。

システム環境変数内にある”Path”を選択して、[編集]ボタンを選択します。

[新規]ボタンを押してC:\Terraformを追加します。

コマンドプロンプトを開き、terraform --versionと打ってみましょう。バージョンが正常に表示されればインストールは完了です。
Terraformのインストールはこれで完了です。AWS EC2のインスタンスを作成するにはさらに準備が必要です。

TerraformでEC2のインスタンスを作成するにはAWS CLIを使用します。事前にAWS CLIのインストールとAWSアクセスキーID、シークレットアクセスキーなどの設定を行います。

AWS CLIのインストール、設定方法などは別の記事にて紹介していますので割愛します。

AWS CLIのインストールと設定が完了したら、あとは公式のチュートリアルに従ってEC2インスタンスを構築してみましょう。

Terraformを使ってAWS EC2インスタンスを作成する

まとめ


今回はTerraformの概要やメリット、インストール方法について簡単にご紹介しました。

Terraformを使うことでAWSの膨大なリソースの管理や、構築の自動化をより簡単に自由に行うことができます。

また、構成ファイルと一元管理できるため、プロジェクトチーム内での共有やAWS以外のサービスへの移行も比較的簡単にできます。

Terraformを上手に活用して、AWSの利用の幅を広げて行きましょう。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】