Terraform으로 VPC 배포
Infrastructure Manager를 사용하여 Virtual Private Cloud (VPC)를 배포하는 방법을 알아봅니다.
이 빠른 시작에서는 공개 GitHub 저장소에 저장된 Terraform 구성을 사용합니다. 이 구성은 프로비저닝할 VPC를 정의합니다.
시작하기 전에
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Infrastructure Manager API:
gcloud services enable config.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
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 accountPROJECT_ID
: the project ID where you created the service account
-
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Infrastructure Manager API:
gcloud services enable config.googleapis.com
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
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 accountPROJECT_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를 확인합니다.
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 프로젝트에 솔루션을 배포했고 프로젝트가 더 이상 없으면 다음 단계에 따라 이를 삭제합니다.
- Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.
- 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
- 프롬프트에서 프로젝트 ID를 입력한 후 종료를 클릭합니다.
다음 단계
- Infra Manager에 대해 자세히 알아보려면 Infra Manager 작동 방식을 참고하세요.
- Infra Manager 및 Terraform에 대해 자세히 알아보세요.
- 배포를 업데이트합니다.
- 배포 자동화
- Google Cloud와 함께 사용할 수 있는 구성 및 모듈 세트는 Google Cloud용 Terraform 청사진 및 모듈을 참고하세요.