HashiCorp Terraform은 클라우드 인프라를 프로비저닝하고 관리할 수 있게 해주는 코드형 인프라(IaC) 도구입니다. Terraform은 클라우드 제공업체 및 기타 API와 상호작용할 수 있는 제공업체라는 플러그인을 제공합니다. Google Cloud용 Terraform 제공업체를 사용하여 Cloud Build를 포함한 Google Cloud 리소스를 프로비저닝하고 관리할 수 있습니다.
Terraform 작동 방식
Terraform에는 선언적이고 구성 중심의 구문이 있으며, 이 구문을 사용하여 Google Cloud 프로젝트에서 프로비저닝하려는 인프라를 설명할 수 있습니다. 하나 이상의 Terraform 구성 파일에서 이 구성을 작성한 후 Terraform CLI를 사용하여 이 구성을 Cloud Build 리소스에 적용할 수 있습니다.
다음 단계에서는 Terraform의 작동 방식을 설명합니다.
- Terraform 구성 파일에서 프로비저닝할 인프라를 설명합니다. 인프라를 프로비저닝하는 방법을 설명하는 코드를 작성할 필요가 없습니다. Terraform이 인프라를 자동으로 프로비저닝합니다.
terraform plan
명령어 실행. 이 명령어는 구성을 평가하고 실행 계획을 생성합니다. 계획을 검토하고 필요에 따라 변경할 수 있습니다.-
terraform apply
명령어를 실행하여 다음 작업을 수행합니다.- 백그라운드에서 해당 Cloud Build API를 호출하여 실행 계획에 따라 인프라를 프로비저닝합니다.
- 구성 파일의 리소스를 실제 인프라의 리소스에 매핑하는 JSON 파일인 Terraform 상태 파일을 생성합니다. Terraform은 이 파일을 사용하여 인프라의 최신 상태를 기록하고 리소스를 생성, 업데이트, 삭제할 시기를 결정합니다.
-
terraform apply
를 실행하면 Terraform은 상태 파일의 매핑을 사용하여 기존 인프라를 코드와 비교하고 필요에 따라 업데이트합니다.- 리소스 객체가 구성 파일에 정의되어 있지만 상태 파일에 존재하지 않는 경우 Terraform이 객체를 생성합니다.
- 리소스 객체가 상태 파일에 있지만 구성 파일의 구성과 다른 경우 Terraform은 구성 파일과 일치하도록 리소스를 업데이트합니다.
- 상태 파일의 리소스 객체가 구성 파일과 일치하면 Terraform은 리소스를 변경하지 않은 상태로 둡니다.
Cloud Build용 Terraform 기반 가이드
다음 표에는 Cloud Build에 대한 모든 Terraform 기반 안내 가이드 및 튜토리얼이 나와 있습니다.
가이드 | 세부정보 |
---|---|
GitHub 저장소에 연결 | 이 가이드에서는 Terraform을 사용하여 GitHub 저장소를 Cloud Build에 연결하는 방법을 설명합니다. |
GitHub Enterprise 호스트에 연결 | 이 가이드에서는 Terraform을 사용하여 GitHub Enterprise 호스트를 Cloud Build에 연결하는 방법을 설명합니다. |
GitHub Enterprise 저장소에 연결 | 이 가이드에서는 Terraform을 사용하여 GitHub Enterprise 저장소를 Cloud Build에 연결하는 방법을 설명합니다. |
GitLab Enterprise Edition 호스트에 연결 | 이 가이드에서는 Terraform을 사용하여 GitLab Enterprise Edition 호스트를 Cloud Build에 연결하는 방법을 설명합니다. |
GitLab Enterprise Edition 저장소에 연결 | 이 가이드에서는 Terraform을 사용하여 GitLab Enterprise Edition 저장소를 Cloud Build에 연결하는 방법을 설명합니다. |
Bitbucket 데이터 센터 호스트에 연결 | 이 가이드에서는 Terraform을 사용하여 Bitbucket 데이터 센터 호스트를 Cloud Build에 연결하는 방법을 설명합니다. |
Bitbucket 데이터 센터 저장소에 연결 | 이 가이드에서는 Terraform을 사용하여 Bitbucket 데이터 센터 저장소를 Cloud Build에 연결하는 방법을 설명합니다. |
Bitbucket Cloud 호스트에 연결 | 이 가이드에서는 Terraform을 사용하여 Bitbucket Cloud 호스트를 Cloud Build에 연결하는 방법을 설명합니다. |
Bitbucket Cloud 저장소에 연결 | 이 가이드에서는 Terraform을 사용하여 Bitbucket Cloud 저장소를 Cloud Build에 연결하는 방법을 설명합니다. |
Compute Engine에 배포 | 이 가이드에서는 Cloud Build 및 Terraform을 사용하여 Compute Engine 관리형 인스턴스 그룹(MIG)에서 제로 다운타임 블루-그린 배포를 수행하는 방법을 설명합니다. |
Cloud Build용 Terraform 모듈 및 청사진
모듈 및 청사진을 사용하면 규모에 맞게 Google Cloud 리소스 프로비저닝 및 관리를 자동화할 수 있습니다. 모듈은 Terraform 리소스의 논리적 추상화를 만드는 재사용 가능한 Terraform 구성 파일 집합입니다. 청사진은 배포 및 재사용이 가능한 모듈의 패키지이며 특정 솔루션을 구현하고 문서화하는 정책입니다.
다음 표에서는 Cloud Build와 관련된 모든 모듈 및 청사진을 보여줍니다.
모듈 또는 청사진 | 세부정보 |
---|---|
안전한 CI/CD 파이프라인 | 이 모듈을 통해 Google Cloud 고객은 보안 CI/CD 파이프라인을 신속하게 배포하여 개발 초기부터 보안 문제 반영에 개괄적으로 설명된 많은 기능을 구현할 수 있습니다. |
terraform-google-bootstrap |
이 모듈은 Google Cloud 조직을 부트스트랩하여 Cloud Foundation Toolkit(CFT) 사용을 시작하는 데 필요한 모든 리소스와 권한을 만드는 데 도움을 줍니다. 기반 코드에 Cloud Build 및 Cloud Source Repositories를 사용하려는 사용자를 위해 이 모듈에는 필요한 모든 리소스를 부트스트랩하는 하위 모듈이 포함되어 있습니다. |
Cloud Build용 Terraform 리소스
리소스는 Terraform 언어의 기본 요소입니다. 각 리소스 블록은 가상 네트워크 또는 컴퓨팅 인스턴스와 같은 하나 이상의 인프라 객체를 설명합니다.
다음 표에는 Cloud Build에 사용할 수 있는 Terraform 리소스가 나와 있습니다.
Cloud Build 서비스 | Terraform 리소스 | 데이터 소스 |
---|---|---|
Cloud Build v1 | google_cloudbuild_trigger
|
|
Cloud Build v2 | google_cloudbuildv2_connection_iam_policy |
다음 단계
- Cloud Build용 Terraform 코드 샘플
- Google Cloud 기반 Terraform 문서
- HashiCorp의 Google Cloud 제공업체 문서
- Google Cloud용 코드형 인프라