Ssoon

[T101] 02 왜 Terraform 인가? - (2) 단일 서버 배포 본문

Terraform 101 Study

[T101] 02 왜 Terraform 인가? - (2) 단일 서버 배포

구구달스 2022. 10. 17. 23:57
CloudNet@ 팀의 가시다님이 진행하는 Terraform 101 Study 1주차 정리입니다.

1. Provider 구성

  • main.tf 파일을 생성합니다.
  • terraform 이  aws 을 provider로 사용하여 'ap-northeast-2' 리전에 인프라를 배포합니다.
provider "aws" {
  region = "ap-northeast-2"
}

2. Resource 구성

  • 단일 서버 EC2 Instance 을 배포하기 위해 main.tf 에 다음과 같은 aws_instance Resource 를 사용합니다.

Resources

  • 각 리소스 블록은 가상 네트워크, 컴퓨팅 인스턴스 또는 DNS 레코드와 같은 상위 수준 구성 요소와 같은 하나 이상의 인프라 개체(objects) 를 설명합니다.

resource "<PROVIDER>_<TYPE>" "<NAME>" {

  [CONFIG ...]

}

  • PROVIDER : AWS .. 공급자
  • TYPE : PROVIDER 에서 생성할 resource 유형
  • NAME : terraform 코드에서 이 resource 를 참조하기 위해 사용할 수 있는 식별자
  • CONFIG : 특정 resource 에 대한 하나 이상의 argument 로 구성
provider "aws" {
  region = "ap-northeast-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c76973fbe0ee100c"
  instance_type = "t2.micro"
}
  •  ami 선택 
ami           = "ami-0c76973fbe0ee100c"

  • instance_type 선택
instance_type = "t2.micro"

3. terraform init

  • terraform init 을 실행합니다.
  • terraform 을 처음 실행기전에 terraform 의 코드를 스캔하도록 지시하고, 어느 provider 인지 확인, 필요한 코드를 다운로드 합니다.

  • 기본적으로 provider 코드는 .terraform 폴더에 다운로드 됩니다. 
    • /c/t101/.terraform/providers/registry.terraform.io/hashicorp/aws/4.34.0/windows_386

4. terraform plan

  • terraform plan 을 실행합니다.

5. terraform apply

  • terraform apply 를 실행합니다.
  • terraform 수행할 작업을 실제로 적용하거나 변경하기 전에 확인할 수 있습니다.
    • + : 추가
    • - : 삭제
    • ~ : 수정

6. Console 결과 확인

AWS Console 에서 Terraform 으로 생성된 EC2을 확인합니다.

7. tags - Name 추가

  tags = {
    "Name" = "terraform-example"
  }
provider "aws" {
  region = "ap-northeast-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c76973fbe0ee100c"
  instance_type = "t2.micro"

  tags = {
    "Name" = "terraform-example"
  }
}

  • terraform -auto-approve

-auto-approve : applying 전에 plan 의 대화식 승인을 건너뜁니다

  • Console 결과 확인

 

 

 

 

 

 

 

 

 

 

 

 

Comments