【AWS】Terraformを使うための環境準備


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

いまはマネージメントコンソールを利用しているけど、AWSでのインフラ構築をコードを使って構築してみたい方は多いのではないでしょうか。

 

いわゆるIaC(Infrastructure as Code)ですね。

 

AWSで利用できるIaCツールと言えば、AWS CDK(Cloud Development Kit)、AWS CloudFormation、そして、Terraformです

 

今回の記事はIaCツール"Terraform"を使ってAWSリソース構築をする環境準備を紹介します。

 

 

AWSでTerraformを使う準備

■Terraformとは

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]と検索します。

 

terraformIAMユーザー作成

 

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

 

terraformIAMユーザー作成

 

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

 

terraformIAMユーザー作成

 

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

 

terraformIAMユーザー作成

 

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

 

terraformIAMユーザー作成

terraformIAMユーザー作成

 

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

 

terraformIAMユーザー作成

 

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

 

terraformIAMユーザー作成

 

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

 

terraformIAMユーザー作成

 

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

 

terraformIAMユーザー作成

 

 

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

 

 

■AWS CLIインストール

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

 

 

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

 

AWSCLIインストール

 

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

 

AWSCLIインストール

 

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

 

AWSCLIインストール

AWSCLIインストール

AWSCLIインストール

 

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

 

AWSCLIインストール

 

↓以下のコマンドで、初期設定を行います。–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

 

AWSCLIインストール

 

 

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

 

 

■Gitインストール

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

 

 

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

 

Gitインストール

Gitインストール

 

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

 

Gitインストール

 

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

 

Gitインストール

Gitインストール

 

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

 

Gitインストール

 

 

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

 

 

■Terraformインストール

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

 

 

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

 

terraformインストール

 

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

 

terraformインストール

 

↓GitBashコマンドラインで以下のコマンドを実行してください。
git clone https://github.com/tfutils/tfenv.git .tfenv

 

terraformインストール

 

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

 

terraformインストール

 

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

 

terraformインストール

 

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

 

terraformインストール

 

↓ドキュメントを環境に合わせて以下のように編集してください。
export PATH=$PATH:/<.tfenv配下のbinフォルダ絶対パス>

 

terraformインストール

 

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

 

terraformインストール

terraformインストール

 

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

 

terraformインストール

 

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

 

terraformインストール

terraformインストール

 

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

 

terraformインストール

 

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

 

terraformインストール

terraformインストール

 

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

 

terraformインストール

terraformインストール

 

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

 

terraformインストール

 

 

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

 

 

■VSCode設定

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

 

 

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

 

VSCodeプラグインインストール

 

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

 

VSCodeプラグインインストール

 

 

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

 

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

 

terraform動作確認

 

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

 

terraform動作確認

 

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

 

terraform動作確認

 

 

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

 

 

■動作確認

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

 

 

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

 

terraform動作確認

terraform動作確認

 

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

 

terraform動作確認

 

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

 

terraform動作確認

terraform動作確認

 

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

 

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

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

 

 

terraform動作確認

 

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

 

terraform動作確認

 

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

 

terraform動作確認

 

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

 

terraform動作確認

 

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

 

terraform動作確認

terraform動作確認

 

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

 

terraform動作確認

 

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

 

terraform動作確認

 

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

 

terraform動作確認

terraform動作確認

 

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

 

terraform動作確認

 

 

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

 

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

 

 

まとめ:【AWS】TerraFormを使うための環境準備

今回の記事はTerraformを利用するための”環境準備”について紹介しました。

 

Terraformを使える状態になったので、あとは様々なアーキテクチャを試しにコード化してAWSリソースを構築してみましょう。

 

 

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

 

↓ほかの協栄情報メンバーも自動化に関する記事を公開しています。ぜひ参考にしてみてください。

 

■Terraformの概要と使用方法(higa)
https://cloud5.jp/terraform_summary/

 

■AWS CodePipeline を利用してS3の静的ウェブサイトの更新を自動化する(tatsuoka)
https://cloud5.jp/tatsuoka-handson-beginner-codepipeline/

 

■AWS上にopenstackを構築(liuwanying)
https://cloud5.jp/openstack-install/

 

■Ansibleを利用してwindowsOSのインスタンスを操作する方法(umemoto)
https://cloud5.jp/control-windows-fromansible/

 

 

Last modified: 2023-07-15

Author