지난번 글에서 Terraform을 사용하기 위해 Terraform을 설치하는 방법에 대해 알아 보았다.
이번 장에서는 Terraform을 사용하여 AWS EC2 인스턴스를 생성하고, 종료하는 방법에 대해 알아본다.
전제 조건
그 전에, Terraform으로 EC2를 생성하기 위해서는 아래의 세 가지 조건이 필요하다.
- Terraform 1.2.0 이상의 버전이 설치되어 있어야 한다.
- AWS 계정과 계정에 대한 권한 자격 증명이 필요하다.
- AWS CLI가 설치되어 있어야 한다.
만약 해당 조건들이 설정되어 있지 않다면, 아래의 두 포스팅을 참고하면 된다.
2024.08.25 - [Infra/AWS] - [AWS] AWS CLI 설치 (Mac OS)
2024.08.25 - [Infra/IaC] - [IaC] Terraform 설치 (Mac OS)
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 plan 명령어를 실행하여 작성한 Terraform 코드에 대해 검증할 수 있다.
AWS_PROFILE="[profile]" 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’를 입력하라는 문구가 나온다.
‘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가 종료된 모습을 확인할 수 있다.
참고
Build infrastructure | Terraform | HashiCorp Developer
테라폼(Terraform) 사용 가이드 3: EC2 생성하기
'Infra > IaC' 카테고리의 다른 글
[IaC] Terraform 설치 (Mac OS) (0) | 2024.08.25 |
---|