terraform으로 EC2 만들기 실습

도은호·2025년 9월 24일

terraform

목록 보기
25/32

파일 구성

provider.tf

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "6.13.0"
    }
  }
}

provider "aws" {
  region = var.region
}

vars.tf

variable "region" {
  type    = string
  default = "ap-northeast-2"
}

variable "vpc_id" {
  type    = string
  default = "vpc-0c7750b0025cf323a"
}
variable "public_subnet_id" {
  type    = list(any)
  default = ["subnet-08da1208b4e631aba", "subnet-00953385ef2935f31"]
}
variable "private_subnet_id" {
  type    = list(any)
  default = ["subnet-0781a01047c76fb51", "subnet-0a119db89bdd777f7"]

}

main.tf

// 단일 WEB Server 구축
resource "aws_instance" "user07-web" {
  ami                         = "ami-077ad873396d76f6a"
  instance_type               = "t2.micro"
  subnet_id                   = element(var.public_subnet_id, 0) // var.public_subnet_id[0]
  vpc_security_group_ids      = ["sg-0a4f09cf8c97f44c6", "sg-02d13d8232dcc4e1a", "sg-0fbc6a1d458a72bf9"]  
  key_name                    = "user07-key" // 자기 키 넣어주기
  associate_public_ip_address = true  // 퍼블릭ip 할당

  tags = {
    Name = "user07-web"
  }
}

output.tf

output "user07-public-ip" {
  value = aws_instance.user07-web.public_ip
}

apply

➡️public ip 복사

접속해보기

ssh 접속한 상태에서 http 설치

sudo dnf install httpd -y

sudo systemctl start httpd

웹브라우저 확인


aws_instance 도큐먼트 참고

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

이번 실습에서 AMI ID는 상수로 넣어준다

이번 실습에서 보안 그룹 ID는 상수로 넣어준다

👀원래는 *.tfsatae에서 인스턴스 서브넷아이디, 보안그룹 아이디를 가져와야함

profile
`•.¸¸.•´´¯`••._.• 🎀 𝒸𝓇𝒶𝓏𝓎 𝓅𝓈𝓎𝒸𝒽💞𝓅𝒶𝓉𝒽 🎀 •._.••`¯´´•.¸¸.•`

0개의 댓글