테넌트와 유닛 연결

이 빠른 시작에서는 배포된 VM 유닛을 테넌트 리소스와 연결하고 VM을 테넌트가 소유한 전용 테넌트 프로젝트에 프로비저닝하도록 앱 제공을 수정합니다.

이 접근 방식은 리소스 격리를 강화하므로 각 테넌트의 리소스를 개별적으로 관리하고 앱 제공에 더 나은 보안 및 규정 준수를 제공할 수 있습니다.

App Lifecycle Manager로 MySQL 인스턴스 배포 빠른 시작의 시나리오를 기반으로 배포된 VM 유닛을 테넌트 리소스와 연결하고 VM을 테넌트가 소유한 전용 프로젝트에 프로비저닝하도록 수정합니다.

  1. App Lifecycle Manager에서 테넌트 리소스를 만듭니다.
  2. VM을 테넌트 리소스와 연결합니다.
  3. 별도의 테넌트 프로젝트에 리소스를 배포하도록 App Lifecycle Manager 및 Terraform 구성을 구성합니다.
  4. 교차 프로젝트를 배포할 때 일반적인 권한 및 API 사용 설정 문제를 해결합니다.

이 빠른 시작을 마치면 테넌트를 만들고 이를 유닛과 연결하여 테넌트 수준 구성 및 정책을 설정할 수 있는 여러 테넌트가 있는 앱 제공의 기반을 만들게 됩니다.

시작하기 전에

테넌트를 만들거나 유닛과 연결하기 전에 App Lifecycle Manager 생태계의 기본사항을 알고 앱 제공을 만들어야 합니다.

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 실제 시나리오에서 제품이 어떻게 작동하는지 평가할 수 있는 계정을 만듭니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

  2. App Lifecycle Manager로 MySQL 인스턴스를 배포합니다. Terraform 구성, Artifact Registry 저장소, 앱 제공, 유닛 종류, 유닛, 구성요소 (terraform-files.zip 포함)를 만드는 것을 포함합니다.

    • 빠른 시작의 **시작하기 전에** 섹션에 나열된 API가 프로듀서 프로젝트에서 사용 설정되어 있는지 확인합니다.
    • 프로듀서 프로젝트 내에서 필요한 서비스 계정 및 IAM 역할이 부여되었는지 확인합니다. 여기에는 사용자 생성 서비스 계정과 프로듀서 프로젝트에서 service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com 계정에 부여된 권한이 포함됩니다.
  3. 프로듀서 프로젝트 및 테넌트 프로젝트 는 테넌트 리소스를 만들고 연결하기 전에 만들어야 합니다. 자세한 내용은 테넌트 프로젝트 설정을 참조하세요.

테넌트 리소스 만들기 및 연결

테넌트를 사용하여 유닛 리소스를 그룹화할 수 있습니다. 프로듀서 프로젝트의 앱 제공에서 테넌트 리소스를 만들어 고객을 나타냅니다.

  1. 콘솔 Google Cloud 에서 App Lifecycle Manager > 테넌트 로 이동합니다.

    테넌트로 이동

  2. 만들기 를 클릭합니다.

  3. 테넌트 만들기 페이지의 테넌트 이름 상자에 vm-quickstart-tenant를 입력합니다.

  4. 앱 제공 상자에서 vm-quickstart-saas-offering을 선택합니다.

  5. 리전 드롭다운에서 us-central1을 선택합니다.

  6. 유닛 추가 를 클릭합니다. 새 유닛 섹션이 표시됩니다.

  7. 유닛 드롭다운에서 projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unit 유닛을 선택합니다.

  8. 완료 를 클릭하여 vm-quickstart-unit 리소스를 vm-quickstart-tenant 리소스와 연결합니다.

  9. 만들기 를 클릭하여 테넌트 리소스를 만듭니다. vm-quickstart-tenant 리소스를 만들고 vm-quickstart-unit 리소스와 연결했습니다. 이 연결은 주로 Google Cloud 콘솔 내에서 조직 태그 역할을 하며 어떤 유닛이 어떤 테넌트에 속하는지 식별하는 데 도움이 됩니다.

테넌트 출시 만들기

  1. 콘솔 Google Cloud 에서 App Lifecycle Manager > 출시로 이동합니다.

    출시로 이동

  2. 출시 페이지에서 만들기 를 클릭합니다.

  3. 출시 만들기 페이지의 출시 이름 상자에 vm-quickstart-tenant-release를 입력합니다.

  4. 유닛 종류 상자에서 vm-quickstart-unit-kind를 선택합니다. 다음 을 클릭합니다.

  5. 블루프린트 선택 단계에서 Artifact Registry에서 기존 이미지 선택 전환 버튼을 클릭합니다.

  6. 블루프린트 저장 단계에서 찾아보기 를 클릭하고 vm-quickstart-tenant-blueprint와 연결된 아티팩트를 선택합니다. 다음 을 클릭합니다.

  7. 만들기 를 클릭합니다. vm-quickstart-tenant-release 리소스를 만들었습니다.

테넌트 프로젝트 만들기 및 유닛 배포

App Lifecycle Manager로 MySQL 인스턴스 배포 빠른 시작에서는 앱 제공 구성이 포함된 동일한 프로젝트에 App Lifecycle Manager 리소스를 프로비저닝합니다.

이 빠른 시작에서는 프로듀서 프로젝트 대신 테넌트 프로젝트 로 리소스 프로비저닝을 안내합니다.

유닛 프로비저닝 중에 수정된 변수 tenant_project_id 및 tenant_project_number를 전달해야 합니다.

  1. terraform-vm.zip 파일을 배포할 테넌트 프로젝트를 만듭니다.

    gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"
    
  2. API를 사용 설정하고 테넌트 프로젝트에 IAM 역할을 부여합니다. 테넌트 프로젝트에 유닛을 배포하려면 Compute Engine API를 사용 설정하고 테넌트 프로젝트에 IAM 역할을 부여해야 합니다.

테넌트 프로젝트에서 API 사용 설정

콘솔을 사용하여 테넌트 프로젝트에서 Compute Engine API를 사용 설정합니다. Google Cloud

  1. 프로젝트 선택기로 이동합니다.

    프로젝트 선택기로 이동

  2. 프로젝트 선택 을 클릭합니다.

  3. quickstart-tenant-project를 선택합니다.

  4. Compute Engine API가 아직 사용 설정되지 않은 경우 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않으면 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법을 알아보세요.

    API 사용 설정하기

  5. 프로젝트에 다음 역할이 있는지 확인합니다. roles/compute.admin

    역할 확인

    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동
    2. 프로젝트를 선택합니다.
    3. 주 구성원 열에서 자신 또는 자신이 포함된 그룹을 식별하는 모든 행을 찾습니다. 포함된 그룹을 알아보려면 관리자에게 문의하세요.

    4. 자신을 지정하거나 포함하는 모든 행에서 역할 열을 확인하여 역할 목록에 필요한 역할이 포함되어 있는지 확인합니다.

    역할 부여

    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동
    2. 프로젝트를 선택합니다.
    3. 액세스 권한 부여를 클릭합니다.
    4. 새 주 구성원 필드에 사용자 식별자를 입력합니다. 일반적으로 Google 계정의 이메일 주소입니다.

    5. 역할 선택을 클릭한 후 역할을 검색합니다.
    6. 역할을 추가로 부여하려면 다른 역할 추가 를 클릭하고 각 역할을 추가합니다.
    7. 저장 을 클릭합니다.

테넌트 프로젝트 변수로 유닛 프로비저닝

프로듀서 프로젝트에서 테넌트 프로젝트의 입력 변수로 새 유닛을 프로비저닝합니다.

  1. 프로젝트 선택기로 이동합니다.

    프로젝트 선택기로 이동

  2. 프로젝트 선택 을 클릭합니다.

  3. 프로듀서 프로젝트를 선택합니다.

  4. Google Cloud 콘솔에서 App Lifecycle Manager > 유닛으로 이동합니다.

    유닛으로 이동

  5. vm-quickstart-unit 리소스를 선택합니다.

  6. 프로비저닝 을 클릭합니다.

  7. vm-quickstart-tenant-release 리소스를 선택합니다.

  8. 테넌트 프로젝트에서 권한을 부여한 작동 서비스 계정 을 선택합니다.

  9. 입력 변수 섹션에서 다음을 수행합니다.

    • tenant_project_id 변수는 variables.tf에서 정의한 대로 나열됩니다.
    • 테넌트 프로젝트 ID 상자에 quickstart-tenant-project를 입력합니다.
  10. 프로비저닝 을 클릭합니다.

App Lifecycle Manager는 지정된 작동 서비스 계정을 사용하여 Infrastructure Manager를 트리거합니다. Infrastructure Manager는 tenant_project_id 변수를 읽고 해당 테넌트 프로젝트 내 에 VM을 만듭니다.

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.

Google Cloud
  1. 콘솔 Google Cloud 에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 프롬프트에서 프로젝트 ID를 입력한 후 종료 를 클릭합니다.

다음 단계

  • 테넌트 프로젝트 및 리소스를 설정하는 방법을 자세히 알아보세요.
  • 변수 및 변수 매핑을 사용하여 자동 리소스 프로비저닝을 비롯한 정교한 앱 제공 오케스트레이션을 수행합니다.