본문 바로가기

Terraform30

4주차 2편 테라폼 State StateState의 목적과 의미이론 내용상태 파일은 테라폼이 관리하는 인프라 리소스의 현재 상태를 기술합니다.이 파일은 JSON 형식 또는 Terraform Cloud 및 Terraform Enterprise에서는 HCL 형식으로 저장될 수 있습니다.테라폼 상태 파일을 직접 편집하거나 직접 읽는 코드로 작성해서는 안 됩니다. 이는 테라폼의 내부 동작 원리와 상태의 일관성을 보장하기 위한 것입니다.  팀 단위에서 테라폼을 운영하기 위한 고려사항상태 파일을 저장하는 공유 스토리지 (Shared storage for state files)팀원들이 동일한 테라폼 상태 파일을 사용하기 위해서는 상태 파일을 공유할 수 있는 위치가 필요합니다.상태 파일 잠금 (Locking state files)테라폼에서는 상태 .. 2024. 7. 7.
4주차 1편 테라폼 프로바이더 프로바이더테라폼은 인프라 자동화 도구로, 다양한 클라우드, SaaS, 기타 서비스의 인프라와 리소스를 관리할 수 있습니다.이를 가능하게 하는 것이 프로바이더입니다. 각 프로바이더는 특정 클라우드 플랫폼이나 서비스의 API와 상호작용하여 리소스를 관리할 수 있도록 합니다.프로바이더는 테라폼 실행 시, 특정 클라우드나 서비스의 API를 호출하여 리소스를 생성하거나 관리합니다.각 프로바이더는 테라폼의 고유 문법을 따르면서, 다양한 환경에서 동일한 동작을 수행할 수 있도록 구현됩니다.각 프로바이더는 테라폼 실행 파일과는 별도로 관리되며, 테라폼 레지스트리에서 관련 문서와 설정 방법을 확인할 수 있습니다.프로바이더를 사용하기 위해서는 해당 클라우드나 서비스와의 연결 및 인증에 필요한 정보(예: AWS 자격증명)를.. 2024. 7. 7.
3주차 2편 테라폼 기초 - 기본 사용 3/3 3.12 프로비저너프로비저너는 테라폼에서 리소스를 생성하고 관리하는 동안 추가적인 설정이나 작업을 수행하는 도구입니다.프로비저너는 특정 리소스가 생성된 후에 실행되며, 주로 초기화 스크립트 실행, 설정 파일 복사, 배포용 스크립트 실행 등의 작업을 수행합니다.프로비저너로 실행된 작업들은 테라폼 상태 파일과 동기화되지 않습니다. 따라서 프로비저너로 수행된 변경 사항은 테라폼이 추적하는 인프라 상태에 포함되지 않습니다.이는 프로비저닝 작업의 결과가 항상 일관되게 보장되지 않는다는 의미이며, 이러한 측면에서 프로비저너는 "선언적 보장이 안되는" 접근 방식을 가집니다.프로비저너는 특정 상황에서 유용하지만, 테라폼의 선언적 구성 방식을 유지하고자 할 때는 최소화하는 것이 좋습니다.프로비저너의 주된 종류로는 다음과.. 2024. 6. 30.
3주차 1편 테라폼 기초 - 기본 사용 3/3 3.9 반복문 (2/2) for_each for_each를 사용하면 주어진 map 또는 set 타입의 컬렉션에 있는 각 요소를 개별적으로 처리할 수 있습니다.각 요소에 대해 each.key와 each.value를 통해 해당 요소의 키와 값을 사용할 수 있습니다.each.key: 이 인스턴스에 해당하는 map 타입의 키 값.each.value: 이 인스턴스에 해당하는 map의 값.map 또는 set 타입이 아닌 표현식은 toset 등의 함수를 사용해 이 타입으로 변환해야 합니다.예시 - mapresource "azurerm_resource_group" "rg" { for_each = tomap({ a_group = "eastus" another_group = "westus2" }).. 2024. 6. 30.