갬미의 성장일기
Day 75 - Terraform 본문
오늘 한 내용
- 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까지 생성해 보았다
잘쓴다면 너무 편할것 같은데 아직은 콘솔이 너무 편해서 .. 더 익숙해지는 시간이 필요할 것 같다!
'Cloud > Cloud 공부일기' 카테고리의 다른 글
Day 77,78 - 세미프로젝트 (2) | 2022.05.02 |
---|---|
Day 76 - 세미프로젝트 (0) | 2022.04.28 |
Day 74 - 세미프로젝트 (0) | 2022.04.26 |
Day 73 - 세미프로젝트 (0) | 2022.04.25 |
Day 72.5 - 세미프로젝트 ( HPA, CloudWatch-SNS-Lambda ) (0) | 2022.04.23 |