갬미의 성장일기

Day 75 - Terraform 본문

Cloud/Cloud 공부일기

Day 75 - Terraform

갬미 2022. 4. 27. 23:35

오늘 한 내용

- Terraform

 

Terraform

테라폼이이란 콘솔에서 하던 작업을 IaC로 하기 위한 도구로

AWS외에 다른 벤더에서도 많이 제공하고 있다 = 벤더에 종속되지 않는다

 

IaC

-> vendor에 종속된 것 : cloudformation. ...

-> opensource: Terraform

 

테라폼 - 선언적 코드(yaml)를 통해 인프라를 제공

 

AWS CLI에 계정 설정이 되어있다는 가정하에 테라폼을 처음 사용할때는

.tf 파일이 있는 곳에서 terraform init 후 사용해야 한다

 

S3 버킷 만들기

먼저 S3를 만들 yml파일을 만들어야 한다

먼저 provider.tf로 지역을 설정한다

provider "aws" {
    region = "us-west-1"
}

s3 생성 yml

resource "aws_s3_bucket" "gymin97-200" { # 이 버킷을 구분할 태그!
  bucket = "gymin97-200" # 버킷 이름
}

다음 세개를 순서대로 입력한다

terraform init
terraform plan
terraform apply

 

terraform plan 

= dry run

인프라에 영향을 미치지 않고 먼저 검사해주는것 

실행시 어떤 리소스가 만들어지는지 보여줌

 

실제로 만들려면 

terraform apply

콘솔에서 확인하면 만들어져있는걸 볼 수 있다

 

apply 를 하면 terraform state file이 만들어짐

terraform state file은 terraform으로만 생성한 내용이 들어가있음 // 미리 만들어져있던 리소스는 포함되지 않음

terraform state와 aws resource 상황이 일치한다면 좋다 

terraform을 중간부터 사용한다면 aws 리소스를 terraform에 import 할 수 있다( 동기화 )

이때 import를 하려고 해도 import 하고자 하는 리소스에 대한 yml이 있어야 한다

 

import: 해당 리소스에 대한 yml 파일 생성-> import 

yml이 없는 상태에서 import 하고자 하면 다음과 같은 오류가 발생한다

terraform 으로 만든 리소스 삭제

terraform destroy

 

terraform 으로 eks까지 생성해 보았다

 

잘쓴다면 너무 편할것 같은데 아직은 콘솔이 너무 편해서 .. 더 익숙해지는 시간이 필요할 것 같다!

 

 

Comments