본문 바로가기
DevOps/Terraform, Ansible

[실습] 2. 테라폼을 이용해서 EC2 인스턴스 올려보기 (설치 방법 및 확인, 템플릿 작성, 적용)

by 잉크드 2023. 7. 21.
반응형

테라폼(Terraform)은 HashiCorp에서 개발한 오픈 소스 도구로, 인프라스트럭처 코드를 사용하여 클라우드 서비스를 안전하게 효율적으로 제어할 수 있습니다. 이번 글에서는 테라폼의 설치 방법에 대해 알아보겠습니다.

1. 테라폼 설치 방법 및 확인

운영체제에 따라 테라폼을 설치하는 방법이 다릅니다. 자세한 내용은 공식 문서를 참조하시기 바랍니다.

저는 AWS Cloudshell에 설치해보도록 하겠습니다. AWS Cloudshell을 처음 들어보는 분들을 위해서 간단히 설명드리자면, AWS에서 무료로 제공하는 경량형 리눅스 서버라고 생각하시면 됩니다.

git clone https://github.com/tfutils/tfenv.git ~/.tfenv

mkdir ~/bin
ln -s ~/.tfenv/bin/* ~/bin/

tfenv install

tfenv use latest

 

테라폼 설치를 완료한 후, 정상적으로 설치되었는지 확인하는 것이 필요합니다. 아래의 명령어를 통해 설치된 테라폼의 버전을 확인할 수 있습니다.

terraform -v

2. 테라폼 템플릿 작성하기

# Provider Configuration for AWS
provider "aws" {
  access_key = "ACCESS_KEY"
  secret_key = "SECRET_KEY"
  region     = "ap-northeast-2"
}

# Resource Configuration for AWS
resource "aws_instance" "myserver" {
  ami = "ami-0ea4d4b8dc1e46212"
  instance_type = "t2.micro"
  key_name = "demo_key"
  vpc_security_group_ids = ["sg-0a1ca512ec955743e"]

  tags = {
    Name = "myserver"
  }
}

AccessKey, SecretKey를 위한 IAM Credentials 발급은 공식 문서를 참조하세요. 키는 항상 인터넷에 공개되지 않도록 주의하시기 바랍니다.

Resource 부분의 값들은 이전 글의 내용에서 가져왔습니다.

SSH 키와 보안 그룹 아이디만 본인의 것으로 바꾸시고 작성하시면 됩니다.

3. 테라폼 템플릿 적용

terraform init: 템플릿 적용을 위한 초기화 명령어

terraform validate: 적용 전 문법 검사 명령어

terraform plan: apply시 변경 사항에 대한 검토 명령어

terraform apply: 인프라에 실제로 적용하는 명령어

같은 경로 내에 terraform.tfstate 파일이 생성됨을 확인할 수 있습니다. terraform.tfstate 파일 안에는 현재 테라폼을 통해서 구성된 인프라의 정보가 담겨있습니다.

4. EC2 인스턴스 확인 후 삭제

테라폼을 통해서 배포된 인스턴스를 확인합니다. SSH를 통해서 접속하고, 작업하는 과정들은 구성 관리 도구인 Ansible에 관해서 공부하며 알아보도록 하겠습니다. 지금은 인스턴스를 사용하지 않으니 삭제합니다.

 

테라폼에서는 인프라를 제거하는 명령어로 'terraform destroy'를 제공합니다. terraform.tfstate가 존재하는 경로 내에서 실행하시면 됩니다.

apply와 마찬가지로 destroy시 생길 변화에 대해서 알려주고, yes를 입력하시면 구성 요소들이 제거됩니다.

댓글