Terraform으로 Google Cloud 리소스를 프로비저닝하기 위한 권장사항은 Google에서 유지보수되는 Cloud Foundation Toolkit 모듈에 통합되어 있습니다. 이 문서에서는 이러한 권장사항 중 일부를 반복해서 설명합니다.
이 가이드는 Terraform 소개 내용이 아닙니다. Google Cloud에서 Terraform 사용에 대한 소개는 정보는 Terraform 시작하기를 참조하세요.
가상 머신 이미지 만들기
일반적으로 Packer와 같은 도구를 사용하여 가상 머신을 생성하는 것이 좋습니다. 그러면 Terraform이 미리 만든 이미지를 사용하여 머신을 실행하기만 하면 됩니다.
미리 만든 이미지를 사용할 수 없으면 Terraform이 provisioner
블록을 사용해서 새 가상 머신을 구성 관리 도구로 전달할 수 있습니다. 이 방법은 가급적 사용을 피하고 최후의 수단으로만 사용하는 것이 좋습니다.
인스턴스와 연관된 오래된 상태를 삭제하기 위해서는 해체 논리가 필요한 프로비저닝 도구에서 when = destroy
가 포함된 provisioner
블록을 사용해야 합니다.
Terraform은 인스턴스 메타데이터와 함께 구성 관리에 VM 구성 정보를 제공해야 합니다.
Identity and Access Management 관리
Terraform과 IAM 연관을 프로비저닝할 때는 여러 리소스를 사용할 수 있습니다.
google_*_iam_policy
(예:google_project_iam_policy
)google_*_iam_binding
(예:google_project_iam_binding
)google_*_iam_member
(예:google_project_iam_member
)
google_*_iam_policy
및 google_*_iam_binding
은 Terraform 리소스가 관련 리소스에 할당할 수 있는 권한에 대해 유일한 신뢰 소스로 사용되는 권한 있는 IAM 연관을 만듭니다.
Terraform 외부에서 권한이 변경되면 다음 실행 시 Terraform이 모든 권한을 덮어써서 구성에 정의된 대로 정책을 제공합니다. 특정 Terraform 구성으로 전적으로 관리되는 리소스의 경우에는 이 방식이 적합할 수 있습니다. 하지만 Google Cloud에서 자동으로 관리되는 역할이 삭제되어 일부 서비스 기능이 중단될 수 있습니다.
이를 방지하기 위해서는 google_*_iam_member
리소스를 직접 사용하거나 Google의 IAM 모듈을 사용하는 것이 좋습니다.
다음 단계
- 버전 제어 권장사항 알아보기
- Terraform 작업 권장사항 알아보기