

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

# 테라폼을 IaC 도구로 사용 AWS 클라우드
<a name="terraform"></a>

[HashiCorp Terraform은](https://developer.hashicorp.com/terraform) 클라우드 인프라를 관리하는 데 도움이 되는 코드형 인프라 (IaC) 도구입니다. Terraform을 사용하면 버전 지정, 재사용 및 공유할 수 있는 구성 파일에 클라우드 및 온프레미스 리소스를 모두 정의할 수 있습니다. 그런 다음 일관된 워크플로를 사용하여 수명 주기 전반에 걸쳐 모든 인프라를 프로비저닝하고 관리할 수 있습니다.

개발자는 [Terraform](https://developer.hashicorp.com/terraform/language) 언어라는 고급 구성 언어를 사용합니다. [Terraform 언어의 기본 저수준 구문은 구성 언어 (HCL) 입니다HashiCorp.](https://developer.hashicorp.com/terraform/language/syntax/configuration) Terraform 언어는 사람이 쉽게 읽고 쓸 수 있도록 설계되었습니다. Terraform 언어를 사용하여 클라우드 또는 온프레미스 인프라의 원하는 최종 상태를 설명합니다. 그런 다음 Terraform은 해당 최종 상태에 도달하기 위한 계획을 생성하고, 사용자는 계획을 실행하여 인프라를 프로비저닝합니다.

**Terraform 사용의 이점:**
+ 테라폼은 플랫폼에 구애받지 않습니다. 모든 클라우드 서비스 공급자와 함께 사용할 수 있습니다. 기타 여러 클라우드 제공업체 전반에서 인프라를 구성, 테스트 AWS 및 배포할 수 있습니다. 조직에서 여러 클라우드 공급자를 사용하는 경우 Terraform은 클라우드 인프라를 관리하는 일관된 단일 통합 솔루션이 될 수 있습니다. 멀티 클라우드 지원에 대한 자세한 내용은 Terraform 웹 사이트의 [멀티 클라우드 프로비저닝을](https://www.terraform.io/use-cases/multi-cloud-deployment) 참조하십시오.
+ Terraform은 에이전트가 없습니다. 관리형 인프라에는 소프트웨어를 설치할 필요가 없습니다.
+ Terraform 모듈은 코드를 재사용하고 *반복하지 마세요 (DRY*) 원칙을 고수할 수 있는 강력한 방법입니다. 예를 들어, Amazon Elastic Compute Cloud (Amazon EC2) 인스턴스, Amazon Elastic Block Store (Amazon EBS) 볼륨 및 논리적으로 그룹화된 기타 리소스를 포함하는 애플리케이션에 대한 특정 구성이 있을 수 있습니다. 이 구성 또는 애플리케이션의 사본을 여러 개 생성해야 하는 경우 전체 코드를 여러 번 복사하는 대신 리소스를 Terraform 모듈로 패키징하고 모듈의 여러 인스턴스를 생성할 수 있습니다. 이러한 모듈은 구성을 구성, 캡슐화 및 재사용하는 데 도움이 될 수 있습니다. 또한 일관성을 제공하고 모범 사례를 보장합니다.
+ Terraform은 인프라의 [드리프트 (Terraform 블로그 게시물) 를 감지하고 관리할](https://www.hashicorp.com/blog/detecting-and-managing-drift-with-terraform) 수 있습니다. 예를 들어 Terraform에서 관리하는 리소스가 Terraform 외부에서 수정된 경우 Terraform CLI를 사용하여 드리프트를 감지하고 원하는 상태로 복원할 수 있습니다.

**테라폼 사용의 단점:**
+ 클라우드 공급자와 관련된 새 기능이나 새 리소스에 대한 지원이 제공되지 않을 수 있습니다.
+ Terraform은 다음과 같이 상태를 자동으로 관리하지 않습니다. AWS CloudFormation기본적으로 로컬 파일에 저장되지만 [Amazon S3 버킷이나](https://developer.hashicorp.com/terraform/language/settings/backends/s3) [Terraform Enterprise를](https://developer.hashicorp.com/terraform/enterprise) 통해 원격으로 저장할 수도 있습니다.
+ Terraform 상태에는 데이터베이스 암호와 같은 민감한 데이터가 포함될 수 있으며, 이로 인해 보안 문제가 발생할 수 있습니다. 상태 파일을 암호화하고, 원격으로 저장하고, 파일 버전 관리를 활성화하고, 읽기 및 쓰기 작업에 최소한의 권한을 사용하는 것이 가장 좋습니다. 자세한 내용은 [AWS Secrets Manager Terraform을 HashiCorp 사용하여 민감한 데이터 보안을](https://docs.aws.amazon.com/prescriptive-guidance/latest/secure-sensitive-data-secrets-manager-terraform/introduction.html) 참조하십시오.
+ [2023년 8월, Hashicorp는 Mozilla 퍼블릭 라이선스에 따라 더 이상 오픈 소스로 라이선스를 받지 않겠다고 발표했습니다.](https://www.mozilla.org/en-US/MPL/) [대신 이제는 비즈니스 소스 라이선스에 따라 라이선스가 부여되었습니다.](https://github.com/hashicorp/terraform/blob/b145fbcaadf0fa7d0e7040eac641d9aef2a26433/LICENSE)