こんにちは!
「terraform Advent Calendar 2025」の記事として投稿します。
今回はシンプルに、TerraformでEC2を起動するまでの最小構成を試していこうと思います。
Terraform を触り始めたばかりの方にも役立つような内容にしています。
Terraformとは?
Terraform は HashiCorp が提供する、Infrastructure as Code(IaC) を実現するツールです。
- インフラ設定をコード化できる
- 再利用できる
- 環境差異をなくせる
- apply / destroy で環境を簡単に作成・削除できる
- AWS、Azure、GCP など多数のプロバイダをサポートしている
今回はその中でも、最もシンプルな構成で EC2 を立ち上げる流れ を紹介します。
AWSを認証させる
Terraform が AWS にアクセスするためには、アクセスキーとシークレットキー が必要です。
AWSの「IAM>セキュリティ認証情報>アクセスキーを作成」から生成できるので、確認しておきます!
その後にAWS CLI をインストールし、以下を実行します。
aws configure
すると 4 つ聞かれるので、順番に入力します。
AWS Access Key ID
AWS Secret Access Key
Default region name → ap-northeast-1
Default output format → json
使ってみる(Terraformのコード)
任意の作業フォルダを作成して、その配下にsample.tfのようなtfファイルを用意します
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "ap-northeast-1" # 東京リージョン
}
resource "aws_instance" "example" {
ami = "ami-0c3fd0f5d33134a76" # Amazon Linux 2
instance_type = "t2.micro"
tags = {
Name = "terraform-ec2-test"
}
}
あとは下記を実行するだけです
terraform init
terraform plan
terraform apply
EC2が起動しているか試してみる
AWSコンソールの EC2 から確認できます。
また、Terraform の出力からも情報を取得できます。
terraform show
Destroy(削除)する
クラウドでは、作ったら必ず削除する ということが重要です。
(とんでもない請求につながる。。)
Terraform なら削除も1コマンドです。
terraform destroy
確認で yes と入力すると、
先ほど作成した EC2 が削除されます。
もっと設定すればできること
今回の構成は最小構成なので、実際にはもっと細かく設定できます。
- VPC / サブネットの作成
- セキュリティグループ(SSH / HTTP などの許可)
- キーペアの作成
- IAM ロール付与
- EBS のサイズ変更
- user_data による EC2 の初期セットアップ
- CloudWatch Agent の導入
- tfstate を S3 + DynamoDB で管理(本番向け)
Terraform はコード量を増やすことで、AWS上のほぼ全ての設定が IaC で自動化できるらしいです!

