이 페이지에서는 Infrastructure Manager를 사용하여 Terraform 구성에 정의된 리소스의 배포를 미리 보는 방법을 설명합니다.
미리보기는 특정 Terraform 구성을 실행하는 작업을 설명합니다. 새 배포를 만들거나 배포를 업데이트하기 전에 배포를 미리 보고 프로비저닝할 계획인 리소스를 확인할 수 있습니다.
미리보기는 Terraform plan 명령어를 실행합니다. 이 페이지에서는 Terraform에 익숙하다고 가정합니다. 자세한 내용은
Terraform 및 Infrastructure Manager를 참조하세요.
미리보기를 만들려면 Terraform 구성이 지원되는 Terraform 버전 중 하나와 호환되어야 합니다.
시작하기 전에
- Infra Manager를 사용 설정합니다.
- 미리보기를 만드는 데 필요한 Identity and Access Management 권한(
roles/config.admin)이 있는지 확인합니다. - 필요한 권한이 있는 서비스 계정이 있는지 확인합니다. 자세한 내용은 서비스 계정 구성을 참조하세요.
- 미리 볼 Terraform 구성을 식별합니다. 이 Terraform 구성이 제약 조건을 준수하는지 확인합니다. 구성에 민감한 정보가 포함되어 있지 않다는 점을 포함합니다.
Terraform 구성을 스토리지 버킷에 저장하려면 Terraform 구성이 Cloud Storage 버킷에 업로드되어 있는지 확인합니다. 자세한 내용은 스토리지 버킷에 구성 업로드 를 참조하세요.
스토리지 버킷을 사용하면 구성에 대한 액세스를 제어할 수 있습니다. Git 저장소에 저장되거나 로컬 머신에 저장된 Terraform 구성을 배포할 수도 있습니다.
새 배포 미리보기
미리 보는 Terraform 구성은 스토리지 버킷 또는 Git 저장소에 있을 수 있습니다.
Cloud Storage 버킷에 저장된 Terraform 구성을 사용하여 미리보기
Terraform 구성이 Cloud Storage 버킷에 업로드되어 있는지 확인합니다. 자세한 내용은 스토리지 버킷에 구성 업로드 를 참조하세요.
스토리지 버킷을 사용하면 구성에 대한 액세스를 제어할 수 있습니다. Git 저장소에 저장되거나 로컬 머신에 저장된 Terraform 구성을 배포할 수도 있습니다.
업데이트를 미리 보려면 다음 안내를 따르세요.
gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --gcs-source gs://BUCKET_NAME/OBJECT_NAME \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" --provider-source=SERVICE_MAINTAINED다음을 바꿉니다.
- PROJECT_ID는 Infrastructure Manager가 실행되는 프로젝트 ID입니다.
- LOCATION은 Infra Manager 가 실행되는 위치입니다. 유효한 위치 목록은 Infrastructure Manager 위치 를 참조하세요.
- PREVIEW_ID는 사용자가 지정하는 미리보기 식별자입니다. 미리보기 식별자의 제약 조건에 대한 자세한 내용은 미리보기 이름 을 참조하세요.
- SERVICE_ACCOUNT는 Infra Manager를 호출하는 데 사용하는 서비스 계정의 이름입니다.
- SERVICE_ACCOUNT_PROJECT_ID는 서비스 계정의 프로젝트 ID입니다. 일반적으로 Infra Manager가 실행되는 프로젝트와 동일합니다.
- BUCKET_NAME은 구성이 저장된 스토리지 버킷의 이름입니다.
OBJECT_NAME은 구성 파일의 객체 이름입니다. 이 객체는 디렉터리 또는 ZIP 파일일 수 있지만 Terraform 파일은 불가능합니다. 객체 버전 관리를 사용하는 중이라면 객체의 세대 번호를 지정할 수도 있습니다. 자세한 내용은 버전 관리형 객체 사용을 참조하세요.
스토리지 버킷이 Terraform 구성의 루트 경로인 경우, OBJECT_NAME은 선택사항입니다.
INPUT_1_NAME=VALUE 및 INPUT_2_NAME=VALUE: 기본적으로 정의되지 않은 값을 포함하여 Terraform 구성의 모든 입력값입니다. 예를 들어 리소스를 배포하는 프로젝트를
project_id=my-project로 지정할 수 있습니다.모든 입력값이 구성에서 기본적으로 정의된 경우 이 플래그는 선택사항입니다.
선택사항: TERRAFORM_VERSION: Infra Manager에서 배포를 만드는 데 사용할 Terraform 버전입니다. 지원되는 버전 목록은 지원되는 Terraform 버전 을 참조하세요. 이 선택적 플래그를 삭제하면 최신 지원 버전의 Terraform이 사용됩니다.
선택사항: ANNOTATION_KEY 및 ANNOTATION_VALUE 는 Infra Manager 배포에 연결할 수 있는 자유 형식 텍스트의 키-값 쌍을 나타냅니다. 주석 및 라벨의 사용 및 제약 조건에 대한 자세한 내용은 주석 및 라벨을 참조하세요.
- 선택사항: PROVIDER_SOURCE: 배포에서 사용할 Google Cloud 용 Terraform 제공업체를 결정합니다. Infra Manager에서 유지관리하는 Terraform 제공업체를 사용하려면
SERVICE_MAINTAINED로 설정합니다. HashiCorp에서 유지관리하는 Terraform 제공업체를 사용하려면 이 필드를 생략하세요. 자세한 내용은 Google Cloud용 Terraform 제공업체 사용을 참고하세요.
미리보기 명령어에서 새 값을 지정하지 않는 한 Terraform 구성, 변수, 서비스 계정과 같은 배포의 필드는 미리보기로 자동 병합됩니다.
이제 미리보기를 만들었으므로 결과를 내보내고 확인하여 배포 계획을 검토할 수 있습니다.
Git 저장소에 저장된 Terraform 구성을 사용하여 미리보기
배포를 업데이트할 때 일부 기존 리소스가 변경되지 않을 수 있습니다. 업데이트를 미리 보면 프로비저닝 또는 삭제할 계획인 리소스와 수정할 계획이 없는 리소스가 표시됩니다.
Git 저장소에 저장된 배포를 업데이트하려면 다음 안내를 따르세요.
비공개 Git 저장소를 사용하는 경우 Cloud Build를 사용하여 GitHub 호스트 및 GitHub 저장소에 연결하여 Infra Manager가 저장소에 액세스할 수 있도록 합니다.
배포를 미리 보려면 다음 안내를 따르세요.
gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --git-source-repo="GIT_REPO" \ --git-source-directory="DIRECTORY" \ --git-source-ref="REF" \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION \ --annotations="ANNOTATION_KEY=ANNOTATION_VALUE" --provider-source=SERVICE_MAINTAINED
다음을 바꿉니다.
- PROJECT_ID는 Infrastructure Manager가 실행되는 프로젝트 ID입니다.
- LOCATION은 Infra Manager 가 실행되는 위치입니다. 유효한 위치 목록은 Infrastructure Manager 위치 를 참조하세요.
- PREVIEW_ID는 사용자가 지정하는 미리보기 식별자입니다. 미리보기 식별자의 제약 조건에 대한 자세한 내용은 미리보기 이름 을 참조하세요.
- SERVICE_ACCOUNT는 Infra Manager를 호출하는 데 사용하는 서비스 계정의 이름입니다.
- SERVICE_ACCOUNT_PROJECT_ID는 서비스 계정의 프로젝트 ID입니다. 일반적으로 Infra Manager가 실행되는 프로젝트와 동일합니다.
- GIT_REPO: Git 저장소입니다.
- DIRECTORY: Terraform 구성이 있는 디렉터리입니다.
- REF: 구성의 Git 참조입니다. 참조는 선택사항입니다. 참조를 지정하지 않으면 Git 저장소의 기본 구성된 브랜치가 사용됩니다.
INPUT_1_NAME=VALUE 및 INPUT_2_NAME=VALUE: 기본적으로 정의되지 않은 값을 포함하여 Terraform 구성의 모든 입력값입니다. 예를 들어 리소스를 배포하는 프로젝트를
project_id=my-project로 지정할 수 있습니다.모든 입력값이 구성에서 기본적으로 정의된 경우 이 플래그는 선택사항입니다.
선택사항: TERRAFORM_VERSION: Infra Manager에서 배포를 만드는 데 사용할 Terraform 버전입니다. 지원되는 버전 목록은 지원되는 Terraform 버전 을 참조하세요. 이 선택적 플래그를 삭제하면 최신 지원 버전의 Terraform이 사용됩니다.
선택사항: ANNOTATION_KEY 및 ANNOTATION_VALUE 는 Infra Manager 배포에 연결할 수 있는 자유 형식 텍스트의 키-값 쌍을 나타냅니다. 주석 및 라벨의 사용 및 제약 조건에 대한 자세한 내용은 주석 및 라벨을 참조하세요.
- 선택사항: PROVIDER_SOURCE: 배포에서 사용할 Google Cloud 용 Terraform 제공업체를 결정합니다. Infra Manager에서 유지관리하는 Terraform 제공업체를 사용하려면
SERVICE_MAINTAINED로 설정합니다. HashiCorp에서 유지관리하는 Terraform 제공업체를 사용하려면 이 필드를 생략하세요. 자세한 내용은 Google Cloud용 Terraform 제공업체 사용을 참고하세요.
미리보기 명령어에서 새 값을 지정하지 않는 한 Terraform 구성, 변수, 서비스 계정과 같은 배포의 필드는 미리보기로 자동 병합됩니다.
이제 미리보기를 만들었으므로 결과를 내보내고 확인하여 배포 계획을 검토할 수 있습니다.
배포를 미리 본 후 배포를 만들어 리소스를 프로비저닝할 수 있습니다. 자세한 내용은 리소스 배포를 참조하세요.
다음 단계
- 미리보기 결과 내보내기 및 보기
- Infra Manager를 사용하여 리소스 배포
- 배포 자동화
- Infra Manager를 사용하여 Terraform 자세히 알아보기.