Terraformは、システム開発に携わる多くのエンジニアから利用されている、人気の高いツールです。この記事ではTerraformの概要や、AWSでTerraformを利用する手順について解説します。Terraformのメリットや使い方を知りたい方はぜひ参考にしてください。
公開日:2022年10月28日
専門領域:Node.js, MongoDB, AWS, Docker, Kubernetes
津郷 晶也
メーカー研究開発時代、当時では珍しいSPAの開発や特許開発を行う。その後、SIer時代には億を超える規模のWebサービスのアプリ開発、現在もIT会社で引き続き大規模なWebサービス開発を実践。また、IPA資格(高度)ではPM、セキュリティ、DBの3つを取得。個人が展開する技術ブログは2012年から始めて記事300本以上執筆、多い時には10万PV/月を超えるほどのブログに成長。
…続きを読む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ファイルのコードは以下の通りです。
1 2 3 |
provider "aws" { region = "ap-northeast-1" } |
同様に、VPCやEC2、ALBといったリソースもTerraformファイル内のコードで作成できます。構築したいリソースの構成に応じて、必要なコードを記述したTerraformファイルを作成してください。
一つのファイル内に全てのコードを記載することもできますが、内容ごとに複数のファイルに分けた方が効率的な管理が可能です。
AWS上の環境にTerraformファイルをアップロード
Terraformファイルが作成できたら、AWS上にアップロードしましょう。AWSの管理画面から、Cloud9のフォルダ内にTerraformファイルをアップロードすることが可能です。
Terraformファイルを複数作成した場合は、全てのファイルを漏れなくアップロードしてください。
初期化を行う
次に、Cloud9でコマンドを実行します。Terraformのコードを利用する環境を整えるため、以下のコマンドを実行してください。
1 |
$ terraform init |
このコマンドにより、Terraformの利用に必要な初期化が自動的に完了します。
検証を行う
Terraformファイルのコードに誤りがないかチェックするため、以下のコマンドを実行しましょう。
1 |
$ terraform validate |
エラーが発生した場合は、適宜修正を行う必要があります。コードを修正した上で、再度上記のコマンドを実行してください。
実行する
最後に、以下のコマンドでTerraformファイルの内容を実行しましょう。
1 |
$ terraform apply |
「Do you want to perform these actions?」というメッセージが表示されたあと、「Enter a value:」に対して「yes」を入力すると、Terraformファイルで指定したリソースが構築されます。
リソースの削除方法
作成したリソースを全て削除したい場合は、以下のコマンドを実行しましょう。
1 |
$ terraform destroy |
その後、確認メッセージに対して「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の使い方を学習しましょう。
AWS と Terraformで実現するInfrastructure as Code
インフラの手運用なんてもうイヤだ!そんなあなたに贈る Infrastracture as Code の大本命!AWS上の環境構築をコーディングしよう!
\無料でプレビューをチェック!/
講座を見てみる評価:★★★★★
会社でAWS・Terraformを利用していくプロジェクトが立ち上がった際に、こちらの講座を受講させていただき、Terraformの基礎知識を身につけられたのでプロジェクトで大いに役に立てることができました。
有益な講座を提供していただきありがとうございました。
評価:★★★★★
AWSを一通り学んで、IaCに取り組むのには丁度良いレベル感だったのと、要所要所での説明も的確で分かり易かったです。
最新情報・キャンペーン情報発信中