?
사용자

Terraform으로 AWS EC2 인스턴스 프로비저닝 자동화: 기본 설정 및 SSH 접속

Terraform을 사용하여 AWS EC2 인스턴스를 빠르게 프로비저닝하고, SSH 접속까지 설정하는 실용적인 레시피입니다. IaC 경험이 없는 개발자도 바로 적용할 수 있습니다.

#terraform#aws#ec2#iac#provisioning
recipe.md

Terraform으로 AWS EC2 인스턴스 프로비저닝 자동화

이 레시피는 Terraform을 사용하여 AWS에 EC2 인스턴스를 생성하고, SSH로 접속할 수 있도록 구성하는 과정을 안내합니다.

1. Terraform 초기화

프로젝트 디렉토리에서 다음 명령어를 실행하여 Terraform을 초기화합니다.

terraform init
2. AWS Provider 설정

provider.tf 파일을 생성하고 다음과 같이 AWS Provider를 설정합니다. AWS 자격 증명은 환경 변수, IAM 역할, 공유 자격 증명 파일 등을 통해 자동으로 로드됩니다.

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = "ap-northeast-2" # 서울 리전을 사용합니다.
}
3. EC2 인스턴스 정의

main.tf 파일에 EC2 인스턴스 생성을 위한 리소스를 정의합니다. 여기서는 t2.micro 타입의 인스턴스를 생성하며, SSH 접속을 위해 ami-0abcdef1234567890 (예시 AMI ID)와 키 페어 my-ec2-keypair를 사용합니다.

resource "aws_instance" "my_ec2" {
  ami           = "ami-0abcdef1234567890" # 최신 Amazon Linux 2 AMI ID로 변경하세요.
  instance_type = "t2.micro"
  key_name      = "my-ec2-keypair"      # 미리 생성된 AWS 키 페어 이름으로 변경하세요.

  tags = {
    Name = "MyTerraformEC2Instance"
  }
}

참고: ami 값은 사용하려는 AWS 리전 및 최신 AMI ID로 반드시 업데이트해야 합니다. AWS 콘솔 또는 AWS CLI를 통해 최신 AMI ID를 확인할 수 있습니다.

참고: key_name에 해당하는 키 페어가 AWS에 미리 생성되어 있어야 하며, 해당 .pem 파일은 로컬 환경에 안전하게 보관해야 합니다.

4. Terraform 계획 및 적용

생성될 리소스를 미리 확인하고 실제 리소스를 생성합니다.

terraform plan
terraform apply

terraform apply 실행 시, 생성될 리소스 목록이 표시되며 yes를 입력하여 진행합니다.

5. SSH 접속

terraform apply가 완료되면 EC2 인스턴스의 Public IP 주소를 확인합니다. 출력값이나 AWS 콘솔에서 확인할 수 있습니다. 이후 다음 명령어로 SSH 접속을 시도합니다. my-ec2-keypair.pem은 실제 키 파일 경로로 변경해야 합니다.

ssh -i /path/to/my-ec2-keypair.pem ec2-user@<EC2_PUBLIC_IP_ADDRESS>

<EC2_PUBLIC_IP_ADDRESS>는 실제 EC2 인스턴스의 Public IP 주소로 바꿔주세요.

6. 리소스 삭제

더 이상 사용하지 않는 리소스는 다음 명령어로 삭제합니다.

terraform destroy

terraform destroy 실행 시, 삭제될 리소스 목록이 표시되며 yes를 입력하여 진행합니다.

14
스크랩
17
좋아요
0
댓글