Terraform の基本的な使用方法について調べてみた

Terraform の基本的な使用方法を理解するために調べてみました。

 

Terraform とは

Terraform とは、HashiCorp社により開発されているオープンソースのインフラ自動構築ツールです。Terraform では AWS などのクラウドサービス上のインフラリソースをコードで定義します。 Terraform は作成したコードに基づいて自動でリソースを構築します。Terraform を利用することでオペレーションミスが無くなるほか、複数システムでコードを再利用することで効率化を図ることが出来ます。また、一度に大量のリソースを定義することで手動よりも早く構築することが可能になります。

 

このようにインフラリソースをコードで定義することを IaC(Infrastructure as Code)と呼びます。他のIaCツールとしてはサーバ内の設定変更を得意とする Ansible などが有名ですが、Terraform はクラウド上のリソースを構築することに長けています。クラウドリソースは Terraform で構築し、サーバ内の設定変更は Ansible、といった使い分けが可能です。

 

Terraform と似た位置付けのツールに AWS CloudFormation が存在しますが、Terraform とは違いAWS専用です。Terraform は AWS だけでなく Azure や GCP、GitHub、Datadog など、複数のクラウドプロバイダーに対応しているため、マルチクラウド環境においても構築手段を統一することが出来ます。

 

引用 完全初心者向けTerraform入門(AWS)


 

■ Terraform 学習の経緯

私は以前、業務で Ansible を使用して AWS リソースを作成した経験がありますので、なんとなく構造は理解していますが、Terraform を使用した経験や知識はありません。

今後、Terraform を活用して AWS リソースを作成する可能性があるため、Terraform の基本的な使用方法を学びたいと思い調査してみました。

 

 

■ AWS を対象とした Terraform 環境準備

Terraform で AWS リソースを作成するための環境を構築します。

 

・AWS CLI のインストール

Terraform を使用するためには、AWS CLI のインストールが必要です。

AWS公式サイト
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
 

・IAM ユーザー、アクセスキー作成

IAM ユーザーを作成しアクセスキーを取得します。Terraform で AWS リソースにアクセスする際に使用します。
 

・Terraform のインストール

Terraform をインストールします。

Terraform 公式サイト
https://developer.hashicorp.com/terraform/install
 

・Terraform の初期化

Terraform のコードが格納されたディレクトリで、terraform initコマンドを実行します。コマンド実行により、Terraform が AWSプロバイダを使用できるようになります。

 

 

■ Terraform 主要ファイル

Terraform で使用する主要ファイルは、以下の3つになります。
 

1. main.tf

"main.tf" ファイルは、Terraform のメインコードファイルです。ここには、実際にリソースを作成するための Terraform のコードが含まれます。AWS のインスタンスやネットワークなど、必要なリソースを作成するための Terraform コードが含まれます。このファイルを使用して、AWS 上に必要なサーバーやネットワークなどの設定を行います。

 

2. variables.tf

"variables.tf" ファイルは、Terraform の変数を定義するためのファイルです。変数は、コード内の再利用可能な値を定義するために使用されます。例えば、AWS のリージョンやインスタンスタイプなどのパラメータを変数として定義することができます。

 

3. terraform.tfvars

"terraform.tfvars" ファイルは、Terraform の変数の値を設定するためのファイルです。変数.tf ファイルで定義された変数の実際の値を設定します。このファイルには、AWS アクセスキー、シークレットキーなどの機密情報を含めることができます。

 

・これらのファイルを使用することで、AWS 上に必要なサーバーやネットワークなどの設定を行います。

 

まとめ

Terraform の基本的な使い方について調査しました。

Ansible を使用した経験はありましたが、Terraform を使ったことはありませんでした。
今回、Terraform の基本を学び、AWS 上のAWS 上のインフラを効率的に構築する方法を少し理解できたと思います。

Last modified: 2024-03-16

Author