Terraform으로 VPC 배포

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

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

시작하기 전에

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Infrastructure Manager API:

    gcloud services enable config.googleapis.com
  7. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. Grant the roles/config.agent IAM role to the service account:

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

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Infrastructure Manager API:

    gcloud services enable config.googleapis.com
  13. Set up authentication:

    1. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    2. Grant the roles/config.agent IAM role to the service account:

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

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account

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

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를 사용하여 배포를 만듭니다. 즉, 인프라 관리자가 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를 입력한 후 종료를 클릭합니다.

다음 단계