Terraform으로 VPC 배포
Infrastructure Manager를 사용하여 Virtual Private Cloud (VPC)를 배포하는 방법을 알아봅니다.
이 빠른 시작에서는 공개 GitHub 저장소에 저장된 Terraform 구성을 사용합니다. 이 구성은 프로비저닝할 VPC를 정의합니다.
시작하기 전에
-
로그인하여 Google 계정을 사용하세요.
아직 계정이 없으면 새 계정을 등록하세요.
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
프로젝트를 만들거나 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
Infrastructure Manager API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면 역할 (
roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAMserviceusage.services.enable권한이 필요합니다. 역할 부여 방법 알아보기.gcloud services enable config.googleapis.com
-
인증을 설정합니다.
-
서비스 계정 만들기 IAM 역할
(
roles/iam.serviceAccountCreator) 및 프로젝트 IAM 관리자 역할 (roles/resourcemanager.projectIamAdmin)이 있는지 확인합니다. 역할 부여 방법 알아보기. -
서비스 계정을 만듭니다.
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAME을 서비스 계정 이름으로 바꿉니다. -
서비스 계정에
roles/config.agentIAM 역할을 부여합니다.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입니다.
-
서비스 계정 만들기 IAM 역할
(
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
프로젝트를 만들거나 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
Infrastructure Manager API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면 역할 (
roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAMserviceusage.services.enable권한이 필요합니다. 역할 부여 방법 알아보기.gcloud services enable config.googleapis.com
-
인증을 설정합니다.
-
서비스 계정 만들기 IAM 역할
(
roles/iam.serviceAccountCreator) 및 프로젝트 IAM 관리자 역할 (roles/resourcemanager.projectIamAdmin)이 있는지 확인합니다. 역할 부여 방법 알아보기. -
서비스 계정을 만듭니다.
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAME을 서비스 계정 이름으로 바꿉니다. -
서비스 계정에
roles/config.agentIAM 역할을 부여합니다.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입니다.
-
서비스 계정 만들기 IAM 역할
(
구성에서 리소스에 대한 권한 부여
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를 봅니다.
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 청사진 및 모듈