Terraformとは?メリットやAWS上での利用手順を解説!

Terraformとは?メリットやAWS上での利用手順を解説!

Terraformは、システム開発に携わる多くのエンジニアから利用されている、人気の高いツールです。この記事ではTerraformの概要や、AWSTerraformを利用する手順について解説します。Terraformのメリットや使い方を知りたい方はぜひ参考にしてください。

Terraformとは

Terraformとは、 HashiCorp社によって開発された オープンソースのサービス で、 開発環境を効率的に構築できるIaC(Infrastructure as Code)ツールの一種です。クラウドサーバーなどシステム開発に必要なインフラを、コードを記述することにより自動で構築できます。また、インフラの構成管理などもTerraformのコードによる宣言が可能な事も特徴です。

※IaCについて詳しくはこちら
https://udemy.benesse.co.jp/development/system/iac.html

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

Terraformを導入するメリット

Terraformを導入する一つ目のメリットは、誰が構築しても同一のインフラ構成となることです。複数の開発者が携わるプロジェクトであっても、開発環境の一貫性を保てます。
二つ目のメリットは、工数削減効果です。Terraformでは、一度構築したインフラをもとに設計ができるため、同様の環境を構築する際の工数を削減できます。三つ目のメリットは、Gitによるバージョン管理に対応していることです。GitOpsやDevOpsなどさまざまな管理システムを用いて、テスト環境や本番環境を管理できます。

AWS上でのTerraformの利用手順

ここでは、AWS Cloud9でTerraformを利用する手順について解説します。

Terraformファイルを作成

まずは、テキストエディタなどを使用して拡張子が「.tf」のTerraformファイルを作成しましょう。Terraformファイルには、リソースの構成を表すコードをHCLという言語で記述します。

例えば、AWSのリソースを作成し、東京リージョンを指定するTerraformファイルのコードは以下の通りです。

同様に、VPCやEC2、ALBといったリソースもTerraformファイル内のコードで作成できます。構築したいリソースの構成に応じて、必要なコードを記述したTerraformファイルを作成してください。

一つのファイル内に全てのコードを記載することもできますが、内容ごとに複数のファイルに分けた方が効率的な管理が可能です。

AWS上の環境にTerraformファイルをアップロード

Terraformファイルが作成できたら、AWS上にアップロードしましょう。AWSの管理画面から、Cloud9のフォルダ内にTerraformファイルをアップロードすることが可能です。

Terraformファイルを複数作成した場合は、全てのファイルを漏れなくアップロードしてください。

初期化を行う

次に、Cloud9でコマンドを実行します。Terraformのコードを利用する環境を整えるため、以下のコマンドを実行してください。

このコマンドにより、Terraformの利用に必要な初期化が自動的に完了します。

検証を行う

Terraformファイルのコードに誤りがないかチェックするため、以下のコマンドを実行しましょう。

エラーが発生した場合は、適宜修正を行う必要があります。コードを修正した上で、再度上記のコマンドを実行してください。

実行する

最後に、以下のコマンドでTerraformファイルの内容を実行しましょう。

「Do you want to perform these actions?」というメッセージが表示されたあと、「Enter a value:」に対して「yes」を入力すると、Terraformファイルで指定したリソースが構築されます。

クラウド

リソースの削除方法

作成したリソースを全て削除したい場合は、以下のコマンドを実行しましょう。

その後、確認メッセージに対して「yes」を入力すると、全てのリソースの削除が可能です。

ただし、リソースの一部だけを削除したい場合は、該当のTerraformファイルを編集する必要があります。Terraformファイル内のコードから不要なリソースに関する記述を削除し、検証と実行のコマンドを使用しましょう。

無償版と有償版の違い

Terraformには、無償版だけでなく、有償版のTerraform Cloud Business / Terraform Enterpriseも用意されています。無償版ではTerraformの基本的な機能を利用できるものの、長期間使用する際の運用コストに注意が必要です。利用を続ける間に構成が複雑化するなど、運用コストが増大するリスクがあります。

一方、有償版では運用効率を高めるための追加機能が利用可能です。外部システムとのネイティブ連携機能を使うと、ファイルの管理や実行を自動化できます。また、チーム内で定めたポリシーに反するコードがないか自動で監視する機能も備わっています。

Terraformの学習法

Terraformを使いこなすためには、コードの記述方法や機能の使い方を学ぶことが大切です。ここでは、Terraformの学習法として、二つの方法を紹介します。

Udemyは動画で学べるオンライン学習プラットフォームです。Terraformの入門講座から上級者向けの講座まで、幅広いレベルに合った内容を学習できます。日本語の教材も複数用意されているため、英語が苦手な人にもおすすめです。Terraformについて学べるUdemyの講座には、次のようなものがあります。

「AWS と Terraformで実現するInfrastructure as Code」

「米シリコンバレーDevOps監修!超Terraform完全入門(0.14) + AWS DevOps IaCをマスター!」

公式ドキュメントで学習

英語ではあるものの、公式ドキュメントでもTerraformについて体系的に学ぶことが可能です。公式ドキュメントには、リソースの種類ごとの設定方法などが詳細に記載されています。Udemyで基本的な使い方を理解した上で、実践しながら公式ドキュメントを参照する学習法がおすすめです。

IaCツールのTerraformを活用すると、AWSなどの開発環境を効率的に構築できます。インフラ構成の一貫性を向上させたり、設計の工数を削減したりできることがTerraformのメリットです。システム開発に携わる方は、ぜひUdemyの動画や公式ドキュメントでTerraformの使い方を学習しましょう。