배포 업데이트 미리보기

이 페이지에서는 Infrastructure Manager를 사용하여 Terraform 구성에 정의된 리소스의 배포를 미리 보는 방법을 설명합니다.

미리보기에는 특정 Terraform 구성을 실행하는 작업이 설명됩니다. 새 배포를 만들거나 배포를 업데이트하기 전에 배포를 미리 보고 프로비저닝할 리소스를 확인할 수 있습니다.

미리보기는 Terraform plan 명령어를 실행합니다. 이 페이지에서는 사용자가 Terraform에 익숙하다고 가정합니다. 자세한 내용은 Terraform 및 Infrastructure Manager를 참고하세요.

미리보기를 만들려면 Terraform 구성이 지원되는 Terraform 버전 중 하나와 호환되어야 합니다.

시작하기 전에

  1. Infra Manager를 사용 설정합니다.
  2. 미리보기를 만드는 데 필요한 IAM 권한(roles/config.admin)이 있는지 확인합니다.
  3. 필요한 권한이 있는 서비스 계정이 있는지 확인합니다. 자세한 내용은 서비스 계정 구성을 참고하세요.
  4. 미리 볼 Terraform 구성을 식별합니다. 이 Terraform 구성이 민감한 정보가 포함되지 않는 등 제약 조건을 준수하는지 확인합니다.

배포 업데이트 미리보기

배포를 업데이트하는 데 사용하는 Terraform 구성은 저장소 버킷이나 Git 저장소에 있을 수 있습니다.

이 Terraform 구성을 사용하여 업데이트를 미리 볼 수도 있습니다.

Cloud Storage 버킷에 저장된 Terraform 구성을 사용하여 미리보기

배포를 업데이트해도 일부 기존 리소스는 변경되지 않을 수 있습니다. 업데이트를 미리 보려면 프로비저닝 또는 삭제할 리소스와 수정할 계획이 없는 리소스를 확인하세요.

  1. 업데이트하려는 배포를 식별합니다.

  2. Terraform 구성이 Cloud Storage 버킷에 업로드되었는지 확인합니다. 자세한 내용은 스토리지 버킷에 구성 업로드를 참고하세요.

    저장소 버킷을 사용하면 구성에 대한 액세스를 제어할 수 있습니다. Git 저장소에 저장되거나 로컬 머신에 저장된 Terraform 구성을 배포할 수도 있습니다.

  3. 업데이트를 미리 보려면 다음 단계를 따르세요.

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
        --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
        --tf-version-constraint=TERRAFORM_VERSION
    

    다음과 같이 바꿉니다.

    • PROJECT_ID는 Infrastructure Manager가 실행되는 프로젝트 ID입니다.
    • LOCATION은 Infra Manager가 실행되는 위치입니다. 유효한 위치 목록은 인프라 관리자 위치를 참고하세요.
    • PREVIEW_ID는 지정한 미리보기 식별자입니다. 미리보기 식별자의 제약조건에 관한 자세한 내용은 미리보기 이름을 참고하세요.
    • SERVICE_ACCOUNT은 Infra Manager를 호출하는 데 사용하는 서비스 계정의 이름입니다.
    • SERVICE_ACCOUNT_PROJECT_ID는 서비스 계정의 프로젝트 ID입니다. 일반적으로 이 프로젝트는 인프라 관리자가 실행되는 프로젝트와 동일합니다.
    • DEPLOYMENT_ID는 업데이트하려는 배포의 배포 식별자입니다.
    • BUCKET_NAME는 구성이 저장된 스토리지 버킷의 이름입니다.
    • OBJECT_NAME은 구성 파일의 객체 이름입니다. 이 객체는 디렉터리 또는 zip 파일일 수 있지만 Terraform 파일은 아닙니다. 객체 버전 관리를 사용하는 경우 객체의 세대 번호를 지정할 수도 있습니다. 자세한 내용은 버전 관리형 객체 사용을 참고하세요.

      스토리지 버킷이 Terraform 구성의 루트 경로인 경우 OBJECT_NAME는 선택사항입니다.

    • INPUT_1_NAME=VALUEINPUT_2_NAME=VALUE: 기본적으로 정의되지 않은 값을 포함하여 Terraform 구성의 모든 입력 값입니다. 예를 들어 리소스를 배포하는 프로젝트를 project_id=my-project로 지정할 수 있습니다.

      모든 입력 값이 구성에서 기본적으로 정의된 경우 이 플래그는 선택사항입니다.

    • 선택사항: TERRAFORM_VERSION: Infra Manager가 배포를 만들 때 사용할 Terraform 버전입니다. 지원되는 버전 목록은 지원되는 Terraform 버전을 참고하세요. 이 선택적 플래그를 삭제하면 지원되는 최신 Terraform 버전이 사용됩니다.

    Terraform 구성, 변수, 서비스 계정과 같은 배포의 필드는 미리보기 명령어에서 새 값을 지정하지 않는 한 미리보기에 자동으로 병합됩니다.

이제 미리보기를 만들었으므로 결과를 내보내고 확인하여 배포 계획을 검토할 수 있습니다.

Git 저장소에 저장된 Terraform 구성을 사용하여 미리보기

배포를 업데이트해도 일부 기존 리소스는 변경되지 않을 수 있습니다. 업데이트를 미리 보려면 프로비저닝 또는 삭제할 리소스와 수정할 계획이 없는 리소스를 확인하세요.

  1. Terraform 구성이 비공개 Git 저장소에 저장되어 있고 아직 연결하지 않았다면 Cloud Build를 사용하여 GitHub 호스트GitHub 저장소에 연결하여 Infra Manager가 저장소에 액세스할 수 있도록 하세요.
  2. 배포를 업데이트하려면 다음 안내를 따르세요.

    gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \
        --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
        --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
        --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
    

    다음과 같이 바꿉니다.

    • PROJECT_ID는 Infrastructure Manager가 실행되는 프로젝트 ID입니다.
    • LOCATION은 Infra Manager가 실행되는 위치입니다. 유효한 위치 목록은 인프라 관리자 위치를 참고하세요.
    • PREVIEW_ID는 지정한 미리보기 식별자입니다. 미리보기 식별자의 제약조건에 관한 자세한 내용은 미리보기 이름을 참고하세요.
    • SERVICE_ACCOUNT은 Infra Manager를 호출하는 데 사용하는 서비스 계정의 이름입니다.
    • SERVICE_ACCOUNT_PROJECT_ID는 서비스 계정의 프로젝트 ID입니다. 일반적으로 이 프로젝트는 인프라 관리자가 실행되는 프로젝트와 동일합니다.
    • DEPLOYMENT_ID는 업데이트하려는 배포의 배포 식별자입니다.
    • GIT_REPO: Git 저장소입니다.
    • DIRECTORY: Terraform 구성이 있는 디렉터리입니다.
    • REF: 구성의 Git 참조입니다. 참조는 선택사항입니다. 참조를 지정하지 않으면 Git 저장소의 기본 구성된 브랜치가 사용됩니다.
    • INPUT_1_NAME=VALUEINPUT_2_NAME=VALUE: 기본적으로 정의되지 않은 값을 포함하여 Terraform 구성의 모든 입력 값입니다. 예를 들어 리소스를 배포하는 프로젝트를 project_id=my-project로 지정할 수 있습니다.

      모든 입력 값이 구성에서 기본적으로 정의된 경우 이 플래그는 선택사항입니다.

    • 선택사항: TERRAFORM_VERSION: Infra Manager가 배포를 만들 때 사용할 Terraform 버전입니다. 지원되는 버전 목록은 지원되는 Terraform 버전을 참고하세요. 이 선택적 플래그를 삭제하면 지원되는 최신 Terraform 버전이 사용됩니다.

Terraform 구성, 변수, 서비스 계정과 같은 배포의 필드는 미리보기 명령어에서 새 값을 지정하지 않는 한 미리보기에 자동으로 병합됩니다.

이제 미리보기를 만들었으므로 결과를 내보내고 확인하여 배포 계획을 검토할 수 있습니다.

다음 단계