【Terraform_v1.1.8】Windows11にインストールし、AWSにEC2をデプロイしてみる

これまでTerraformを扱ってこなかったため、今更ながら勉強したので備忘録として記載します。
Terraformとは
簡単に言えばインフラのコード化。手動で操作することなくインフラ構成を自動で管理できます。インフラの初期プロビジョニング、更新、破棄、いずれもTerraformではコードにより宣言し、実行できる。
環境
OS:Windows11
Terraform version 1.1.8 (2022年4月4日現在最新版)
Terraformの取得
- 下記URLから取得します。
https://www.terraform.io/downloads
- 取得後、解凍して任意の場所に置きます。

- 環境設定
3.1 [システム] -> [システムの詳細設定]を押します。

3.2 [システム環境変数] -> [Path] -> [編集] -> [新規]を押します。
変数値:2で指定した任意の場所(ここではC:\terraform_1.1.8)

- 確認
コマンドプロンプトから下記コマンドを実行し、バージョンを確認する
terraform -v

AWS CLIをインストール
コマンドプロンプトから下記コマンドでAWS CLI をインストールします。
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

確認
aws –version

AWSの情報を取得
下記コマンドを実行することでAWS CLIにIAMユーザーで接続するための情報を取得する
$ aws configure
AWS Access Key ID [None]:****************
AWS Secret Access Key [None]:****************
Default region name [None]:ap-northeast-1
Default output format [None]:Json
入力した情報が~/.aws
フォルダの中に保存されます。

tfファイルの作成
「main.tf」ファイルを作成して下記コードを記入します。
置く位置はterraform.exeの場所にしています。(PATHを通していないため)
terraform {
required_providers {
aws = {
source = “hashicorp/aws”
version = “~> 3.27”
}
}
required_version = “>= 1.1.8”
}
provider “aws” {
profile = “default”
region = “us-east-1”
}
resource “aws_instance” “app_server” {
ami = “ami-0c02fb55956c7d316”
instance_type = “t2.micro”
tags = {
Name = “MyFirstTerraformInstance”
}
}

Terraform 初期化
terraform init

terraform fmt
現在のディレクトリの構成を自動でアップデート

terraform validate
構成が構文的に有効であり、内部的に一貫性があるかを確認することもできます

terraform plan
現在定義されているリソースを実際にproviderに適用した時、テラフォームがどのようなジョブを実行するかの計画を示します。

terraform apply
実際にAWS上にデプロイするコマンド

作成確認

-
前の記事
AWSの基本ネットワーク構成【ハンズオン版】 2022.03.18
-
次の記事
EC2内にDockerを入れて「Hello World from Docker!!」する【ハンズオン】 2022.04.27