Skip to Content

Terraform Refresh란?

코드형 인프라(IaC) 덕분에 조직은 IT 인프라를 확장 가능하고 일관되게 자동화하고 관리할 수 있습니다. 다양한 IaC 툴을 제공하는 주요 기술 기업과 클라우드 제공업체를 통해, Terraform by HashiCorp은 클라우드 리소스의 프로비저닝 및 관리에 대한 선언적인 접근 방식을 통해 두드러집니다. Terraform의 명령 모음에서 흥미로운 기능은 인프라의 상태가 구성 파일과 일치하도록 보장하는 데 핵심적인 역할을 하는 테라폼 리프레시입니다. 

이 글은 테라폼 리프레시, 인프라 관리의 중요성 및 이를 효과적으로 활용하는 방법에 대해 자세히 설명합니다.

Terraform Refresh 이해하기

Terraform Refresh는 Terraform 상태 파일을 Terraform이 관리하는 인프라의 현재 상태와 동기화합니다. Terraform 상태 파일을 인프라에 대한 원하는 구성을 요약한 청사진으로 상상해 보십시오. 그러나 시간이 지남에 따라 Terraform이 통제할 수 없는 인프라에 직접 수동 변경이 이루어질 수 있습니다. Terraform Refresh는 이러한 실제 수정 사항을 반영하기 위해 상태 파일을 새로 고쳐 이러한 격차를 해소합니다.

테라폼 리프레시의 주요 목적은 구성 파일에 정의된 대로 리소스의 실제 상태와 원하는 상태 간의 드리프트를 감지하는 것입니다. 이러한 변동은 Terraform 외부 인프라의 수동 변경 또는 인프라 환경 자체의 변경으로 인해 발생할 수 있습니다.

Terraform Refresh 사용 방법

테라폼 리프레시를 사용하는 것은 간단합니다. 명령 구문은 다음과 같습니다.

$ terraform refresh

이 명령은 Terraform이 현재 Terraform 구성에서 관리되는 모든 리소스의 상태 파일을 새로 고치도록 지시합니다. 테라폼 리프레시는 상태 파일만 업데이트하며, 실제 인프라를 수정하지 않습니다.

AWS S3 버킷 인스턴스를 프로비저닝하는 Terraform 구성이 있다고 가정해 봅시다. 샘플 구성 파일(main.tf)은 다음과 같습니다.

provider "aws" {
 region = "us-west-2"
 }
 
 resource "aws_s3_bucket" "example" {
 bucket = "my-unique-bucket-name"
 acl    = "private"
 }

이 구성을 적용하고 S3 버킷을 생성하려면 다음을 실행해야 합니다.

$ terraform init
 $ terraform apply

AWS 콘솔 또는 API를 통해 직접 S3 버킷을 변경하면, 테라폼 새로 고침을 실행하면 상태 파일이 업데이트되어 다음과 같은 변경 사항이 반영됩니다.

$ terraform refresh

추가 옵션 및 플래그

  • 입력: 거짓으로 설정된 경우, Terraform에 사용자 입력이 필요할 때 대화형 입력을 비활성화합니다.
  • 상태: 작업에 사용할 사용자 지정 상태 파일을 지정합니다.

사용 예시는 다음과 같습니다.

$ terraform refresh -input=false -state="custom_state.tfstate"

Terraform Refresh의 장점

인프라 관리 워크플로우에 테라폼 리프레시를 통합하면 다음과 같은 몇 가지 장점이 있습니다.

  • 향상된 계획 정확도: 테라폼 리프레시는 상태 파일을 새로 고쳐 테라폼 계획 출력이 인프라를 테라폼 구성에 맞게 조정하는 데 필요한 변경 사항을 정확하게 반영하도록 합니다. 이는 오래된 상태 정보를 기반으로 불필요한 수정을 제안할 위험을 제거합니다.
  • 인프라 가시성 향상: Terraform Refresh는 인프라의 현재 상태를 명확하게 보여줍니다. 이러한 투명성을 통해 코드와 실제 인프라 간의 불일치를 식별할 수 있으므로, 필요한 경우 시정 조치를 취할 수 있습니다.
  • 간소화된 인프라 관리: Terraform 리프레시는 Terraform 상태 파일을 최신 상태로 유지하여 인프라 관리를 간소화합니다. 상태 파일이 기반 인프라를 정확하게 반영한다는 것을 알기 때문에 구성 변경을 자신 있게 적용할 수 있습니다.

Terraform Refresh 사용 모범 사례

테라폼 리프레시를 사용할 때 염두에 두어야 할 몇 가지 모범 사례는 다음과 같습니다.

  • Terraform v0.15.4 이전: 이전 버전에서는 테라폼 리프레시가 주 파일을 직접 업데이트했습니다. 그러나, 이러한 행동은 현재 잠재적인 안전성 우려로 인해 더 이상 사용되지 않는 것으로 간주됩니다. 대신 리프레시 전용으로 테라폼을 적용하는 것이 좋습니다. 이 접근 방식은 새로 고침을 완료하기 전에 확인을 요청하는 이점을 제공하며, 변경 사항을 상태 파일에 적용하기 전에 검토할 수 있습니다.
  • -자동 승인: 일부 문서는 테라폼 리프레시가 포함된 자동 승인 플래그를 참조할 수 있지만, 이 플래그도 사용되지 않으므로 피해야 합니다. 확인을 우회하여 의도하지 않은 결과를 초래할 수 있습니다.
  • 계획된 사용량: 특히 테라폼 플랜 또는 테라폼 적용 명령을 실행하기 전에 테라폼 리프레시를 전략적으로 사용하는 것이 좋습니다. 이렇게 하면 계획이 가장 최근의 인프라 상태를 반영할 수 있습니다.
  • 버전 관리 통합: Terraform 구성을 Git과 같은 버전 관리 시스템과 통합하는 것을 고려해 보십시오. 이를 통해 Terraform 코드의 변경 사항을 추적하고 필요한 경우 이전 버전으로 되돌릴 수 있습니다. 이는 테라폼 리프레시에서 예상치 못한 불일치가 드러날 경우 특히 중요합니다.
  • 제한된 범위 리프레시: Terraform 구성 내에서 특정 리소스 또는 모듈만 새로 고치고 싶다면, 테라폼 새로 고침과 함께 대상 플래그를 활용할 수 있습니다. 이러한 표적 접근 방식은 대규모의 복잡한 인프라 구축을 관리하는 데 도움이 될 수 있습니다.
  • 잠재적 영향 이해하기: 테라폼 리프레시는 상태 파일을 업데이트하지만 인프라는 변경하지 않습니다. 그러나 상태를 새로 고치면 원하는 상태(테라폼 구성에 정의)와 인프라의 실제 상태 간의 차이가 나타날 수 있습니다. 상태 파일을 새로 고친 후 발생하는 불일치를 해결할 준비를 하십시오.

결론

Terraform 리프레시는 Terraform 구성과 실제 인프라 간의 일관성을 유지하는 데 중요한 역할을 합니다. 주 파일을 동기화하여 계획이 정확하고 인프라 관리가 간소화되도록 할 수 있습니다.

Terraform이 관리하는 인프라를 보완하는 고급 스토리지 솔루션의 경우, 퓨어스토리지KubernetesPortworx ® 및 다양한 컨테이너 워크로드용 퓨어 Pure Cloud Block Store 제품을 고려해 보세요. 이러한 솔루션은 클라우드 인프라의 안정성과 효율성을 더욱 향상시킬 수 있는 강력한 데이터 관리 기능을 제공합니다.

11/2024
Pure Storage Cloud for Azure VMware Solution
Shrink your Azure VMware costs with Pure Storage Cloud, a suite of enterprise-grade data services by Pure Storage.
솔루션 브리프
4 페이지
연락처
질문하기

퓨어스토리지 제품이나 인증 관련 질문이나 코멘트가 있으신가요?   저희가 도와드립니다.

데모 예약

라이브 데모를 예약하고 퓨어스토리지가 데이터를 어떻게 강력한 결과로 전환해주는지 직접 확인해 보세요. 

연락하기: +82 2 6001-3330

언론홍보팀:  pr@purestorage.com

 

퓨어스토리지코리아 주소

30F 아셈타워,

517 영동대로,

강남구, 서울

대한민국

korea@purestorage.com

닫기
지원하지 않는 브라우저입니다.

오래된 브라우저는 보안상 위험을 초래할 수 있습니다. 최상의 경험을 위해서는 다음과 같은 최신 브라우저로 업데이트하세요.