Terraform 시작하기: AWS CDK 및 AWS CloudFormation 전문가를 위한 지침 - AWS 권장 가이드

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

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

Steven Guggenheimer, Amazon Web Services(AWS)

2024년 3월(문서 기록)

클라우드 리소스 프로비저닝 경험이의 영역 내에만 있는 경우 AWS Cloud Development Kit (AWS CDK) 및 이외의 코드형 인프라(IaC) 도구에 대한 경험이 제한적일 AWS수 있습니다AWS CloudFormation. 사실 Hashicorp Terraform과 같은 유사한 도구는 완전히 익숙하지 않을 수 있습니다. 그러나 클라우드 여정에 더 깊이 들어갈수록 Terraform이 더 피할 수 없게 됩니다. 핵심 개념을 숙지하는 것이 유리할 것입니다.

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

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

참고

는 개발자가 프로그래밍 방식의 코딩 언어를 사용하여 CloudFormation 스택을 배포하는 데 AWS CDK 도움이 됩니다. 를 실행하면 cdk synth코드가 CloudFormation 템플릿으로 변환됩니다. 이 시점부터 프로세스는 AWS CDK 와 CloudFormation 간에 동일합니다. 간결성을 위해이 가이드는 일반적으로 CloudFormation 용어로 AWS IaC 프로세스를 참조하지만 비교는에 대해서도 마찬가지입니다 AWS CDK.

CloudFormation 및 Terraform 용어

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

  • 스택 - 스택은 CI/CD 파이프라인에 배포되고 단일 단위로 추적 가능한 IaC입니다. 이 용어는 CloudFormation에서 일반적이지만 Terraform은 실제로이 용어를 사용하지 않습니다. Terraform 스택은 모든 하위 모듈이 있는 배포된 루트 모듈입니다. 그러나 모듈이라는 용어와 혼동을 피하기 위해이 가이드에서는 스택이라는 용어를 사용하여 두 도구 모두에 대한 단일 배포를 설명합니다.

  • 상태 - 상태는 모두 현재 추적되는 리소스이며 IaC 배포 스택 내에서 현재 구성입니다. Terraform 상태 및 백엔드 이해 섹션에 설명된 대로 Terraform은 CloudFormation보다 상태라는 용어를 더 많이 사용합니다. 이는 상태를 유지하는 것이 Terraform에서 더 잘 보이지만 상태를 추적하고 업데이트하는 것도 CloudFormation에서 똑같이 중요하기 때문입니다.

  • IaC 파일 - IaC 파일은 코드형 인프라(IaC) 언어를 포함하는 단일 파일입니다. CloudFormation은 단일 CloudFormation 파일을 템플릿이라고 합니다. 그러나 Terraform의 템플릿템플릿 파일은 완전히 다릅니다. Terraform의 CloudFormation 템플릿과 동일한를 구성 파일이라고 합니다. 이 설명서에서 혼동을 최소화하기 위해 파일 또는 IaC 파일이라는 용어는 CloudFormation 템플릿과 Terraform 구성 파일을 모두 참조하는 데 사용됩니다.

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

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