Terraform 시작하기: AWS CDK 및 AWS 전문가를 위한 지침 CloudFormation - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Terraform 시작하기: AWS CDK 및 AWS 전문가를 위한 지침 CloudFormation

스티븐 구겐하이머, Amazon Web Services ()AWS

2024년 3월 (문서 기록)

클라우드 리소스 프로비저닝 경험이 독점적으로 의 영역에 속한다면 AWS, AND 이외의 코드형 인프라 (IaC) 도구에 대한 경험은 제한적일 수 있습니다. AWS Cloud Development Kit (AWS CDK)AWS CloudFormation 사실 Hashicorp Terraform과 같은 유사한 도구는 전혀 익숙하지 않을 수 있습니다. 하지만 클라우드 여정에 깊이 들어갈수록 Terraform을 접할 수밖에 없게 됩니다. 핵심 개념에 익숙해지는 것이 분명 여러분에게 유리할 것입니다.

Terraform AWS CDK, 및 는 비슷한 목표를 CloudFormation 달성하고 많은 핵심 개념을 공유하지만 몇 가지 차이점이 있습니다. Terraform을 처음 사용하는 경우 이러한 차이점에 대비하지 못할 수도 있습니다. 결국 CloudFormation 스택은 모두 내부에 AWS 계정기반을 두고 있기 때문에 유지 관리하는 대부분의 AWS CDK 리소스와 직접적인 관계를 맺게 됩니다. Terraform은 단일 클라우드 공급자의 환경을 기반으로 하지 않습니다. 따라서 다양한 공급자를 지원할 수 있는 유연성이 제공되지만, 어느 정도의 리소스부터 원격 위치까지 리소스를 유지해야 합니다.

이 가이드는 Terraform의 핵심 개념을 이해하기 쉽게 설명하여 발생하는 모든 IaC 문제를 해결하는 데 도움이 됩니다. Terraform이 공급자, 모듈 및 상태 파일과 같은 개념을 사용하여 리소스를 프로비저닝하는 방법에 중점을 둡니다. 또한 Terraform 개념을 및 가 유사한 작업을 수행하는 방식과 대조합니다 AWS CDK . CloudFormation

참고

개발자가 프로그래밍 방식의 코딩 언어를 사용하여 CloudFormation 스택을 배포하는 AWS CDK 데 도움이 됩니다. 실행한 cdk synth 후에는 코드가 템플릿으로 CloudFormation 변환됩니다. 그 시점부터 프로세스는 과 (와) AWS CDK 모두 동일합니다 CloudFormation. 간결하게 설명하기 위해 이 안내서에서는 일반적으로 AWS IaC 프로세스를 CloudFormation 용어로 언급하지만 비교 역시 IaC 프로세스를 참조하기에 적합합니다. AWS CDK

CloudFormation 및 테라폼 용어

AWS CDK Terraform과 CloudFormation AND를 비교할 때 IaC 핵심 개념을 설명하는 데 사용되는 용어가 일치하지 않아 IaC 핵심 개념을 조정하는 것이 어려울 수 있습니다. 다음은 이러한 용어와 이 가이드에서 이러한 용어를 참조하는 방법입니다.

  • 스택 스택은 CI/CD 파이프라인에 배포되고 단일 유닛으로 추적할 수 있는 IaC입니다. 에서는 이 용어가 흔히 사용되지만 CloudFormation Terraform에서는 이 용어를 실제로 사용하지 않습니다. Terraform 스택은 모든 하위 모듈이 포함된 배포된 루트 모듈입니다. 하지만 모듈이라는 용어와 혼동되지 않도록 이 가이드에서는 스택이라는 용어를 사용하여 두 도구의 단일 배포를 설명합니다.

  • 상태 - 상태는 IaC 배포 스택 내에서 현재 추적되는 모든 리소스와 해당 리소스의 현재 구성입니다. 테라폼 상태 및 백엔드 이해섹션에서 설명한 것처럼 Terraform은 상태라는 용어를 보다 많이 사용합니다. CloudFormation Terraform에서는 상태를 유지하는 것이 더 잘 보이지만 상태를 추적하고 업데이트하는 것도 마찬가지로 중요하기 때문입니다. CloudFormation

  • IaC 파일 — IaC 파일은 코드형 인프라 (IaC) 언어를 포함하는 단일 파일입니다. CloudFormation 단일 CloudFormation 파일을 템플릿이라고 합니다. 하지만 Terraform의 템플릿과 템플릿 파일은 완전히 다릅니다. Terraform의 CloudFormation 템플릿과 동일한 것을 구성 파일이라고 합니다. 이 안내서의 혼동을 최소화하기 위해 파일 또는 IaC 파일이라는 용어는 CloudFormation 템플릿과 Terraform 구성 파일을 모두 지칭하는 데 사용됩니다.

다음 표에서는 와 Terraform에 사용되는 용어를 비교합니다. CloudFormation 이 표의 목적은 유사점을 보여주는 것입니다. 이는 one-to-one 비교가 아닙니다. Terraform 간에는 각 개념이 최소한 CloudFormation 약간씩 다릅니다. 개념은 이 가이드의 관련 섹션에 자세히 설명되어 있습니다.

CloudFormation 용어 테라폼 용어 이 가이드의 섹션
CDK 인터페이스 (예: iBucket) 데이터 소스 테라폼 데이터 소스 이해
변경 세트 계획 테라폼 모듈에 대한 이해
조건 함수 조건식 테라폼 함수, 표현식, 메타 인수의 이해
DependsOn 속성 depends_on메타 인수 테라폼 함수, 표현식, 메타 인수의 이해
내장 함수 함수 테라폼 함수, 표현식, 메타 인수의 이해
모듈 모듈 테라폼 모듈에 대한 이해
결과 출력 값 테라폼 변수, 로컬 값 및 출력에 대한 이해
파라미터 Variables 테라폼 변수, 로컬 값 및 출력에 대한 이해
레지스트리 제공업체 테라폼 제공자에 대한 이해
템플릿 구성 파일 모두