1. はじめに
こんにちは。
8 月から AWS 案件に参画したばかりのエンジニアです。
インフラ構築の経験がほとんどなかった私は、正直
「Terraformって名前は聞いたことあるけど、何者なの……?」
というレベルからのスタートでした。
そんな私が今回チャレンジしたのは……
Terraform × AWS CLI で EC2 インスタンスを 1 台自動構築する!
という、IaC(Infrastructure as Code)の世界への第一歩です。
この記事は、そんな“ほぼゼロの状態からTerraformを動かしてみた”記録です。
「まずは何か作ってみたい」という初学者の方に届けば嬉しいです。
2. Terraformって結局なに?
Terraform を一言で説明すると、
インフラの構築・変更・削除をすべてコードで管理できるツール
です。
普段 AWS コンソールでポチポチ操作していたような作業が、
Terraform を使うと main.tf というファイルを書くだけ で完結します。
例えば、こんなものをコード化できます。
- EC2 インスタンス構築
- セキュリティグループ作成
- IAMユーザー作成
- RDS 構築
- S3 バケット作成
コード化するメリットはたくさんあります。
- 再現性がある
- レビューしやすい
- 人的ミスが減る
- 差分が明確
- dev/stg/prod のような複数環境が作りやすい
今回はその入り口として、EC2 を 1 台立ててみるところまでやってみます。
3. 今回の前提条件・検証環境
3-1. 構築する環境
今回 Terraform で作るのは以下の 最小構成 です。
- EC2 インスタンス 1 台
- 既存のデフォルト VPC を使用(VPC を自前で作らない)
- サブネットもデフォルトのもの
- セキュリティグループも Terraform で作らず AWS 既定のもの
まずは “EC2 が立つ” ことをゴールにして、
Terraform の操作方法そのものに集中する構成です。
3-2. ローカル環境
| 項目 | 内容 |
|---|---|
| OS | Windows 11 |
| Terraform | v1.13.5 |
| AWS CLI | v2.31.33 |
| リージョン | ap-northeast-1(東京) |
| IAM | terraform 用ユーザーのアクセスキーを使用 |
4. AWS CLI をインストールする
4-1. AWS CLI をダウンロード
AWS 公式ページから Windows 版 MSI をダウンロードし、実行します。
https://awscli.amazonaws.com/AWSCLIV2.msi
インストーラーは Next を押していくだけで完了します。
4-2. インストール確認
PowerShell を開き、AWS CLI が正しくインストールされているか確認します。
aws --version
PS C:\Users\yourname> aws --version
aws-cli/2.31.33 Python/3.13.9 Windows/11 exe/AMD64
このように バージョン情報が表示されればOK です。
💡 AWS CLI はインストール直後からそのまま使えるシンプルなツールです。
5. Terraformをインストールする
Terraform はインストーラー不要で、実行ファイルを配置するだけで使えます。
5-1. Terraform をダウンロードして展開
- 公式サイトから Windows 用 ZIP をダウンロード
https://developer.hashicorp.com/terraform/install - 展開して
terraform.exeをC:\terraformに配置
5-2. PATH を通す
Windows の環境変数「Path」 に C:\terraform を追加します。
5-3. 動作確認
PowerShell を開き、Terraform が動作するか確認します。
terraform -v
PS C:\Users\yourname> terraform -v
Terraform v1.13.5
on windows_amd64
このように バージョン情報が返ってくればインストール完了です! 🎉
💡 Terraform はterraform.exe を置いて PATH を通すだけという手軽さが魅力。
6. AWS CLI の設定
6-1. IAMユーザーを作成(Terraform 用)
AWS コンソールで IAM ユーザーを作成します。
- アクセスタイプ:アクセスキー
- 権限:検証用途なら AdministratorAccess で OK
(本番では最小権限にしてください)
6-2. AWS CLI に認証情報を登録
PowerShell で以下を実行します。
aws configure
PS C:\Users\yourname> aws configure
AWS Access Key ID [Name]:AKIAxxxxxxxxx
AWS Secret Access Key [Name]:xxxxxxxxxxxxxx
Default region name [Name]:ap-northeast-1
Default output format [Name]: json
6-3. 認証の確認
通常はこれが通れば OK です。
aws sts get-caller-identity
しかし私はここで SSL エラー に遭遇しました。
同じ状況の方は、検証環境限定の暫定対処として以下が使えます。
aws sts get-caller-identity --no-verify-ssl
{
"UserId": "XXXXXXXXXXXXXXXXXXXXX",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/terraform-test"
}
Account が返ってくれば認証成功です。
7. Terraform プロジェクトを作る
7-1. ディレクトリ作成
mkdir C:\terraform\ec2-test
cd C:\terraform\ec2-test
7-2. main.tfの作成
以下の内容で main.tf を作成します。
# ------------------------------
# AWS Provider 設定
# ------------------------------
provider "aws" {
region = "ap-northeast-1" # 東京リージョン
# ▼ SSL エラー回避用(検証環境のみ)
# 通常は不要。本番では絶対に使わない。
skip_credentials_validation = true
skip_metadata_api_check = true
skip_requesting_account_id = true
insecure = true
}
# ------------------------------
# EC2 インスタンス作成
# ------------------------------
resource "aws_instance" "example" {
ami = "ami-0f9ae750e8274075b" # Amazon Linux 2 (東京)
instance_type = "t2.micro" # 無料枠対象
tags = {
Name = "terraform-test"
}
}
💡 Terraform は宣言的ツール
「こうなってほしい状態」を書けば、Terraform がそうなるように調整してくれます。
8. Terraformを実行する
8-1. 初期化
terraform init
成功すると次のようなメッセージが出ます。
Terraform has been successfully initialized!
8-2. 実行プランの確認
terraform plan
▽ 結果の一部
Plan: 1 to add, 0 to change, 0 to destroy.
「1 to add」なら構成は問題ありません。
💡 Terraform の良いところ
実行前に「何が変わるか」を見せてくれるので安心。
8-3. EC2を作成
いよいよ apply です。
terraform apply --auto-approve
▽成功メッセージ
Apply complete! Resources: 1 added.
9. AWSコンソールで確認
AWS コンソール → EC2 → インスタンス一覧へ。
terraform-test という名前の t2.micro インスタンスが起動していれば成功です。

10. 後片付け(課金防止)
使い終わったら削除します。
terraform destroy --auto-approve
Destroy complete! Resources: 1 destroyed.
これでお片付け完了です。
11. まとめ
Terraform の基本ステップはとてもシンプルです。
- AWS CLI に認証情報を設定
- main.tf に“なってほしい状態”を宣言
-
init → plan → applyで反映 -
destroyで削除
Terraform は、
- クリック操作をコード化できる
- 変更点が明確
- 再現性がある(誰がやっても同じ環境ができる)
といったメリットが非常に大きいです。
12. おわりに
今回の検証は“EC2 を 1 台作るだけ”というシンプルなものでしたが、
Terraform の便利さと “宣言するだけで環境ができる” パワーを体感できました。
次はこのあたりに挑戦予定です。
- セキュリティグループのコード化
- キーペア作成
- SSH接続の自動化
読んでいただきありがとうございました! 🙏
We Are Hiring!
