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를 입력한 후 종료를 클릭합니다.

다음 단계