LoginSignup
1
0

TerraformでAWSリソースを作成(EC2編)

Posted at

はじめに

Terraformを使ってAWSリソース(EC2)を作成する手順について、Terraform初学者の自分用のメモを兼ねて記載しておきます。
今回は以下の記事に続きEC2を構築します。
そのためここではVPCが既に構築されている前提で記事を書いています。

前提

・windows環境であること
・Terraformが端末にインストールされていること
・AWS CLIが端末にインストールされていること
・AWSのアカウント(アクセスキーとシークレットアクセスキー)があること
・TerraformでVPCなどが構築済みであること
・EC2はPrivate subnetに作成
・EC2のOSはAmazon Linux 2023を使用
・インバウンドの通信はssh(ポート22)のみ許可、アウトバウンドはすべて許可のセキュリティグループ(sg)を作成

アーキテクチャ図

ec2-矢印.drawio.png

やること

1.tfファイルの作成
2.Terraformでリソースの作成
3.AWSリソースの確認

1.tfファイルの作成

セキュリティグループとEC2を作成するコードになります。
ファイル名は「ec2.tf」とします
以下のように設定していきます。

ec2.tf
# ---------------------------
# Security Group
# ---------------------------
# Security Group作成
resource "aws_security_group" "test_ec2_sg" {
 name              = "terraform-test-ec2-sg"
 description       = "For EC2 Linux"
 vpc_id            = aws_vpc.test_vpc.id
 tags = {
   Name = "terraform-test_ec2_sg"
 }

 # インバウンドルール
 ingress {
   from_port   = 22
   to_port     = 22
   protocol    = "tcp"
   cidr_blocks = ["0.0.0.0/0"]
 }

 # アウトバウンドルール
 egress {
   from_port   = 0
   to_port     = 0
   protocol    = "-1"
   cidr_blocks = ["0.0.0.0/0"]
 }
}
# ---------------------------
# EC2
# ---------------------------
# Amazon Linux 2023 の最新版AMIを取得
data "aws_ssm_parameter" "amzn_linux_2023_latest_ami" {
 name = "/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64"
}

# EC2作成
resource "aws_instance" "test_ec2"{
 ami                         = data.aws_ssm_parameter.amzn_linux_2023_latest_ami.value
 instance_type               = "t3.nano"
 availability_zone           = "${var.az_a}"
 vpc_security_group_ids      = [aws_security_group.test_ec2_sg.id]
 subnet_id                   = aws_subnet.test_private_subnet10d_sn.id
 tags = {
   Name = "terraform-ec2"
 }
}

2.Terraformでリソースの作成

vpc偏でも記載していますが以下の手順でリソースを作成していきます。
tfファイルがあるディレクトリに移動して、以下のコマンドを入力していきます。

①ワークスペースの初期化
 terraform init
「Terraform has been successfully initialized!」が表示されればOKです。
②tfファイルの構文チェック
 terraform validate
「Success!」が表示されればOKです。
※構文にエラーがあればエラー個所が表示されます。

③実行計画を作成
 terraform plan
作成されるリソースを確認することができます。

④リソースを作成
 terraform apply
Enter a valueと出てくるので「yes」と入力するとAWSリソースが作成されます。

 Enter a value: yes

3.AWSリソースの確認

作成したリソースを確認
 terraform show
AWSのマネジメントコンソールでも正しく作成できているか確認します。
今回はプライベートサブネットのアドレス(192.168.10.0/24のセグメント)を持ったEC2と、セキュリティグループが作成できていれば完成となります。

また、以下はterraformでのAWSリソースの削除方法になります。

削除対象のリソースを確認
 terraform plan -destroy

作成したリソースを削除
 terraform destroy

リソースを確認
 terraform show
Terraformで作成したリソースが消えていれば完了です。

まとめ

次回はterraformを使ったリソース作成の記事を作成したいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0