Terraform으로 VPC 배포
인프라 관리자를 사용하여 가상 프라이빗 클라우드 (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를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법 알아보기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를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법 알아보기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 역할(
구성의 리소스에 대한 권한 부여
인프라 관리자를 실행하는 데 필요한 권한을 부여했지만 배포하는 구성에 설명된 리소스에 특정된 권한도 부여해야 합니다.
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 청사진 및 모듈을 참고하세요.