インフラ自動化の第一歩!Terraformをローカル環境にセットアップする方法

AWS,Tech

ブログ運営者
さいとう

閲覧いただきありがとうございます!"さいとう"と申します。わたしは異業種・未経験からIT業界に転職し、現在インフラエンジニアとしてクラウド環境の設計や構築・運用の支援を行っています。


現在、AWSのインフラをマネージメントコンソールを使って構築している方の中には、コードを使ってインフラを構築してみたいと考えている方も多いのではないでしょうか。これがいわゆるIaC(Infrastructure as Code)と呼ばれる手法です。


IaCを活用することで、手動操作によるミスを減らし、インフラの再現性や自動化を高めることができます。AWSで利用できるIaCツールとしては、AWSの公式ツールであるAWS CDK(Cloud Development Kit)やAWS CloudFormationがありますが、それに加えて非常に人気が高いのがTerraformです。


Terraformはクラウドプロバイダーに依存せず、多くのプラットフォームに対応している点が特徴で、柔軟かつ強力なインフラ自動化ツールとして、広く利用されています。今回の記事では、このTerraformを使ってAWSリソースを構築するための環境準備について紹介します。


Terraformを使用するためのセットアップ手順、初期設定、そして基本的な操作方法について詳しく解説します。これを読めば、実際にTerraformを用いてAWSインフラをコードで管理するための第一歩を踏み出すことができるでしょう。


インフラエンジニアとして、またはクラウド環境を効率的に管理したい方にとって、IaCのスキルは今後ますます重要になっていきます。この機会にTerraformを学び、インフラの自動化を進めていきましょう。この記事が、Terraformを活用したインフラ管理の基礎を理解するための助けとなれば幸いです。

AWSでTerraformを使う準備

■Terraformとは

Terraform は、クラウドおよびオンプレミスのリソースを安全かつ効率的に構築、変更、バージョン管理できるコードツールとしてのインフラストラクチャです。公式webサイトより

●Terraformを利用するメリット

わたしがTerraformを利用していて感じたメリットを3つ紹介します。

  1. Terraformで利用する言語"HCL言語"がわかりやすい
  2. コードでインフラを構築するので、そのままドキュメントとしても使える
  3. 一回書けば、再利用できて作業時間が減る



■前提条件

今回の記事では、Terraformを利用するための環境準備を紹介します。
以下が前提条件です。

  • AWSアカウントを持っている
  • ローカルPCのOSがWindows
  • Visual Studio Code(VS Code)インストール済み



■Terraform用IAMユーザー作成

まずはAWSアカウントでTerraform用のIAMユーザーを作成します。

↓サービス検索窓で[IAM]と検索します。



↓左のナビゲーションペインから[Users]をクリックし、[Add users]を押します。



↓必要事項を入力し、[Next]をクリックします。



↓与える権限は任意で設定してください。



↓内容に問題なければ、[Create user]をクリックします。



↓作成したIAMユーザーの[Security credentials]タブをクリックし、[Create access key]を押します。



↓[Command Line Interface]を選択し、[Next]をクリックします。



↓[Description tag value]に任意の文字を入力し、[Create access key]を押します。



↓表示された[Access key]・[Secret access key]をメモするか、csvファイルをダウンロードしておいてください。



IAMユーザー作成は以上です。


■AWS CLIインストール

AWS CLIをインストールします。

AWS公式ドキュメントにアクセスし、インストーラをダウンロードします。







↓ダウンロードしたファイルをクリックします。



↓環境に合わせて設定してください。



↓インストールが完了しましたら、PowerShellで以下のコマンドを実行してください。

aws --version





↓以下のコマンドで、初期設定を行います。–profileオプションは名前付きプロファイル作成の設定です。

aws configure --profile terraform



【実行結果】

PS C:\Users> aws configure --profile terraform
AWS Access Key ID [None]: <アクセスキー>
AWS Secret Access Key [None]: <シークレットアクセスキー>
Default region name [None]: ap-northeast-1
Default output format [None]: json




AWS CLIインストールは以上です。


■Gitインストール

GitBashを利用するために、Gitをインストールします。

公式webサイトにアクセスし、環境に合わせたインストーラをダウンロードしてください。



↓ダウンロードが完了したら、設定ウィザードを起動しましょう。



↓任意の設定で進めてください。



↓インストールが完了したら、PowerShellで以下のコマンドを実行しください。

git version





Gitインストールは以上です。


■Terraformインストール

本命のTerraformをインストールしていきます。今回はTerraformのバージョン管理ができる"tfenv"を利用して、Terraformをインストールしましょう。

↓エクスプローラーで自身のユーザーディレクトリにアクセスし、右クリックで[Git Bash Here]をクリックしてください。



↓https://github.com/tfutils/tfenv でクローンするURLを確認します。



↓GitBashコマンドラインで以下のコマンドを実行してください。

git clone https://github.com/tfutils/tfenv.git .tfenv




↓リポジトリをクローン出来たことを確認します。



↓次にパスを設定します。先ほどのディレクトリで右クリックを押し、[新規作成]→[テキストドキュメント]をクリックします。



↓ドキュメント名を以下の名前で作成します。

.bashrc





↓ドキュメントを環境に合わせて以下のように編集してください。

export PATH=$PATH:/<.tfenv配下のbinフォルダ絶対パス>





↓ドキュメントが作成できたら、右クリックから[Git Bash Here]を押して再起動します。



↓以下のコマンドを実行し、パスが通ることを確認してください。

tfenv





↓次にTerraformをインストールしますので、インストール可能なバージョンを確認します。

tfenv list-remote





↓今回は最新バージョンがアルファ版とベータ版なので、一つ前のバージョンをインストールします。



↓以下のコマンドを実行してください。

tfenv install 1.4.6





↓インストールが完了したら、以下のコマンドで使用するTerraformのバージョンを指定します。

tfenv use 1.4.6





↓以下のコマンドで指定したバージョンのTerraformが設定されているか確認します。

terraform version




Terraformインストールは以上です。


■VSCode設定

さいごに、Visual Studio CodeにTerraformの拡張機能をインストールと、ターミナルのデフォルトシェルを変更します。Terraformの拡張機能は構文チェックをしてくれる便利機能が使えるのでオススメです。


↓VSCodeを起動し、左の拡張機能アイコンをクリックし、検索窓で[terraform]と検索します。



↓[HashiCorp Terraform]をクリックし、[インストール]を押します。



プラグインインストールは以上です。つぎにデフォルトシェルを変更しま


↓[File]→[Preferences]→[Settings]をクリックします。



↓検索窓で[terminal intergrated shell windows]と検索します。



↓[Default Profile Windows]を[Git Bash]に変更し、VSCodeを開きなおしましょう



Terraformを利用するための環境構築が完了しました。


■動作確認

Terraformを使ってAWSリソースを構築する環境が整いました。試しにTerraformを使って、EC2インスタンス起動してみましょう。


↓自身のドキュメントディレクトリ配下に[terraform]フォルダを作成します。



↓VSCodeで作成した[terraform]フォルダを開きます。



↓[ファイル作成]アイコンをクリックし、[main.tf]と名前を付けます。



↓[main.tf]に以下のドキュメントを貼り付けます。amiはマネコンで確認し、任意のamiを設定しください。

provider "aws" {
  profile = "terraform"
  region  = "ap-northeast-1"
}

resource "aws_instance" "test_ec2" {
  ami           = "ami-0f9816f78187c68fb"
  instance_type = "t2.micro"
}





↓[Terminal]→[New Terminal]をクリックします。



↓ターミナルで作業ディレクトリを初期化するコマンドを実行します。

terraform init





↓[Terraform has been successfully initialized!]と表示されればOKです。



↓つぎにコードをきれいに整えてくれるコマンドを実行します。

terraform fmt





↓リソースを作成するまえに、何が作られるか確認できる[plan]を実行します。

terraform plan





↓EC2インスタンスが一つ作られることが確認できます。



↓さいごにAWSリソースを作成するコマンド[apply]を実行します。planで何が作られるか確認したので、実行確認を求められない[-auto-approve]オプションを付けます。

terraform apply -auto-approve





↓作成されたかマネージメントコンソールで確認しましょう。



EC2インスタンスが作成されたのが確認できました。動作確認は以上です。


[terraform destroy]でリソースを消すことができますので、実施してみてください。


まとめ

今回の記事では、Terraformを利用するための「環境準備」について紹介しました。これでTerraformを使用してAWSインフラをコードで管理するための基盤が整いました。環境構築が完了したことで、これからは実際にTerraformを使ってさまざまなAWSリソースを構築することが可能です。


Terraformは、コードでインフラを定義することにより、インフラ管理の効率化や再現性の向上を実現します。単純なリソースの作成から、複雑なアーキテクチャのデプロイまで、柔軟に対応できるため、これからのインフラ運用において非常に強力なツールとなるでしょう。


次のステップとして、実際にAWSのさまざまなアーキテクチャを試し、コード化してみてください。例えば、VPCの作成や、EC2インスタンスのデプロイ、さらにはRDSの構築や負荷分散の設定など、実践的なシナリオを通じてTerraformの使い方を学んでいくことができます。


また、Terraformの強力な機能である状態管理や、モジュール化、変数の活用など、より高度な使い方にも挑戦してみましょう。これにより、大規模なインフラ管理でも効率的に対応できるようになります。


Terraformを使いこなすことで、インフラの自動化と効率化が進み、より信頼性の高い運用が可能になります。ぜひ、今回の環境準備をもとに、実際のプロジェクトでTerraformを活用してみてください。



参考リンク:Terraform公式webサイト