App Hub를 설정하는 경우 기본 작업은 다음과 같습니다.
- 새 App Hub 호스트 프로젝트를 만들지 아니면 기존 프로젝트를 호스트 프로젝트로 사용할지 결정합니다.
- 둘 이상의 호스트 프로젝트를 계획하는 경우 동일한 폴더에 생성하는 것이 좋습니다.
- App Hub의 호스트 프로젝트는 공유 VPC 호스트 프로젝트와 동일하지 않으며 동일한 요구사항이 없습니다. 예를 들어 App Hub를 사용하기 위해 공유 VPC 네트워크가 필요하지 않습니다. 이 문서에서 호스트 프로젝트에 대한 모든 참조는 App Hub 호스트 프로젝트에 해당합니다.
- 호스트 프로젝트는 자신 이외의 서비스 프로젝트가 될 수 없습니다.
- 호스트 프로젝트에서 App Hub API를 사용 설정합니다.
- 호스트 프로젝트에 App Hub 서비스 프로젝트를 하나 이상 추가합니다.
- App Hub의 서비스 프로젝트는 공유 VPC 서비스 프로젝트와 동일하지 않으며 동일한 요구사항이 없습니다. 이 문서에서 서비스 프로젝트에 대한 모든 참조는 App Hub 서비스 프로젝트에 해당합니다.
- App Hub 사용자를 App Hub 관리자, App Hub 편집자 또는 App Hub 뷰어로 지정합니다.
- 애플리케이션을 만듭니다.
- 애플리케이션에 서비스 및 워크로드를 등록합니다.
서비스 및 워크로드
App Hub를 사용하면 호스트 프로젝트에 연결된 서비스 프로젝트의 리소스를 서비스 및 워크로드로 사용할 수 있습니다. 서비스 및 워크로드를 애플리케이션에 등록하면 리소스를 관찰하고 모니터링할 수 있습니다. 다음 리소스를 App Hub 서비스로 지정하고 App Hub 애플리케이션에 등록할 수 있습니다.
- 전달 규칙
- URL 맵
- 백엔드 서비스
개별 VM이 아닌 관리형 인스턴스 그룹(MIG)을 워크로드로 지정하여 App Hub 애플리케이션에 등록할 수 있습니다.
App Hub는 전역(프리뷰) 및 리전별 리소스를 지원합니다. 자세한 내용은 App Hub 지원 리소스를 참조하세요.
등록하는 서비스 및 워크로드는 애플리케이션과 동일한 리전에 있어야 하므로 다음 안내 및 명령어는 모든 리소스가 동일한 리전에 있다고 가정합니다. 지정할 수 있는 리전에 대한 자세한 내용은 위치를 참조하세요.
전체 설정 프로세스
다음 목록에는 App Hub를 설정하는 단계가 요약되어 있습니다.
- 애플리케이션에 포함할 기존 리소스와 리소스가 속한 프로젝트를 결정합니다.
- App Hub 호스트 프로젝트를 만들고 프로젝트에서 App Hub API를 사용 설정합니다. 원하는 경우 비즈니스의 조직 구조에 따라 호스트 프로젝트를 두 개 이상 만듭니다. 프로젝트를 여러 개 만들 경우 새 폴더에서 만드는 것이 좋습니다.
- 서비스 프로젝트 연결. 호스트 프로젝트를 구성한 후 애플리케이션에 필요한 기본 리소스가 있는 서비스 프로젝트를 호스트 프로젝트에 연결합니다. 다음에 유의하세요.
- 서비스 프로젝트는 호스트 프로젝트와 동일한 조직에 있어야 합니다. 호스트 프로젝트에 서비스 프로젝트를 연결한 후에는 다른 조직으로 이동할 수 없습니다. 서비스 프로젝트를 다른 조직으로 이동하려면 이 문서의 안내에 따라 호스트 프로젝트에 대한 서비스 프로젝트 연결을 삭제 또는 분리해야 합니다. 그런 다음 서비스 프로젝트를 다른 조직에 연결할 수 있습니다.
- 서비스 프로젝트는 두 개 이상의 호스트 프로젝트에 연결할 수 없습니다.
- 호스트 프로젝트는 자체 서비스 프로젝트가 될 수 있지만 다른 호스트 프로젝트의 서비스 프로젝트는 될 수 없습니다.
- 서비스 프로젝트를 호스트 프로젝트에 연결한 후 호스트 프로젝트에 서비스 또는 워크로드를 쿼리하면 모든 서비스 프로젝트의 모든 서비스 및 워크로드가 자동으로 반환됩니다.
- 여러 워크로드와 서비스를 구성할 수 있는 애플리케이션을 만듭니다. 다음에 유의하세요.
- 호스트 프로젝트 및 위치에 애플리케이션의 고유한 이름이 있는지 확인하세요.
- 서비스 프로젝트는 여러 애플리케이션이 있는 호스트 프로젝트에 연결될 수 있지만 개별 리소스는 하나의 애플리케이션에만 등록될 수 있습니다.
- 서비스 및 워크로드를 쿼리하고 애플리케이션에 등록합니다.
애플리케이션을 만든 후 호스트 프로젝트에서 사용 가능한 서비스 및 워크로드를 쿼리합니다. 쿼리는 호스트 프로젝트 및 호스트 프로젝트에 연결된 모든 서비스 프로젝트에 대해 실행됩니다. 또한 해당 프로젝트의 모든 서비스 및 워크로드를 반환합니다. 다음에 유의하세요.
- 서비스 또는 워크로드는 단일 애플리케이션에만 등록할 수 있습니다.
- 등록하는 모든 워크로드 및 서비스는 애플리케이션과 동일한 리전에 있어야 합니다.
- 등록된 서비스 및 워크로드는 기본 인프라 리소스에 대한 업데이트의 영향을 받지 않습니다. 즉, 서비스 및 워크로드로 작동하는 기본 리소스를 삭제하는 경우 App Hub는 애플리케이션에서 연결된 워크로드 및 서비스를 삭제하지 않습니다. 워크로드 또는 서비스를 별도로 등록 취소해야 합니다.
기본 요건
App Hub를 설정하기 전에 다음 작업을 완료하세요.
- 기존 프로젝트를 호스트 프로젝트로 지정하거나 호스트 프로젝트가 될 새 프로젝트를 만듭니다. 새 프로젝트를 만드는 것이 좋습니다.
- App Hub 관리자, App Hub 편집자 및 App Hub 뷰어와 같이 App Hub의 Identity and Access Management(IAM) 역할을 보유할 개인 사용자를 결정했는지 확인합니다.
다음에 유의하세요.
- 호스트 프로젝트에는 하나 이상의 서비스 프로젝트가 연결될 수 있습니다.
- 서비스 프로젝트는 두 개 이상의 호스트 프로젝트에 연결할 수 없습니다.
- 호스트 프로젝트에 서비스 프로젝트를 연결하는 사람은 서비스 프로젝트와 호스트 프로젝트 모두에서 IAM 역할이 App Hub 관리자여야 합니다. 자세한 내용은 App Hub 역할 및 권한을 참조하세요.
App Hub 설정
이 섹션에서는 예시 App Hub 아키텍처를 만듭니다.
이 예시에서는 조직에 다음과 같이 프로젝트에 배포된 해당 인프라 리소스가 있는 3가지 서비스 프로젝트가 있습니다.
- 서비스 프로젝트 1에는 서비스 1과 서비스 2의 두 가지 인프라 리소스가 있습니다.
- 서비스 프로젝트 2에는 서비스 3, 워크로드 1, 워크로드 2의 3가지 인프라 리소스가 있습니다.
- 서비스 프로젝트 3에는 서비스 4, 워크로드 3, 워크로드 4의 3가지 인프라 리소스가 있습니다.
예시를 만들기 위해 선택한 프로젝트에 이 섹션에 설명된 리소스가 포함되어 있는지 확인하거나 안내를 따라 예시를 조정할 준비를 합니다.
다음 섹션에는 App Hub 예시를 만들기 위한 안내가 포함되어 있습니다. 호스트 프로젝트를 만들고 서비스 프로젝트를 호스트 프로젝트에 추가한 후 애플리케이션을 만들고 서비스 및 워크로드를 애플리케이션에 연결합니다. 이 예시에는 3개의 서비스 프로젝트가 있지만 더 적게 또는 더 많이 추가할 수 있습니다.
이 예시에서는 개발자가 추가한 서비스 프로젝트가 이미 존재하고, 애플리케이션에 추가하는 서비스 및 워크로드가 포함되어 있다고 가정합니다. 예시를 만들기 전에 애플리케이션에 포함하려는 서비스와 워크로드가 포함된 서비스 프로젝트를 결정합니다.
App Hub 사용 설정
이 섹션에서는 새 호스트 프로젝트를 선택하거나 만들고, App Hub API를 사용 설정하고, 조직의 개인 사용자에게 적절한 역할과 권한을 부여합니다. 또한 서비스 프로젝트를 호스트 프로젝트에 연결합니다.
Console
Google Cloud Console에서 프로젝트 선택기 페이지로 이동합니다.
App Hub 호스트 프로젝트가 될 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Enable the required API.
프로젝트 생성자에게는 기본 소유자 역할(
roles/owner
)이 부여됩니다. 기본적으로 이 IAM 역할에는 대부분의 Google Cloud 리소스에 대한 전체 액세스에 필요한 권한이 포함됩니다.프로젝트 생성자가 아니면 프로젝트에서 적합한 주 구성원에 대해 필수 권한을 부여해야 합니다. 예를 들어 주 구성원은 Google 계정(최종 사용자)이거나 서비스 계정(애플리케이션 및 컴퓨팅 워크로드)일 수 있습니다. 튜토리얼을 완료하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
Google Cloud 콘솔에서 IAM 페이지로 이동합니다.
액세스 권한 부여를 클릭합니다. 액세스 권한 부여 창이 열립니다.
새 주 구성원 필드에 호스트 프로젝트의 App Hub 관리자 역할인 App Hub를 관리할 개인 사용자의 이메일 주소를 입력합니다.
역할 선택을 클릭하고 필터 필드에 App Hub를 입력합니다.
App Hub 관리자 역할을 선택하고 저장을 클릭합니다.
각 App Hub 서비스 프로젝트에서 동일한 사용자에게 App Hub 관리자 역할을 부여합니다.
Google Cloud 콘솔에서 App Hub 설정 페이지로 이동합니다.
설정 페이지에서 프로젝트 연결을 클릭합니다.
다음 중 하나를 수행합니다.
- 프로젝트 목록에서 서비스 프로젝트로 추가할 프로젝트의 체크박스를 선택합니다.
- 프로젝트를 검색한 다음 서비스 프로젝트로 추가할 프로젝트를 선택합니다.
선택을 클릭합니다. 연결된 서비스 프로젝트 테이블에 선택한 서비스 프로젝트가 표시됩니다.
닫기를 클릭합니다.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
최신 버전의 Google Cloud CLI가 설치되어 있는지 확인합니다. Cloud Shell에서 다음 명령어를 실행합니다.
gcloud components update
App Hub의 호스트 프로젝트가 될 새 프로젝트
HOST_PROJECT_ID
를 만들거나 선택합니다.- Google Cloud 프로젝트를 만듭니다.
gcloud projects create HOST_PROJECT_ID
- 만든 Google Cloud 프로젝트를 선택합니다.
gcloud config set project HOST_PROJECT_ID
- Google Cloud 프로젝트를 만듭니다.
방금 만든 호스트 프로젝트에서 App Hub API를 사용 설정합니다.
gcloud services enable apphub.googleapis.com \ --project=HOST_PROJECT_ID
프로젝트 생성자에게는 기본 소유자 역할(
roles/owner
)이 부여됩니다. 기본적으로 이 IAM 역할에는 대부분의 Google Cloud 리소스에 대한 전체 액세스에 필요한 권한이 포함됩니다.프로젝트 생성자가 아니면 프로젝트에서 적합한 주 구성원에 대해 필수 권한을 부여해야 합니다. 예를 들어 주 구성원은 Google 계정(최종 사용자)이거나 서비스 계정(애플리케이션 및 컴퓨팅 워크로드)일 수 있습니다. 튜토리얼을 완료하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
원하는 경우 호스트 프로젝트의 App Hub 관리자 역할인 App Hub를 관리할 개인 사용자에게 권한을 부여합니다. 각 관리자에 대해 다음 명령어를 반복합니다.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
HOST_PROJECT_ADMIN
을 호스트 프로젝트에서 App Hub 관리자 역할이 있는 사용자로 바꿉니다. 이 값은username@yourdomain
형식입니다(예:robert.smith@example.com
).서비스 프로젝트의 App Hub 관리자 역할을 App Hub를 관리하는 개인 사용자에게 부여합니다. 호스트 프로젝트에 서비스 프로젝트를 추가하려면 App Hub 관리자 역할이 있어야 합니다. 서비스 프로젝트마다 이 역할을 가진 사람이 한 명 이상 있어야 합니다. 한 사람이 여러 서비스 프로젝트에서 역할을 가질 수 있습니다.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_1 \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
gcloud projects add-iam-policy-binding SERVICE_PROJECT_2 \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
gcloud projects add-iam-policy-binding SERVICE_PROJECT_3 \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
다음을 바꿉니다.
SERVICE_PROJECT_1
: 이 예시에서 3개의 서비스 프로젝트 중 첫 번째입니다.SERVICE_PROJECT_2
: 이 예시에서 3개의 서비스 프로젝트 중 두 번째입니다.SERVICE_PROJECT_3
: 이 예시에서 3개의 서비스 프로젝트 중 세 번째입니다.
App Hub 호스트 프로젝트에 서비스 프로젝트를 추가합니다.
gcloud apphub service-projects add SERVICE_PROJECT_1 \ --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_2 \ --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_3 \ --project=HOST_PROJECT_ID
선택사항: 호스트 프로젝트의 측정항목 범위에 서비스 프로젝트 추가
호스트 프로젝트의 측정항목 범위에 서비스 프로젝트를 리소스 컨테이너로 추가하여 호스트 프로젝트의 애플리케이션에 대한 시스템 측정항목을 볼 수 있습니다. App Hub 호스트 프로젝트는 측정항목 범위를 호스팅하는 범위 지정 프로젝트 역할을 합니다. Google Cloud 프로젝트의 측정항목 범위는 호스트 프로젝트에서 차트로 표시하고 모니터링할 수 있는 시계열 데이터가 있는 설정된 리소스 컨테이너를 정의합니다. 리소스 컨테이너, 측정항목 범위, 범위 지정 프로젝트에 대한 자세한 내용은 Cloud Monitoring: 데이터 모델을 참조하세요.
애플리케이션의 시스템 측정항목을 보려면 필요한 경우 호스트 프로젝트에서 모니터링되는 서비스 프로젝트를 수동으로 추가하거나 삭제해야 합니다. 하지만 호스트 프로젝트를 자체 서비스 프로젝트로 사용하는 경우 App Hub 애플리케이션이 동일한 프로젝트에 있으므로 프로젝트를 측정항목 범위에 추가하지 마세요.
다음 IAM 역할이 있는지 확인합니다.
- App Hub 애플리케이션의 측정항목을 보는 데 필요한 권한을 얻으려면 관리자에게 주 구성원에 Monitoring 뷰어(
roles/monitoring.viewer
) IAM 역할을 부여해 달라고 요청하세요. 자세한 내용은 Monitoring에 액세스 권한 부여를 참조하세요. 측정항목 범위를 구성하는 데 필요한 권한을 얻으려면 관리자에게 범위 지정 프로젝트와 측정항목 범위에 추가하려는 각 리소스 컨테이너에 대한 Monitoring 관리자(
roles/monitoring.admin
) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
콘솔
-
Google Cloud 콘솔에서 settings 설정 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.
측정항목 범위를 선택합니다.
측정항목 범위 탭에는 현재 Google Cloud 프로젝트에서 모니터링하는 리소스가 나열됩니다. 또한 측정항목 범위에 현재 Google Cloud 프로젝트가 포함된 Google Cloud 프로젝트가 나열됩니다.
Google Cloud 프로젝트를 측정항목 범위에 추가하려면 다음 단계를 따르세요.
- Google Cloud 프로젝트 창에서 프로젝트 추가를 클릭합니다.
- Google Cloud 프로젝트 추가 대화상자에서 프로젝트 선택을 클릭한 다음 모니터링할 필수 서비스 프로젝트의 체크박스를 선택합니다.
변경사항을 저장하려면 프로젝트 추가를 클릭합니다.
설정 페이지가 표시되며 해당 페이지의 테이블이 업데이트되어 선택한 항목이 나열됩니다.
프로젝트를 측정항목 범위에 추가한 뒤 변경사항이 모든 Monitoring 시스템에 전파되는 데 약 60초가 걸립니다.
Google Cloud 콘솔을 사용하여 측정항목 범위를 구성하는 방법에 대한 자세한 내용은 측정항목 범위 구성을 참조하세요.
gcloud
서비스 프로젝트를 App Hub 호스트 프로젝트에 모니터링 리소스 컨테이너로 추가하려면 다음 단계를 따르세요.
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_1 \ --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_2 \ --project=HOST_PROJECT_ID
gcloud beta monitoring metrics-scopes create projects/SERVICE_PROJECT_3 \ --project=HOST_PROJECT_ID
Google Cloud CLI를 사용하여 측정항목 범위를 구성하는 방법에 관한 자세한 내용은 API를 사용하여 측정항목 범위 구성을 참조하세요.
애플리케이션 만들기
아직 애플리케이션이 없는 경우 서비스 및 워크로드를 위한 컨테이너가 될 애플리케이션을 만듭니다. 서비스 프로젝트의 서비스 및 워크로드 범위에 따라 전역(프리뷰) 또는 리전 애플리케이션을 만듭니다.
- 전역 애플리케이션(프리뷰)을 사용하면 전역 Google Cloud 리소스에서 발견된 서비스와 워크로드를 등록할 수 있습니다.
- 리전 애플리케이션을 사용하면 리전별 Google Cloud 리소스에서 검색된 서비스와 워크로드를 등록할 수 있습니다.
애플리케이션을 만든 후에는 애플리케이션 범위를 변경할 수 없습니다. 전역적으로 사용 가능한 리소스는 전역 애플리케이션에, 리전별로 사용 가능한 리소스는 리전 애플리케이션(프리뷰)에만 등록할 수 있습니다. 자세한 내용은 전역 및 리전 App Hub 애플리케이션을 참조하세요.
콘솔
- 호스트 프로젝트에 있는지 확인합니다.
Google Cloud 콘솔에서 App Hub 애플리케이션 페이지로 이동합니다.
애플리케이션 만들기를 클릭합니다.
애플리케이션 만들기 페이지의 애플리케이션 리전 및 이름 선택 창에서 애플리케이션에 등록하려는 서비스 및 워크로드의 범위에 따라 다음 중 하나를 수행합니다.
전역 위치에서 서비스와 워크로드를 등록할 수 있는 애플리케이션을 만들려면 전역(프리뷰)을 선택합니다.
단일 위치에서 서비스와 워크로드를 등록할 수 있는 애플리케이션을 만들려면 다음 단계를 따르세요.
- 리전을 선택합니다.
- 리전을 선택합니다.
애플리케이션 이름을 입력하고 계속을 클릭합니다.
원하는 경우 다음 필드에 애플리케이션에 대한 세부정보를 추가합니다. 자세한 내용은 이 문서에서 기존 App Hub 애플리케이션 업데이트를 참조하세요.
만들기를 클릭합니다.
gcloud
APPLICATION_NAME
이라는 새 애플리케이션을 만들고 표시 이름인APPLICATION_DISPLAY_NAME
을 지정합니다.gcloud apphub applications create APPLICATION_NAME \ --scope-type=SCOPE_TYPE \ --project=HOST_PROJECT_ID \ --location=REGION
다음을 바꿉니다.
호스트 프로젝트의 애플리케이션을 나열합니다.
gcloud apphub applications list \ --project=HOST_PROJECT_ID \ --location=REGION
출력은 다음과 비슷합니다.
ID DISPLAY_NAME CREATE_TIME APPLICATION_NAME APPLICATION_DISPLAY_NAME 2023-10-31T18:33:48
생성한 애플리케이션의 세부정보를 가져옵니다.
gcloud apphub applications describe APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
이 명령어는 다음과 비슷한 YAML 형식의 정보를 반환합니다.
createTime: '2023-10-31T18:33:48.199394108Z' displayName: APPLICATION_DISPLAY_NAME name: projects/HOST_PROJECT_ID/locations/REGION/applications/APPLICATION_NAME scope: type: SCOPE_TYPE state: ACTIVE uid: [APPLICATION_UID] updateTime: '2023-10-31T18:33:48.343303819Z'
기존 App Hub 애플리케이션 업데이트
애플리케이션을 만든 후 애플리케이션의 속성을 업데이트할 수도 있습니다.
Console
Google Cloud 콘솔에서 App Hub 애플리케이션 페이지로 이동합니다.
애플리케이션 목록에서 업데이트할 애플리케이션에 대해
수정을 클릭합니다.필요에 따라 필드를 수정하고 저장을 클릭합니다.
선택사항: 중요도 목록에서 애플리케이션의 중요도를 표시하려면 다음 중 하나를 선택합니다.
- 미션 크리티컬
- 높음
- 중간
- 낮음
선택사항: 환경 목록에서 소프트웨어 수명 주기 단계를 표시하려면 다음 중 하나를 선택합니다.
- 프로덕션
- 스테이징
- 개발
- 테스트
선택사항: 개발자 소유자, 운영자 소유자, 비즈니스 소유자의 필요에 따라 세부정보를 추가합니다. 표시 이름을 추가하는 경우 소유자의 이메일 주소를 입력해야 합니다.
- 소유자의 표시 이름을 입력합니다.
- 소유자의 이메일 주소를 입력합니다. 이 값은
username@yourdomain
형식이어야 합니다(예:222larabrown@gmail.com
).
각 개발자, 운영자, 비즈니스 소유자에 대해 이 단계를 반복합니다.
저장을 클릭합니다.
gcloud
criticality-type
,environment-type
, 소유자 유형 속성으로 애플리케이션을 업데이트합니다.gcloud apphub applications update APPLICATION_NAME \ --display-name='APPLICATION_DISPLAY_NAME' \ --criticality-type='CRITICALITY_LEVEL' \ --environment-type='ENVIRONMENT' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=HOST_PROJECT_ID \ --location=REGION
다음을 바꿉니다.
APPLICATION_DISPLAY_NAME
: 애플리케이션의 표시 이름입니다.CRITICALITY_LEVEL
: 애플리케이션, 서비스, 워크로드가 비즈니스 운영에 얼마나 중요한지를 나타냅니다. 다음 값 중 하나를 제공합니다.MISSION_CRITICAL
HIGH
MEDIUM
LOW
ENVIRONMENT
: 소프트웨어 수명 주기의 단계를 나타냅니다. 다음 값 중 하나를 제공합니다.PRODUCTION
STAGING
DEVELOPMENT
TEST
DISPLAY-NAME-DEVELOPER
,DISPLAY-NAME-OPERATOR
,DISPLAY-NAME-BUSINESS
: 각각 개발자, 운영자, 비즈니스 소유자의 표시 이름입니다.EMAIL-NAME-DEVELOPER
,EMAIL-NAME-OPERATOR
,EMAIL-NAME-BUSINESS
: 각각 개발자, 운영자, 비즈니스 소유자의 이메일 주소입니다. 이러한 값은username@yourdomain
형식이어야 합니다(예:222larabrown@gmail.com
).
environment-type
속성 값이PRODUCTION
인 애플리케이션을 나열합니다.gcloud apphub applications list \ --filter='attributes.environment.type=PRODUCTION' \ --project=HOST_PROJECT_ID \ --location=REGION
출력은 다음과 비슷합니다.
ID DISPLAY_NAME CREATE_TIME APPLICATION_NAME APPLICATION_DISPLAY_NAME 2023-10-31T18:33:48
서비스 및 워크로드 등록
인프라 서비스 및 워크로드를 애플리케이션에 등록하면 서비스 및 워크로드는 App Hub 리소스로 등록됩니다. 자리표시자를 사용하여 gcloud CLI로 애플리케이션을 만드는 경우 3개의 서비스 프로젝트의 서비스 및 워크로드는 다음과 같습니다.
- 서비스 프로젝트 1에는 서비스 1과 서비스 2의 두 가지 인프라 리소스가 있습니다.
- 서비스 프로젝트 2에는 서비스 3, 워크로드 1, 워크로드 2의 3가지 인프라 리소스가 있습니다.
서비스 프로젝트 3에는 서비스 4, 워크로드 3, 워크로드 4의 3가지 인프라 리소스가 있습니다.
Console
Google Cloud 콘솔에서 App Hub 애플리케이션 페이지로 이동합니다.
애플리케이션 이름을 클릭합니다. 서비스 및 워크로드 탭에는 서비스 프로젝트에 있는 등록된 서비스 및 워크로드 목록이 표시됩니다.
등록하려는 각 서비스 또는 워크로드에 대해 다음을 수행합니다.
- 서비스 및 워크로드 탭에서 서비스/워크로드 등록을 클릭합니다.
- 서비스 또는 워크로드 등록 페이지의 리소스 선택 창에서 찾아보기를 클릭하여 서비스 또는 워크로드를 리소스로 선택합니다.
- 리소스 선택 창에서 서비스 또는 워크로드를 선택하고 선택을 클릭합니다.
- 리소스 선택 창에서 서비스 또는 워크로드의 이름을 입력하고 계속을 클릭합니다.
- 필요한 경우 속성 추가 창의 다음 필드에 서비스 또는 워크로드에 대한 세부정보를 추가합니다. 자세한 내용은 이 문서에서 기존 App Hub 애플리케이션 업데이트를 참조하세요. 중요도 및 환경 필드의 값은 애플리케이션을 만들 때 설정한 값과 다를 수 있습니다.
- 계속을 클릭합니다.
- 선택적으로 소유자 추가 섹션에서 다음 필드에 서비스 또는 워크로드 소유자에 대한 세부정보를 추가합니다. 자세한 내용은 이 문서에서 기존 App Hub 애플리케이션 업데이트를 참조하세요.
- 등록을 클릭합니다.
서비스 및 워크로드 탭에 등록된 서비스 또는 워크로드가 표시됩니다. 등록 상태에 대한 자세한 내용은 App Hub의 특성 및 속성을 참조하세요.
gcloud
App Hub 편집자 권한이 있는 개인을 추가합니다.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:APP_HUB_EDITOR' \ --role='roles/apphub.editor'
APP_HUB_EDITOR
를 호스트 프로젝트에서 App Hub 편집자 역할이 있는 사용자로 바꿉니다. 이 값은username@yourdomain
형식입니다(예:robert.smith@example.com
).호스트 프로젝트에 연결된 서비스 프로젝트 2에서 탐색된 워크로드를 나열합니다. 이 명령어는 애플리케이션에 등록할 수 있는 워크로드를 반환합니다.
gcloud apphub discovered-workloads list \ --filter='workload_properties.gcp_project=projects/SERVICE_PROJECT_2' \ --project=HOST_PROJECT_ID \ --location=REGION
출력은 다음과 비슷합니다. 여기에는 등록되지 않은 MIG가 포함됩니다.
ID WORKLOAD_REFERENCE WORKLOAD_PROPERTIES [DISCOVERED_WORKLOAD_ID_1] {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-1'} {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'} [DISCOVERED_WORKLOAD_ID_2] {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'} {'gcpProject': 'projects/SERVICE_PROJECT_2', 'location': 'REGION'}
다음 단계에서 사용할 출력에서 워크로드 ID를 복사합니다.
이전 단계의 워크로드를 애플리케이션에 등록합니다.
gcloud apphub applications workloads create WORKLOAD_NAME \ --discovered-workload='projects/HOST_PROJECT_ID/locations/REGION/discoveredWorkloads/DISCOVERED_WORKLOAD_ID_2' \ --display-name='mywebserver-deployment1' \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
다음을 바꿉니다.
WORKLOAD_NAME
: 워크로드를 등록할 이름입니다.DISCOVERED_WORKLOAD_ID_2
: 이전 단계의 출력의 워크로드 ID입니다.
이전 두 단계를 반복하여 서비스 프로젝트 3에서 원하는 워크로드를 필터링하고 등록합니다.
선택사항:
criticality-type
,environment-type
, 소유자 속성으로 워크로드를 업데이트할 수 있습니다.gcloud apphub applications workloads update WORKLOAD_NAME \ --application=APPLICATION_NAME \ --criticality-type='CRITICALITY_LEVEL' \ --environment-type='ENVIRONMENT' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=HOST_PROJECT_ID \ --location=REGION
criticality-type
및environment-type
에 지정된 값 중 하나를 제공해야 하지만 이 값은 애플리케이션을 만들 때 설정한 값과 다를 수 있습니다.애플리케이션에 등록된 워크로드를 나열합니다.
gcloud apphub applications workloads list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
출력은 다음과 비슷합니다.
ID DISPLAY_NAME WORKLOAD_REFERENCE CREATE_TIME WORKLOAD_NAME mywebserver-deployment1 {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/REGION/instanceGroups/testing-mig-2'} 2023-10-31T18:34:23
등록되었지만 분리된 워크로드는
WORKLOAD_REFERENCE
필드에 빈 값으로 표시됩니다. 등록 상태에 대한 자세한 내용은 App Hub의 속성 및 속성을 참조하세요.호스트 프로젝트에 연결된 서비스 프로젝트 1의 전달 규칙을 사용하여 탐색된 서비스를 나열합니다. 이 명령어는 애플리케이션에 등록할 수 있는 서비스를 반환합니다.
gcloud apphub discovered-services list \ --filter='service_properties.gcp_project=projects/SERVICE_PROJECT_1 AND service_reference.uri~"forwardingRules"' \ --project=HOST_PROJECT_ID \ --location=REGION
출력은 다음과 비슷합니다.
ID SERVICE_REFERENCE SERVICE_PROPERTIES [DISCOVERED_SERVICE_ID_1] {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-1'} {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'} [DISCOVERED_SERVICE_ID_2] {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'} {'gcpProject': 'projects/SERVICE_PROJECT_1', 'location': 'REGION'}
다음 단계에서 사용할 출력에서 서비스 ID
DISCOVERED_SERVICE_ID_2
를 복사합니다.서비스 프로젝트 1의 전달 규칙인
testing-forwarding-rule-2
를 서비스로 등록합니다.gcloud apphub applications services create SERVICE_NAME \ --discovered-service='projects/HOST_PROJECT_ID/locations/REGION/discoveredServices/DISCOVERED_SERVICE_ID_2' \ --display-name='mywebserver-service1' \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
다음을 바꿉니다.
SERVICE_NAME
: 서비스를 등록할 이름입니다.DISCOVERED_SERVICE_ID_2
: 이전 단계 출력의 서비스 ID입니다.
이전 단계를 반복하여 서비스를 나열하고, 해당 서비스를 필터링하고, 서비스 프로젝트 1, 2, 3에 서비스를 등록합니다.
criticality-type
속성과environment-type
속성으로 서비스를 업데이트합니다.gcloud apphub applications services update SERVICE_NAME \ --criticality-type='CRITICALITY_LEVEL' \ --environment-type='ENVIRONMENT' \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
APPLICATION_NAME
애플리케이션 및HOST_PROJECT_ID
호스트 프로젝트에서 등록된 서비스를 나열합니다.gcloud apphub applications services list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
출력은 각 서비스에 대해 다음과 비슷합니다.
ID DISPLAY_NAME SERVICE_REFERENCE CREATE_TIME SERVICE_NAME mywebserver-service1 {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/REGION/forwardingRules/testing-forwarding-rule-2'} 2023-11-01T21:38:08
등록되었지만 분리된 서비스는
SERVICE_REFERENCE
필드에 빈 값으로 표시됩니다.APPLICATION_NAME
애플리케이션 및HOST_PROJECT_ID
호스트 프로젝트의 서비스를environment-type
속성이PRODUCTION
으로 설정된 서비스로 필터링합니다.gcloud apphub applications services list \ --filter='attributes.environment.type=PRODUCTION' \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
App Hub 설정 절차가 완료되었습니다.
서비스 프로젝트 추가 또는 삭제
서비스 프로젝트 연결을 수정하여 다양한 인프라 리소스를 애플리케이션으로 그룹화하게 할 수 있습니다.
호스트 프로젝트의 애플리케이션에 대한 시스템 측정항목을 보려면 호스트 프로젝트에 서비스 프로젝트를 추가한 후 서비스 프로젝트를 호스트 프로젝트의 측정항목 범위에 리소스 컨테이너로 추가합니다. 자세한 내용은 이 문서의 호스트 프로젝트의 측정항목 범위에 서비스 프로젝트 추가를 참조하세요. 호스트 프로젝트에서 서비스 프로젝트를 삭제할 때는 이전에 호스트 프로젝트에서 애플리케이션의 시스템 측정항목을 보겠다고 선택한 경우 호스트 프로젝트의 측정항목 범위에서 서비스 프로젝트를 리소스 컨테이너로 삭제하는 것이 좋습니다. 자세한 내용은 이 문서의 호스트 프로젝트의 측정항목 범위에서 서비스 프로젝트 삭제 단계를 참조하세요.
콘솔
호스트 프로젝트에 서비스 프로젝트를 추가하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 App Hub 설정 페이지로 이동합니다.
설정 페이지에서 프로젝트 연결을 클릭합니다.
열리는 창에서 프로젝트를 검색하거나 표시된 목록에서 서비스 프로젝트로 추가할 프로젝트의 체크박스를 선택합니다.
선택을 클릭합니다. 연결된 서비스 프로젝트 테이블에는 선택한 프로젝트가 호스트 프로젝트의 서비스 프로젝트로 표시됩니다.
닫기를 클릭합니다.
호스트 프로젝트에서 서비스 프로젝트를 삭제하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 App Hub 설정 페이지로 이동합니다.
설정 페이지에서 서비스 프로젝트로 삭제할 프로젝트의 체크박스를 선택합니다.
프로젝트 분리를 클릭합니다. 연결된 서비스 프로젝트 테이블이 새로고침되어 호스트 프로젝트에 연결된 상태로 유지되는 프로젝트만 표시됩니다.
gcloud
호스트 프로젝트에 서비스 프로젝트를 추가하려면 다음 안내를 따르세요.
gcloud apphub service-projects add SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
SERVICE_PROJECT_ID
를 호스트 프로젝트에 추가할 서비스 프로젝트의 이름으로 바꿉니다.호스트 프로젝트에서 서비스 프로젝트를 삭제하려면 다음 안내를 따르세요.
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
기존 애플리케이션, 서비스 및 워크로드 보기
프로젝트의 애플리케이션을 보고 애플리케이션의 서비스와 워크로드를 나열할 수 있습니다.
Console
프로젝트의 애플리케이션을 보려면 Google Cloud 콘솔에서 App Hub 애플리케이션 페이지로 이동합니다.
서비스 및 워크로드를 나열하려면 다음 안내를 따르세요.
애플리케이션
Google Cloud 콘솔에서 App Hub 애플리케이션 페이지로 이동합니다.
애플리케이션 이름을 클릭합니다. 애플리케이션에 등록된 서비스 및 워크로드 목록이 있는 페이지가 나타납니다.
선택사항: 서비스 또는 워크로드를 필터링하려면 다음 안내를 따르세요.
- 필터 필드에서 중요도와 같은 필터를 선택합니다.
- 값으로 높음을 선택합니다.
애플리케이션에 등록된 중요도가 높은 서비스 및 워크로드 목록이 나타납니다.
서비스 및 워크로드
Google Cloud 콘솔에서 App Hub 서비스 및 워크로드 페이지로 이동합니다.
리전 목록에서 서비스 및 워크로드를 보려는 리전을 선택합니다. 예를 들어 us-east1을 선택합니다.
서비스 및 워크로드 페이지에는 us-east1과 연결된 서비스 프로젝트의 모든 서비스 및 워크로드가 표시됩니다.선택사항: 서비스 또는 워크로드를 필터링하려면 다음 안내를 따르세요.
- 필터 필드에서 환경과 같은 필터를 선택합니다.
- 값으로 프로덕션을 선택합니다.
애플리케이션에 등록된 프로덕션 환경의 서비스 및 워크로드 목록이 표시됩니다.
gcloud
프로젝트에서 애플리케이션을 보려면 다음 안내를 따르세요.
gcloud apphub applications list \ --project=HOST_PROJECT_ID \ --location=REGION
애플리케이션에 등록된 서비스를 나열하려면 다음 단계를 따르세요.
gcloud apphub applications services list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
애플리케이션에 등록된 워크로드를 나열하려면 다음 안내를 따르세요.
gcloud apphub applications workloads list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
선택사항: 애플리케이션 측정항목 보기
App Hub 호스트 프로젝트에서 만든 애플리케이션의 시스템 측정항목을 볼 수 있습니다. 이러한 측정항목은 애플리케이션의 성능과 상태를 모니터링하는 데 도움이 되는 주요 신호(트래픽, 오류, 지연 시간, 포화도)에 해당합니다.
Google Cloud 콘솔에서 App Hub 애플리케이션 페이지로 이동합니다.
애플리케이션 이름을 클릭합니다.
서비스 및 워크로드 탭에는 애플리케이션에 등록된 서비스 및 워크로드의 메타데이터가 표시됩니다.
선택사항: 측정항목이 표시되는 기간을 변경하려면 시간 선택기를 사용합니다. 기본 시간 범위는 1시간입니다.
등록된 서비스 및 워크로드의 시스템 측정항목을 보려면 bar_chart 측정항목을 클릭합니다.
다음과 같은 주요 신호가 포함된 표가 표시됩니다.
- 트래픽: 선택한 기간 동안 리소스의 수신 요청 비율입니다.
- 서버 오류율: 선택한 기간 동안
5xx
계열 HTTP 오류 코드를 생성하는 수신 요청의 평균 비율입니다. - P95 지연 시간: 선택한 기간 동안 집계된 서비스 요청 지연 시간의 95번째 백분위수(밀리초)입니다.
- CPU 사용률: 지정된 기간 동안 집계된 워크로드의 평균 CPU 사용률입니다. 값은 일반적으로 0.0~100.0 사이의 숫자이지만 100.0을 초과할 수 있습니다.
- 메모리 사용률: 지정된 기간 동안 집계된 워크로드의 메모리 사용률 평균 비율입니다.
선택사항: 차트를 사용하여 측정항목 살펴보기
App Hub 프로젝트의 측정항목을 차트로 표시하려면 측정항목 탐색기를 사용하세요. 라벨을 기반으로 하는 필터를 적용하여 차트에 표시되는 데이터를 제한할 수 있습니다. 자세한 내용은 측정항목 탐색기로 차트 만들기를 참조하세요.
다음 App Hub 시스템 메타데이터 라벨을 필터링할 수 있습니다(프리뷰).
apphub_application_host_project_id
apphub_application_id
apphub_application_location
apphub_workload_criticality_type
apphub_workload_environment_type
apphub_workload_id
차트에서 App Hub 메타데이터 라벨을 시각화하려면 다음 안내를 따르세요. 다른 시스템 메타데이터 라벨 및 App Hub 측정항목에도 동일한 절차를 따를 수 있습니다.
-
Google Cloud 콘솔에서 leaderboard 측정항목 탐색기 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.
- 측정항목 요소에서 측정항목 선택 메뉴를 펼치고 필터 표시줄에
VM Instance
을 입력한 후 하위 메뉴를 사용하여 특정 리소스 유형과 측정항목을 선택합니다.- 활성 리소스 메뉴에서 VM 인스턴스를 선택합니다.
- 활성 측정항목 카테고리 메뉴에서 인기 측정항목을 선택합니다.
- 활성 측정항목 메뉴에서 CPU 사용률을 선택합니다.
- 적용을 클릭합니다.
compute.googleapis.com/instance/cpu/utilization
입니다. - 데이터 보기 방법을 구성합니다. 특정 라벨의 측정항목만 표시하려면 다음 단계를 따르세요.
- 필터 요소에서 필터 추가를 클릭한 다음 apphub_application_id를 선택합니다. 값으로 특정 App Hub 이름을 입력합니다.
- 집계 항목에서 첫 번째 메뉴를 집계되지 않음으로 설정합니다.
차트 구성에 대한 자세한 내용은 측정항목 탐색기 사용 시 측정항목 선택을 참조하세요.
삭제
기존 애플리케이션을 정리하고 호스트 프로젝트에서 서비스 프로젝트 연결을 삭제하여 프로젝트와 연결된 리소스를 삭제합니다. 그러면 서비스 프로젝트의 리소스 자동 검색이 중지됩니다.
이렇게 하려면 먼저 애플리케이션에 등록된 워크로드 및 서비스를 삭제해야 합니다.
Console
Google Cloud 콘솔에서 App Hub 애플리케이션 페이지로 이동합니다.
애플리케이션 이름을 클릭합니다. 애플리케이션에 등록된 서비스 및 워크로드 목록이 나타납니다.
서비스 또는 워크로드 등록 취소
- 서비스 및 워크로드 탭의 등록된 서비스 및 워크로드 섹션에서 등록 취소하려는 서비스나 워크로드의 이름을 클릭합니다.
- 세부정보 탭에서 등록 취소를 클릭하여 서비스나 워크로드를 검색된 리소스로 업데이트합니다.
서비스 및 워크로드 탭에서 워크로드가 등록 취소되었음을 알리는 알림이 표시됩니다. - 각 서비스 및 워크로드에 대해 이 안내를 반복합니다.
App Hub 애플리케이션 페이지로 이동합니다.
애플리케이션 이름을 클릭합니다.
애플리케이션 세부정보가 있는 페이지에서 삭제를 클릭합니다.
호스트 프로젝트에서 서비스 프로젝트를 삭제하려면 이 문서의 서비스 프로젝트 추가 또는 삭제 섹션을 참조하세요.
호스트 프로젝트의 측정항목 범위에서 서비스 프로젝트를 삭제하려면 다음 안내를 따르세요.
-
Google Cloud 콘솔에서 settings 설정 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.
- 측정항목 범위를 선택합니다.
- Google Cloud 프로젝트 창에서 프로젝트 삭제를 클릭한 후 확인 대화상자를 완료합니다.
-
gcloud
애플리케이션에 등록된 워크로드를 나열합니다.
gcloud apphub applications workloads list \ --application=APPLICATION_NAME --project=HOST_PROJECT_ID \ --location=REGION
애플리케이션에서 워크로드를 등록 취소합니다.
gcloud apphub applications workloads delete WORKLOAD_NAME \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
이제 워크로드가 애플리케이션에 등록할 수 있는 탐색된 워크로드가 됩니다.
이전 명령어를 반복하여 애플리케이션에서 등록된 나머지 워크로드를 삭제합니다.
애플리케이션에 등록된 서비스를 나열합니다.
gcloud apphub applications services list \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
애플리케이션에서 서비스 등록을 취소합니다.
gcloud apphub applications services delete SERVICE_NAME \ --application=APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
이제 서비스가 애플리케이션에 등록할 수 있는 탐색된 서비스가 됩니다.
이전 명령어를 반복하여 애플리케이션에서 등록된 나머지 서비스를 등록 취소합니다.
애플리케이션을 삭제합니다.
gcloud apphub applications delete APPLICATION_NAME \ --project=HOST_PROJECT_ID \ --location=REGION
호스트 프로젝트에서 서비스 프로젝트를 삭제합니다.
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
이전 명령어를 반복하여 호스트 프로젝트에서 모든 서비스 프로젝트를 제거합니다.
호스트 프로젝트의 측정항목 범위에서 서비스 프로젝트를 삭제합니다(프리뷰).
gcloud beta monitoring metrics-scopes delete projects/SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
이전 명령어를 반복하여 측정항목 범위 호스트 프로젝트에서 모든 서비스 프로젝트를 삭제합니다.