Infra/IaC

[IaC] Terraform을 사용해 EC2를 생성하고, 종료해보자

아윤_ 2024. 8. 25. 18:30

지난번 글에서 Terraform을 사용하기 위해 Terraform을 설치하는 방법에 대해 알아 보았다.

이번 장에서는 Terraform을 사용하여 AWS EC2 인스턴스를 생성하고, 종료하는 방법에 대해 알아본다.


 

 

전제 조건

그 전에, Terraform으로 EC2를 생성하기 위해서는 아래의 세 가지 조건이 필요하다.

  1. Terraform 1.2.0 이상의 버전이 설치되어 있어야 한다.
  2. AWS 계정과 계정에 대한 권한 자격 증명이 필요하다.
  3. AWS CLI가 설치되어 있어야 한다.

 

만약 해당 조건들이 설정되어 있지 않다면, 아래의 두 포스팅을 참고하면 된다.

 

2024.08.25 - [Infra/AWS] - [AWS] AWS CLI 설치 (Mac OS)

 

[AWS] AWS CLI 설치 (Mac OS)

AWS CLI(Command Line Interface)AWS CLI는 터미널에 명령을 사용해 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구이다. 여러 개의 AWS 서비스를 명령줄에서 제어하고 스크립트를 통해 자동화할 수 있다.

chinkl.tistory.com

2024.08.25 - [Infra/IaC] - [IaC] Terraform 설치 (Mac OS)

 

[IaC] Terraform 설치 (Mac OS)

이번 장에서는 Terraform을 사용하기에 앞서 Terraform을 설치하는 법에 대해 알아보도록 한다.(Mac OS를 기준으로 설명을 진행한다) Terraform이란?Terraform은 Hashicorp가 개발한 오픈 소스 코드형 인프라

chinkl.tistory.com

 

 

Terraform을 이용한 EC2 생성

전제 조건을 모두 만족한다면, Terraform을 이용해 EC2를 생성해보자.

 

Terraform 코드 작성

원하는 작업 폴더로 이동한 다음, main.tf 파일을 생성해 아래의 코드를 작성해 보자.

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

  required_version = ">= 1.2.0"
}

provider "aws" {
  region = "ap-northeast-2"
}

resource "aws_instance" "app_server" {
  ami = "ami-008d41dbe16db6778"
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleEC2Instance"
  }
}

 

Terraform 초기화

터미널에 아래의 명령어를 입력하여 terraform을 초기화한다. 참고로, 필자는 AWS SSO를 사용하였기 때문에 추가로 AWS_PROFILE 옵션을 사용해주었다. IAM 계정을 사용할 경우 해당 옵션은 없어도 된다.

AWS_PROFILE="[profile]" terraform init

 

아래와 같이 “Terraform has been successfully initialized!” 명령어가 출력된다면 초기화 작업에 성공한 것이다.

terraform init

 

인프라 검사

terraform plan  명령어를 실행하여 작성한 Terraform 코드에 대해 검증할 수 있다.

AWS_PROFILE="[profile]" terraform plan

 

terraform plan

 

만약 검사에 성공할 경우, 다음과 같은 문구가 뜨게 된다. 현재 한 개의 EC2만 띄웠기 때문에 ‘1 to add’ 라는 문구가 출력된 것을 알 수 있다.

Plan: 1 to add, 0 to change, 0 to destroy.

 

인프라 구축

코드에 대한 검증이 완료되었다면, terraform apply  명령어를 사용해 인프라를 구축할 수 있다.

AWS_PROFILE="[profile]" trraform apply

 

실행 결과 terraform apply 동작을 취하고 싶다면 ‘yes’를 입력하라는 문구가 나온다.

terraform apply

 

 

‘yes’를 입력하면 ec2 인스턴스가 성공적으로 생성된다.

yes 입력 후 ec2 생성 결과

 

실제로 AWS 콘솔에 접속하여 ec2 인스턴스가 정상적으로 생성되었는지 검사해 보면, main.tf 파일에 작성한 대로 ec2 인스턴스가 정상적으로 생성된 모습을 확인할 수 있다.

 

 

Terraform을 이용한 EC2 종료

EC2 인스턴스를 생성할 때, terraform apply 명령을 사용한 점을 기억해보자. 이와 반대로 terraform destroy 명령을 사용하면 EC2를 종료할 수 있다.

AWS_PROFILE="[profile]" terraform destory

 

apply 명령과 마찬가지로 리소스를 파괴하고 싶을 경우, ‘yes’를 입력하라는 메시지가 나온다.

‘yes’를 입력하면, 정상적으로 리소스가 파괴되며, 실제 AWS 콘솔에 접속해 결과를 확인해보면 EC2가 종료된 모습을 확인할 수 있다.

terraform destroy

 

 

참고

Build infrastructure | Terraform | HashiCorp Developer

테라폼(Terraform) 사용 가이드 3: EC2 생성하기

Cloud Study - AWS SSO(Single Sign-On) & Terraform 명령

Destroy infrastructure | Terraform | HashiCorp Developer

'Infra > IaC' 카테고리의 다른 글

[IaC] Terraform 설치 (Mac OS)  (0) 2024.08.25