App Lifecycle Manager 테넌트를 사용하면 배포된 단위를 구성하고 리소스를 별도의 테넌트 프로젝트에 배포하여 인프라를 격리하고 관리할 수 있습니다.
테넌트 및 테넌트 프로젝트에 대한 개요는 테넌트 및 테넌트 프로젝트를 참조하세요.
시작하기 전에
테넌트 프로젝트 또는 리소스를 만들기 전에 다음을 수행합니다.
- 프로듀서 프로젝트에서 Terraform 구성, Artifact Registry 저장소, SaaS 애플리케이션이 포함된 아티팩트를 만듭니다. 청사진을 만들고 업로드하는 방법은 청사진 만들기 및 업로드를 참조하세요. SaaS 제품을 설정하는 방법은 빠른 시작: App Lifecycle Manager로 애플리케이션 배포를 참조하세요.
App Lifecycle Manager에 필요한 API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할(roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할(roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할 부여 방법 알아보기필요한 서비스 계정이 생성되었고 필요한 Identity and Access Management 역할이 프로듀서 프로젝트에 부여되었는지 확인합니다. 여기에는 사용자 생성 서비스 계정과 제작자 프로젝트의
service-PROJECT_NUMBER@gcp-sa-saasservicemgmt.서비스 에이전트에 부여된 역할이 포함됩니다. 여기서PROJECT_NUMBER는 제작자 프로젝트의 프로젝트 번호입니다.
테넌트 프로젝트 설정
테넌트의 리소스를 별도의 프로젝트에 프로비저닝하면 리소스, IAM 정책, 할당량, 네트워크 구성이 각 테넌트에 대해 분리되므로 한 테넌트의 위반 또는 구성 오류가 다른 테넌트에 영향을 미칠 가능성이 줄어듭니다.
필요한 사항은 다음과 같습니다.
- 프로듀서 프로젝트 1개
테넌트마다 테넌트 프로젝트 하나
콘솔
Google Cloud 콘솔을 사용하여 테넌트 및 프로듀서 프로젝트를 설정하려면 다음 안내를 따르세요.
- 각 테넌트에 대해 제작자 프로젝트와 테넌트 프로젝트를 만듭니다.
- 테넌트 및 프로듀서 프로젝트에서 결제를 사용 설정합니다.
테넌트 프로젝트에서 App Lifecycle Manager에 필요한 API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할(roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할(roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할 부여 방법 알아보기테넌트 프로젝트에 필요한 권한이 있는 작동 서비스 계정이 있는지 확인합니다.
자세한 내용은 App Lifecycle Manager 서비스 계정을 참조하세요.
프로듀서 및 테넌트 프로젝트에 대한 결제를 만들고 사용 설정한 후 테넌트 리소스를 만들고 단위를 테넌트와 연결할 수 있습니다.
gcloud
Google Cloud CLI를 사용하여 프로듀서 및 테넌트 프로젝트를 설정하려면 다음 안내를 따르세요.
각 테넌트에 대해 프로듀서 프로젝트와 테넌트 프로젝트를 만듭니다.
gcloud projects create \ PRODUCER_PROJECT_ID \ --name="SaaS producer project" gcloud projects create \ TENANT_PROJECT_ID \ --name="SaaS tenant A project"다음을 바꿉니다.
PRODUCER_PROJECT_ID: 프로듀서 프로젝트 IDTENANT_PROJECT_ID: 테넌트 프로젝트 ID
테넌트 및 프로듀서 프로젝트에 결제를 사용 설정합니다.
gcloud billing projects link \ PRODUCER_PROJECT_ID \ --billing-account=BILLING_ACCOUNT_ID gcloud billing projects link \ TENANT_PROJECT_ID \ --billing-account=BILLING_ACCOUNT_ID다음을 바꿉니다.
BILLING_ACCOUNT_ID: 지정된 프로젝트와 연결할 결제 계정의 ID
테넌트 프로젝트에서 App Lifecycle Manager에 필요한 API를 사용 설정합니다.
gcloud services enable \ saasservicemgmt.googleapis.com \ artifactregistry.googleapis.com \ config.googleapis.com \ developerconnect.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ --project=TENANT_PROJECT_ID각 테넌트 프로젝트에 필요한 IAM 역할을 작동 서비스 계정에 부여합니다.
gcloud projects add-iam-policy-binding \ TENANT_PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT_ID@PRODUCER_PROJECT_ID.' \ --role=ROLE다음을 바꿉니다.
SERVICE_ACCOUNT_ID: 작동 서비스 계정의 IDROLE: 부여할 IAM 역할(예:roles/compute.admin)
지정된 서비스 계정에 부여할 각 역할에 대해
gcloud projects add-iam-policy-binding를 실행합니다.
프로듀서 및 테넌트 프로젝트에 대한 결제를 만들고 사용 설정한 후 테넌트 리소스를 만들고 단위를 테넌트와 연결할 수 있습니다.
테넌트 리소스 만들기
SaaS 제품에서 고객을 나타내는 테넌트 리소스를 만듭니다.
Google Cloud 콘솔에서 App Lifecycle Manager > 테넌트로 이동합니다.
만들기를 클릭합니다.
테넌트 이름 필드에 테넌트 리소스 이름을 입력합니다.
선택사항: 소비자 리소스 필드에 통합을 위한 소비자 정의 설정이 있는 소비자 리소스를 입력합니다.
SaaS 제품 목록에서 테넌트를 연결할 SaaS 제품을 선택합니다.
리전 목록에서 테넌트 메타데이터가 저장되는 리전을 선택합니다.
선택사항: 라벨 추가를 클릭하여 테넌트에 라벨을 키-값 쌍으로 추가합니다.
만들기를 클릭합니다.
테넌트와 단위 연결
테넌트를 만들고 단위를 배포한 후 서로 연결할 수 있습니다. 이 연결은 주로 어떤 단위가 어떤 테넌트에 속하는지 정리하는 데 도움이 되는 조직 태그 역할을 합니다.
단위 배포에 대한 자세한 내용은 SaaS 제품 배포를 참조하세요.
단위를 테넌트에 연결하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 App Lifecycle Manager > 테넌트로 이동합니다.
단위와 연결할 테넌트의 이름을 클릭합니다.
수정을 클릭합니다.
테넌트에 포함할 단위 선택에서 단위 추가를 클릭합니다.
단위 목록에서 이 테넌트와 연결할 단위를 선택합니다.
완료를 클릭합니다.
저장을 클릭합니다.
선택한 단위가 표시된 테넌트와 연결됩니다.
테넌트 프로젝트 변수를 사용하여 새 유닛 프로비저닝
테넌트와 연결된 단위를 프로비저닝할 때는 tenant_project_id 및 tenant_project_number 변수를 제공해야 합니다.
Google Cloud 콘솔에서 App Lifecycle Manager > 단위로 이동합니다.
단위 종류와 연결된 새 단위를 만듭니다.
프로비저닝을 클릭합니다.
테넌시 유닛에 프로비저닝할 출시 버전을 선택합니다.
작동 서비스 계정의 서비스 계정 목록에서 테넌트 프로젝트에서 역할을 부여한 서비스 계정을 선택합니다. 최소 권한의 원칙을 따르고 관리 중인 리소스에 필요한 역할만 부여합니다.
기타 입력 변수 섹션에서 다음을 수행합니다.
- 테넌트 프로젝트 변수 추가를 클릭한 다음 테넌트 프로젝트를 선택하여
tenant_project_id및tenant_project_number변수를 채웁니다. - 선택사항: 입력 변수 추가를 클릭하여 Terraform 구성에 정의된 다른 입력 변수를 입력합니다.
- 테넌트 프로젝트 변수 추가를 클릭한 다음 테넌트 프로젝트를 선택하여
프로비저닝을 클릭합니다.
App Lifecycle Manager는 지정된 작동 서비스 계정을 사용하여 Infrastructure Manager를 트리거합니다. Infrastructure Manager는 tenant_project_id 및 tenant_project_number 변수를 읽고 해당 테넌트 프로젝트 내에서 Terraform 리소스를 프로비저닝합니다.
새 출시 버전으로 단위 다시 프로비저닝
새 출시 버전으로 기존 단위를 다시 프로비저닝할 때는 tenant_project_id 및 tenant_project_number 변수를 제공해야 합니다.
Google Cloud 콘솔에서 App Lifecycle Manager > 단위로 이동합니다.
단위 종류와 연결된 단위를 선택합니다.
업그레이드를 클릭합니다.
업데이트된 Terraform 구성으로 만든 출시 버전을 선택합니다.
작동 서비스 계정의 서비스 계정 목록에서 테넌트 프로젝트에서 역할을 부여한 서비스 계정을 선택합니다. 최소 권한의 원칙을 따르고 관리 중인 리소스에 필요한 역할만 부여합니다.
기타 입력 변수 섹션에서 다음을 수행합니다.
- 테넌트 프로젝트 변수 추가를 클릭한 다음 테넌트 프로젝트를 선택하여
tenant_project_id및tenant_project_number변수를 채웁니다. - 선택사항: 입력 변수 추가를 클릭하여 Terraform 구성에 정의된 다른 입력 변수를 입력합니다.
- 테넌트 프로젝트 변수 추가를 클릭한 다음 테넌트 프로젝트를 선택하여
업그레이드를 클릭합니다.
App Lifecycle Manager는 지정된 작동 서비스 계정을 사용하여 Infrastructure Manager를 트리거합니다. Infrastructure Manager는 tenant_project_id 및 tenant_project_number 변수를 읽고 해당 테넌트 프로젝트 내에서 Terraform 리소스를 업데이트합니다.
다음 단계
- 단위 간 종속 항목 관리를 살펴봅니다.
- 변수 및 변수 매핑 사용에 대해 자세히 알아보세요.
- 서비스 계정에 필요한 권한을 검토합니다.