Terraform 설명 1

2024. 4. 9. 14:14IT

일련의 선언적으로 구성파일을 정의하고 읽을 수 있는 이런 구성파일로 토폴로지를 구성 → 테라폼 config

테라폼 설정 동작 방식

  • 장점
    • Multi-cloud
    • stateful
    • version controlled
    • declarative
    • manual click-ops
    • save money
      • 개발자들이 일하는 특정시간에만 서버를 올리고 퇴근시 서버를 내려 돈을 아낄 수 있다.
    • disaster recovery
      • 특정 availablity-zone이 안되는 경우 다른 availability zone으로 옮길 시 엄청난 시간 단축이 있다.
    • minimize error

Refresh

  • 테라폼은 Refresh를 통해 테라폼으로 만들어질 세상이 어떻게 생겼는지 조정한다.
  • 테라폼 View가 나오고 실제와 어떻게 다른지 비교한다.
  • VMware, AWS, Azure 같은 인프라에 실제 무엇이 실행중인지 API로 물어보고 각 상태를 확인한다.
  • view ↔ Real

Plan

  • 현재의 상태를 원하는 상태로 구성하는 단계
  • 현재와 다른것이 무엇이고 어떤 변화가 있을지
  • Real → Desired

Apply

  • 원하는 상태를 만들기 위해 실행하는 단계
  • Plan → Real
  • yes 치기 귀찮으면 terraform apply —auto-approve

Destroy

  • 코드베이스로 설정한 것들은 코드로 제로의 상태로, 삭제를 할 수 있는 단계
  • Plan → Real

HCL

HashiCorp Configuration Language

Terraform cloud

  • Terraform의 운영환경을 cloud를 통해 관리할 수 있도록 해주는 서비스
  • Terraform의 실행환경과 state를 관리해주기 때문에, 따로 terraform을 위한 instance를 운영하거나 state관리를 위해 remote 저장소가 필요 ㅇ없다.
  • 즉, 사용자는 terraform 운영은 모두 terraform cloud에 맡기고 terraform code를 통해 ingrastructure를 구축하는 일에 집중할 수 있게 된다.

terraform.state

  • 테라폼은 코드를 인프라로 반영하면, 반영 상태를 파일로 관리한다. .tfstate
  • terraform plan , terraform apply 적용시
    terraform.tfstate라는 파일이 생긴다.
  • Terraform 설정 파일로 실제 인프라에 적용하면서 나온 결과를 기억하고 있는 상태 파일로 이후 설정 파일을 수정하거나 하면 “설정파일”, “상태파일”, 실제 인프라의 상태”를 비교해서 어떻게 적용할지를 판단하게 된다.
  • 테라폼 버전과 상태의 버전, 적용한 인프라에 대한 다양한 정보가 있다. 또한 나중에 복구할 수 있도록 terraform.tfstate.backup 파일이 생긴다.
  • 관리 방법
    • 동시에 두 사람이상이 작업하면 terraform.tfstate 가 달라지게 되어 충돌이 발생하여 인프랑에 영향을 줄 수 있다.
    • git pull로 가져오지 않고 작업하면 실수로 terraform.tfstate 위에서 작업할 수 있다.
 

'IT' 카테고리의 다른 글

Terraform 설명3 (ec2생성)  (0) 2024.04.09
Terraform 설명2 (함수)  (0) 2024.04.09
Helm 스터디  (0) 2024.04.09
Static, Dynamic Page, JSP, Servlet  (0) 2024.04.09
[AWS] 질문  (0) 2024.04.09