Infrastructure Manager를 사용하여 인프라 배포

이 페이지에서는 Infrastructure Manager를 사용하여 Terraform 구성에 정의된Google Cloud 리소스 집합을 프로비저닝하는 방법을 설명합니다.

리소스를 프로비저닝하지 않고 배포를 미리 보려면 배포 미리보기를 참고하세요.

여러 프로젝트와 여러 위치에 배포할 수 있습니다. 서비스 계정에는 리소스가 배포된 리소스 및 프로젝트에 대한 권한이 필요합니다. 권한 목록은 IAM으로 액세스 제어를 참고하세요.

이 페이지에서는 Terraform에 익숙하다고 가정합니다. 자세한 내용은 Terraform 및 Infra Manager를 참고하세요.

시작하기 전에

  1. Infra Manager를 사용 설정합니다.
  2. 배포를 만드는 데 필요한 IAM 권한(roles/config.admin)이 있는지 확인합니다.
  3. 필요한 권한이 있는 서비스 계정이 있는지 확인합니다. 자세한 내용은 서비스 계정 구성을 참고하세요.
  4. 배포할 Terraform 구성을 식별합니다. 이 Terraform 구성이 제약조건을 준수하는지 확인합니다. 특히 구성에 민감한 정보가 포함되어 있지 않은지 확인합니다.
  5. 리소스를 구성하기 전에 배포를 미리 보려면 배포 미리보기를 참고하세요.
  6. 의도한 인프라와 연결된 제품에 대한 조직의 할당량을 확인합니다. 의도한 인프라가 배포에서 사용하는 제품에 대한 조직의 할당량을 초과하는 경우 배포 오류가 발생할 수 있습니다. 자세한 내용은 할당량 및 한도를 참고하세요.

구성과 관련된 권한 부여

Terraform 구성에 지정된 Google Cloud 리소스를 배포하려면 Infra Manager를 호출하는 데 사용하는 서비스 계정에 배포하는 리소스와 관련된 필수 권한이 필요합니다.

이러한 권한은 인프라 관리자 서비스를 사용하는 데 필요한 권한과 함께 적용됩니다.

Google Cloud 리소스에 권한을 부여하고 필요한 프로젝트에 액세스할 수 있는지 확인하는 방법에 관한 자세한 내용은 서비스 계정 구성을 참고하세요.

비공개 Git 저장소 및 호스트를 Cloud Build에 연결

비공개 Git 저장소에서 Terraform 구성을 배포하는 경우 Git 호스트와 저장소를 Cloud Build에 연결해야 합니다.

Terraform 구성을 사용하여 배포 만들기

Infra Manager를 사용하여 다음과 같은 여러 가지 방법으로 Terraform 구성을 배포할 수 있습니다.

  • 권장: Google Cloud 콘솔의 Infra Manager를 사용하여 소스를 선택하고, 배포 세부정보를 확인하고, Terraform 구성을 미리 보고 배포합니다. Google Cloud 콘솔의 Infra Manager를 사용하여 Cloud Storage 버킷, Git 저장소, 로컬 디렉터리에서 배포할 수 있습니다.
  • Google Cloud CLI의 Infra Manager를 사용하여 다음 위치에서 Terraform 구성을 배포합니다.
    • Cloud Storage 버킷
    • Git 저장소
    • 지역 디렉터리

Infra Manager에서 사용할 수 있는 Terraform 구성의 예시와 템플릿은 Google Cloud용 Terraform 모듈 및 청사진을 참고하세요.

선택한 워크플로가 있는 탭을 선택하여 배포 생성에 관한 자세한 내용을 확인하세요.

콘솔

이 섹션에서는 Google Cloud 콘솔에서 Infra Manager를 사용하여 Terraform 구성을 배포하는 방법을 설명합니다.

  1. Google Cloud 콘솔에서 인프라 관리자 페이지로 이동합니다.

    Infra Manager로 이동

  2. 만들기를 클릭하여 새 배포를 만듭니다.
  3. 배포 세부정보 페이지에서 배포의 초기 매개변수를 설정합니다.

    다음과 같이 바꿉니다.

    • 배포 ID: 배포 ID 필드에 배포에 대한 설명이 포함된 이름을 입력합니다. 이름 지정 제약조건에 관한 자세한 내용은 배포 이름 문서를 참고하세요.
    • 지역: 드롭다운에서 지원되는 지역을 선택합니다.
    • Terraform 버전: 드롭다운에서 지원되는 Terraform 버전을 선택합니다. 사용 가능한 Terraform 버전 목록은 선택한 리전을 기반으로 자동으로 채워집니다.
    • 서비스 계정: 기존 서비스 계정을 선택하거나 새 계정을 만듭니다. Infra Manager는 Terraform 구성에 설명된 인프라를 기반으로 권한을 자동으로 확인합니다. 서비스 계정 및 Infra Manager 사용에 관한 자세한 내용은 서비스 계정 구성을 참고하세요.
    • Terraform 구성 소스: 전환 버튼을 클릭하여 배포하려는 Terraform 구성의 소스로 Git 또는 Cloud Storage를 선택합니다.
      • Git의 경우 다음을 바꿉니다.
        • Git 저장소: 공개 또는 비공개 Git 저장소 URL, 브랜치 또는 태그를 제공합니다.
          비공개 Git 저장소를 제공하는 경우 호스트와 저장소를 Cloud Build에 연결했는지 확인하세요.
        • 선택사항: Git 디렉터리: Terraform 구성이 있는 Git 저장소 내의 디렉터리입니다.
        • 선택사항: Git 참조: 구성의 Git 참조입니다. 참조를 지정하지 않으면 Git 저장소의 기본 구성된 브랜치가 사용됩니다.
      • Cloud Storage 버킷의 경우 다음을 바꿉니다.
        • 소스: 구성이 저장된 스토리지 버킷의 이름입니다.

    계속을 클릭합니다.

  4. Terraform 세부정보 페이지에서 필드를 사용하여 Terraform 구성의 입력 값 목록을 채웁니다.

    값은 기본적으로 정의되지 않은 값을 포함하여 Terraform 구성의 모든 입력 값이 될 수 있습니다. 모든 입력 값이 Terraform 구성에서 기본적으로 정의된 경우 이러한 값은 선택사항입니다. 계속을 클릭합니다.

  5. 고급 세부정보 페이지에서 배포의 선택적 매개변수를 설정합니다.

    다음과 같이 바꿉니다.

    • 라벨: 라벨과 주석은 자유 형식 텍스트의 키-값 쌍입니다. 이를 사용하여 리소스와 연결된 임의의 정보를 연결할 수 있습니다. 자세한 내용은 주석 문서를 참고하세요.
    • 작업자 풀: Cloud Build 작업이 실행되는 작업자 풀 리소스입니다. 작업자 풀 형식은 projects/{project}/locations/{location}/workerPools/{workerPoolId}입니다.
    • 아티팩트 Cloud Storage 버킷: Cloud Storage의 Cloud Build 로그 및 아티팩트 위치입니다. 경로 형식은 gs://{bucket}/{folder}입니다.
  6. 배포 만들기를 클릭하여 Terraform 구성 배포를 시작합니다. 배포 페이지에 배포가 상태와 함께 목록에 추가됩니다.
  7. 배포에 관한 자세한 내용을 보려면 배포를 선택하여 배포 세부정보 페이지로 이동합니다.
  8. 완료되었습니다. Infra Manager를 사용하여 Terraform 구성을 배포했습니다.

gcloud CLI

이 섹션에서는 Cloud Storage 버킷에 저장된 Terraform 구성을 배포하는 방법을 설명합니다. 저장소 버킷을 사용하면 구성에 대한 액세스를 제어할 수 있습니다.

  1. Terraform 구성이 Cloud Storage 버킷에 있는지 확인합니다. 자세한 내용은 스토리지 버킷에 구성 업로드하기를 참고하세요.
  2. 스토리지 버킷이 Infra Manager를 실행하는 프로젝트와 다른 프로젝트에 있는 경우 Infra Manager의 서비스 계정에 버킷에 대한 읽기 권한이 있는지 확인해야 합니다. 자세한 내용은 서비스 계정 구성을 참고하세요.

    스토리지 버킷이 Infra Manager와 동일한 프로젝트에 있으면 버킷에 대한 읽기 권한이 이미 사용 설정되어 있습니다.

  3. Terraform 구성을 배포합니다.

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
다음과 같이 바꿉니다.
  • PROJECT_ID: 인프라 관리자가 실행되는 프로젝트 ID입니다.
  • LOCATION: Infra Manager가 실행되는 위치입니다. 유효한 위치 목록은 인프라 관리자 위치를 참고하세요.
  • DEPLOYMENT_ID: 지정된 배포 식별자입니다. 배포 식별자의 제약조건에 관한 자세한 내용은 배포 이름을 참고하세요.
  • SERVICE_ACCOUNT_PROJECT_ID는 서비스 계정의 프로젝트 ID입니다. 일반적으로 Infra Manager가 실행되는 프로젝트와 동일한 프로젝트입니다.
  • SERVICE_ACCOUNT: Infra Manager를 호출하는 데 사용하는 서비스 계정의 이름입니다.
  • BUCKET_NAME: 구성이 저장된 스토리지 버킷의 이름입니다.
  • OBJECT_NAME: 구성 파일의 객체 이름입니다. 이 객체는 디렉터리 또는 zip 파일일 수 있지만 Terraform 파일은 아닙니다. 객체 버전 관리를 사용하는 경우 객체의 세대 번호를 지정할 수도 있습니다. 자세한 내용은 버전 관리형 객체 사용을 참고하세요.

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

  • 선택사항: QUOTA_VALIDATION: 배포를 만들 때 Terraform 구성 파일의 리소스에 대한 할당량 유효성 검사가 사용 설정 또는 적용되는지 여부를 결정하는 값입니다. 가능한 값은 다음과 같습니다.
    • ENABLED: Terraform 구성 파일에서 리소스에 대한 컴퓨팅 할당량 유효성 검사를 사용 설정합니다. 할당량이 부족한 리소스에 대한 가시성을 제공합니다.
    • ENFORCED: Terraform 구성 파일에 정의된 인프라에 사용할 수 있는 할당량이 충분하지 않으면 배포가 실패하도록 할당량 유효성 검사를 적용합니다.

    QUOTA_VALIDATION가 정의되지 않으면 Terraform 구성 파일의 할당량 유효성 검사가 사용 중지됩니다. 기본값입니다. 할당량 유효성 검사는 제한된 Google Cloud 리소스에 적용됩니다. 자세한 내용은 할당량 및 제한을 참고하세요.

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

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

  • 선택사항:TERRAFORM_VERSION: Infra Manager에서 배포를 만들 때 사용할 Terraform 버전입니다. 지원되는 버전 목록은 지원되는 Terraform 버전을 참고하세요. 이 선택적 플래그를 삭제하면 지원되는 최신 Terraform 버전이 사용됩니다.
  • 선택사항: ANNOTATION_KEYANNOTATION_VALUE는 Infra Manager 배포에 연결할 수 있는 자유 형식 텍스트의 키-값 쌍을 나타냅니다. 주석 및 라벨의 사용 및 제약사항에 관한 자세한 내용은 주석 및 라벨을 참고하세요.

gcloud CLI

이 섹션에서는 Git 저장소에 저장된 Terraform 구성을 사용하는 방법을 설명합니다.

  1. Git이 설치되어 있는지 확인합니다.
  2. Terraform 구성이 비공개 Git 저장소에 저장된 경우 Git 호스트와 저장소가 Cloud Build에 연결되어 있는지 확인합니다.
  3. Terraform 구성을 배포합니다.

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
다음과 같이 바꿉니다.
  • PROJECT_ID: 인프라 관리자가 실행되는 프로젝트 ID입니다.
  • LOCATION: Infra Manager가 실행되는 위치입니다. 유효한 위치 목록은 인프라 관리자 위치를 참고하세요.
  • DEPLOYMENT_ID: 지정된 배포 식별자입니다. 배포 식별자의 제약조건에 관한 자세한 내용은 배포 이름을 참고하세요.
  • SERVICE_ACCOUNT_PROJECT_ID는 서비스 계정의 프로젝트 ID입니다. 일반적으로 Infra Manager가 실행되는 프로젝트와 동일한 프로젝트입니다.
  • SERVICE_ACCOUNT: Infra Manager를 호출하는 데 사용하는 서비스 계정의 이름입니다.
  • GIT_REPO: Git 저장소입니다.
  • DIRECTORY: Terraform 구성이 있는 디렉터리입니다.
  • 선택사항: REF: 구성의 Git 참조입니다. 참조는 선택사항입니다. 참조를 지정하지 않으면 Git 저장소의 기본 구성된 브랜치가 사용됩니다.
  • 선택사항: QUOTA_VALIDATION: 배포를 만들 때 Terraform 구성 파일의 리소스에 대한 할당량 유효성 검사가 사용 설정 또는 적용되는지 여부를 결정하는 값입니다. 가능한 값은 다음과 같습니다.
    • ENABLED: Terraform 구성 파일에서 리소스에 대한 컴퓨팅 할당량 유효성 검사를 사용 설정합니다. 할당량이 부족한 리소스에 대한 가시성을 제공합니다.
    • ENFORCED: Terraform 구성 파일에 정의된 인프라에 사용할 수 있는 할당량이 충분하지 않으면 배포가 실패하도록 할당량 유효성 검사를 적용합니다.

    QUOTA_VALIDATION가 정의되지 않으면 Terraform 구성 파일의 할당량 유효성 검사가 사용 중지됩니다. 기본값입니다. 할당량 유효성 검사는 제한된 Google Cloud 리소스에 적용됩니다. 자세한 내용은 할당량 및 제한을 참고하세요.

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

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

  • 선택사항:TERRAFORM_VERSION: Infra Manager에서 배포를 만들 때 사용할 Terraform 버전입니다. 지원되는 버전 목록은 지원되는 Terraform 버전을 참고하세요. 이 선택적 플래그를 삭제하면 지원되는 최신 Terraform 버전이 사용됩니다.
  • 선택사항: ANNOTATION_KEYANNOTATION_VALUE는 Infra Manager 배포에 연결할 수 있는 자유 형식 텍스트의 키-값 쌍을 나타냅니다. 주석 및 라벨의 사용 및 제약사항에 관한 자세한 내용은 주석 및 라벨을 참고하세요.

gcloud CLI

이 섹션에서는 로컬 머신에 저장된 Terraform 구성을 사용하는 방법을 설명합니다.

  1. Cloud Shell을 사용하는 경우 구성을 Cloud Shell에 업로드해야 합니다. 자세한 내용은 Cloud Shell로 파일 관리하기를 참고하세요.
  2. Terraform 구성을 배포합니다.

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
다음과 같이 바꿉니다.
  • PROJECT_ID: 인프라 관리자가 실행되는 프로젝트 ID입니다.
  • LOCATION: Infra Manager가 실행되는 위치입니다. 유효한 위치 목록은 인프라 관리자 위치를 참고하세요.
  • DEPLOYMENT_ID: 지정된 배포 식별자입니다. 배포 식별자의 제약조건에 관한 자세한 내용은 배포 이름을 참고하세요.
  • SERVICE_ACCOUNT_PROJECT_ID는 서비스 계정의 프로젝트 ID입니다. 일반적으로 Infra Manager가 실행되는 프로젝트와 동일한 프로젝트입니다.
  • SERVICE_ACCOUNT: Infra Manager를 호출하는 데 사용하는 서비스 계정의 이름입니다.
  • LOCAL_DIRECTORY: Terraform 구성을 저장하는 로컬 디렉터리입니다. Cloud Shell을 사용하는 경우 구성이 저장되는 Cloud Shell의 디렉터리입니다.
  • 선택사항: QUOTA_VALIDATION: 배포를 만들 때 Terraform 구성 파일의 리소스에 대한 할당량 유효성 검사가 사용 설정되거나 적용되는지 여부를 결정하는 값입니다. 가능한 값은 다음과 같습니다.
    • ENABLED: Terraform 구성 파일에서 리소스에 대한 컴퓨팅 할당량 유효성 검사를 사용 설정합니다. 할당량이 부족한 리소스에 대한 가시성을 제공합니다.
    • ENFORCED: Terraform 구성 파일에 정의된 인프라에 사용할 수 있는 할당량이 충분하지 않으면 배포가 실패하도록 할당량 유효성 검사를 적용합니다.

    QUOTA_VALIDATION가 정의되지 않으면 Terraform 구성 파일의 할당량 유효성 검사가 사용 중지됩니다. 기본값입니다. 할당량 유효성 검사는 제한된 Google Cloud 리소스에 적용됩니다. 자세한 내용은 할당량 및 제한을 참고하세요.

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

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

  • 선택사항:TERRAFORM_VERSION: Infra Manager에서 배포를 만들 때 사용할 Terraform 버전입니다. 지원되는 버전 목록은 지원되는 Terraform 버전을 참고하세요. 이 선택적 플래그를 삭제하면 지원되는 최신 Terraform 버전이 사용됩니다.
  • 선택사항: ANNOTATION_KEYANNOTATION_VALUE는 Infra Manager 배포에 연결할 수 있는 자유 형식 텍스트의 키-값 쌍을 나타냅니다. 주석 및 라벨의 사용 및 제약사항에 관한 자세한 내용은 주석 및 라벨을 참고하세요.

다음 단계