Ops-Beginner
article thumbnail
Published 2023. 8. 31. 16:42
Terraform - (1) IaC
반응형

안녕하세요.

블로그 포스팅 내용 기반으로 테라폼 실습을 하면 좋을거같아서 작성해봤습니다.

AWS EC2 Instance 작성

AWS를 사용하기에 aws provider를 설정했습니다.

'aws_instance' BLOCK LABEL을 사용하여 EC2 instance를 생성합니다.

 

# main.tf
provider "aws" {
  region = "ap-northeast-2"
}

resource "aws_instance" "example" {
  # Ubuntu Image
  ami           = "ami-0c9c942bd7bf113a2"
  instance_type = "t2.micro"
}

 

테라폼 실행 준비

실행을 위해서는 플러그인 설치가 필요합니다. 방법은 'terraform init' 명령어로 쉽게 플러그인을 설치 할 수 있습니다.

다운로드 시 tf파일에 정의된 BLOCK TYPE과 BLOCK LABEL을 분석해서 필요한 플러그인을 설치합니다.

<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {
  # Block body
  <IDENTIFIER> = <EXPRESSION> # Argument
}

terraform init

 

테라폼 예상 내용 확인

인프라로 반영하기 전에 'terraform plan' 명령어로 미리 확인할 수 있습니다.

문법에 대해서도 확인 가능하고, 변경하면 안되는 내용이나 삭제하면 안되는 내용이 있는지?

마치 rsync의 dry-run처럼 미리 체크할 수 있습니다. 새로 추가는 '+', 삭제는 '-'로 직관적으로 확인할 수 있습니다.

 

리소스 적용

'terraform apply' 명령어로 코드 내용을 인프라에 반영합니다.

AWS Console로 확인해보면 Instance가 올라간것을 확인할 수 있습니다.

 

리소스 삭제

'terraform destroy' 명령어로 리소스들을 간편하게 삭제할 수 있습니다.

간편하게 삭제가 되는 만큼 신중하게 사용하지 않으면 다른 리소스까지 삭제를 하는 경우가 발생할 수 있습니다. (큰일납니다. 주의!)

삭제 된 모습

 

마무리

Terraform으로 간략하게 EC2 생성과 삭제하는 방법에 대해서 다뤄봤습니다.

모든 경우에 부합되지는 않겠지만 보통 생성보다 삭제할 때 시간이 더 소요된 것으로 경험했습니다.

다음에도 실습 내용으로 가져오겠습니다. 감사합니다.

반응형

'IaC' 카테고리의 다른 글

Terraform - (4)  (0) 2023.09.01
Terraform - (3)  (0) 2023.08.31
Terraform - (2)  (0) 2023.08.31
profile

Ops-Beginner

@asher_r

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!