Terraform으로 VPC 배포

Infrastructure Manager를 사용하여 Virtual Private Cloud (VPC)를 배포하는 방법을 알아봅니다.

이 빠른 시작에서는 공개 GitHub 저장소에 저장된 Terraform 구성을 사용합니다. 이 구성은 프로비저닝할 VPC를 정의합니다.

시작하기 전에

  1. 로그인하여 Google 계정을 사용하세요.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Google Cloud CLI를 설치합니다.

  3. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  4. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  5. 프로젝트를 만들거나 Google Cloud 선택합니다.

    프로젝트를 선택하거나 만드는 데 필요한 역할

    • 프로젝트 선택: 프로젝트를 선택하는 데 특정 IAM 역할이 필요하지 않습니다. 역할을 부여받은 프로젝트를 선택할 수 있습니다.
    • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할 (roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기.
    • 프로젝트 만들기: Google Cloud

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID를 프로젝트 이름으로 바꿉니다. Google Cloud

  6. 프로젝트에 결제가 사용 설정되어 있는지 확인합니다 Google Cloud .

  7. Infrastructure Manager API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 역할 (roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAM serviceusage.services.enable 권한이 필요합니다. 역할 부여 방법 알아보기.

    gcloud services enable config.googleapis.com
  8. 인증을 설정합니다.

    1. 서비스 계정 만들기 IAM 역할 (roles/iam.serviceAccountCreator) 및 프로젝트 IAM 관리자 역할 (roles/resourcemanager.projectIamAdmin)이 있는지 확인합니다. 역할 부여 방법 알아보기.
    2. 서비스 계정을 만듭니다.

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      SERVICE_ACCOUNT_NAME을 서비스 계정 이름으로 바꿉니다.

    3. 서비스 계정에 roles/config.agent IAM 역할을 부여합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      다음을 바꿉니다.

      • SERVICE_ACCOUNT_NAME: 서비스 계정의 이름입니다.
      • PROJECT_ID: 서비스 계정을 만든 프로젝트 ID입니다.
  9. Google Cloud CLI를 설치합니다.

  10. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  11. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  12. 프로젝트를 만들거나 Google Cloud 선택합니다.

    프로젝트를 선택하거나 만드는 데 필요한 역할

    • 프로젝트 선택: 프로젝트를 선택하는 데 특정 IAM 역할이 필요하지 않습니다. 역할을 부여받은 프로젝트를 선택할 수 있습니다.
    • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할 (roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기.
    • 프로젝트 만들기: Google Cloud

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID를 프로젝트 이름으로 바꿉니다. Google Cloud

  13. 프로젝트에 결제가 사용 설정되어 있는지 확인합니다 Google Cloud .

  14. Infrastructure Manager API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 역할 (roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAM serviceusage.services.enable 권한이 필요합니다. 역할 부여 방법 알아보기.

    gcloud services enable config.googleapis.com
  15. 인증을 설정합니다.

    1. 서비스 계정 만들기 IAM 역할 (roles/iam.serviceAccountCreator) 및 프로젝트 IAM 관리자 역할 (roles/resourcemanager.projectIamAdmin)이 있는지 확인합니다. 역할 부여 방법 알아보기.
    2. 서비스 계정을 만듭니다.

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      SERVICE_ACCOUNT_NAME을 서비스 계정 이름으로 바꿉니다.

    3. 서비스 계정에 roles/config.agent IAM 역할을 부여합니다.

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      다음을 바꿉니다.

      • SERVICE_ACCOUNT_NAME: 서비스 계정의 이름입니다.
      • PROJECT_ID: 서비스 계정을 만든 프로젝트 ID입니다.

구성에서 리소스에 대한 권한 부여

Infra Manager를 실행하는 데 필요한 권한을 부여했지만 배포하는 구성에 설명된 리소스와 관련된 권한도 부여해야 합니다.

Terraform 구성에 정의된 리소스인 VPC에 대한 권한을 부여합니다.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/compute.networkAdmin

다음을 바꿉니다.

  • SERVICE_ACCOUNT_NAME: 서비스 계정의 이름입니다.
  • PROJECT_ID: 프로젝트 ID입니다.

배포 미리보기

배포를 만들기 전에 배포 미리보기를 만들 수 있습니다. 이 미리보기를 사용하여 프로비저닝할 리소스를 확인할 수 있습니다.

다음 명령어에는 기본값이 없는 4개의 값이 채워져 있습니다. 이러한 값은 프로젝트 ID, 서비스 계정 이름, 위치 us-central1, 만들려는 네트워크의 이름 quickstart-vpc입니다.

미리보기를 만들려면 다음 명령어를 사용합니다.

    gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/quickstart-preview \
        --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
        --git-source-directory=modules/vpc \
        --git-source-ref=main \
        --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

미리보기를 만든 후 미리보기 결과를 검토할 수 있습니다. 이 빠른 시작에서는 이 단계를 건너뛰지만 자세한 내용을 보려면 미리보기 결과 내보내기 및 보기 를 참조하세요.

배포 만들기

Infra Manager를 사용하여 배포를 만듭니다. 즉, Infra Manager는 Terraform 구성에 정의된 리소스를 프로비저닝합니다.

이 빠른 시작의 구성에는 기본값이 없는 4개의 값이 있습니다. 다음 명령어는 프로젝트 ID, 서비스 계정 이름, 위치 us-central1, 만들려는 네트워크의 이름 quickstart-vpc와 같은 값을 추가합니다.

gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment \
    --service-account=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
    --git-source-directory=modules/vpc \
    --git-source-ref=main \
    --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

배포가 완료되면 다음이 표시됩니다.

Creating the deployment...done

이제 VPC가 구성에 설명된 대로 생성되고 구성됩니다.

Cloud Build에서 빌드 결과 보기

Infra Manager에서 배포를 만드는 데 사용한 Cloud Build 작업을 보려면 콘솔에서 빌드 기록 페이지를 엽니다. Google Cloud

빌드 기록 페이지 열기

배포 상태 보기

이제 배포가 완료되었으므로 배포에 대한 설명을 보고 상태를 비롯한 정보를 검토할 수 있습니다.

배포에 대한 설명을 봅니다.

gcloud infra-manager deployments describe projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

출력에는 배포 타임스탬프, 최신 버전 이름, 상태를 비롯한 배포에 대한 세부정보가 포함됩니다.

상태의 경우 ACTIVE가 표시됩니다.

프로비저닝된 VPC에 대한 세부정보 보기

프로비저닝된 VPC에 대한 세부정보를 봅니다.

gcloud infra-manager resources list --revision=projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment/revisions/REVISION_ID

REVISION_ID를 최신 버전의 ID로 바꿉니다. 여러 번 배포하지 않은 경우 이 ID는 r-0입니다. 이전 섹션의 배포 설명에서 최신 버전의 ID를 확인할 수 있습니다.

콘솔에서 VPC 보기

콘솔에서 VPC를 봅니다.

VPC 네트워크로 이동

quickstart-vpc라는 VPC가 표시됩니다. Infra Manager에서 프로비저닝한 VPC입니다.

삭제

이 페이지에서 사용한 리소스 비용이 계정에 청구되지 않도록 하려면 더 이상 필요하지 않은 리소스를 삭제해야 합니다. Google Cloud

VPC 삭제

배포에 대한 VPC 및 메타데이터를 삭제합니다.

gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

선택사항: 프로젝트 삭제

새 Google Cloud 프로젝트에 솔루션을 배포했고 프로젝트가 더 이상 없으면 다음 단계에 따라 이를 삭제합니다.

  1. 콘솔에서 리소스 관리 페이지로 이동합니다. Google Cloud

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 프롬프트에서 프로젝트 ID를 입력한 후 종료 를 클릭합니다.

다음 단계