Compute Engine에서 자동 확장 스크립트 또는 런타임 서비스를 사용하면 지속적 통합 및 지속적 배포 (CI/CD) 파이프라인을 자동화할 수 있습니다. 하지만 이러한 리소스는 전역 API 엔드포인트를 쿼리할 때 전역 리소스 정의에 크게 의존하므로 이 접근 방식은 멀티 리전 아키텍처 전반에 단일 장애점을 도입할 수 있습니다.
이 위험을 완화하려면 전역 리소스의 리전 뷰에 액세스하도록 서비스를 구성하면 됩니다. 컴퓨팅 워크로드가 실행되는 정확한 리전 내에서 리전화된 읽기 전용 엔드포인트에 GET 및 LIST 요청을 전송하면 서비스는 전역 컨트롤 플레인 또는 다른 리전의 잠재적 서비스 중단으로부터 API 소비를 격리합니다. 리전화된 읽기 전용 엔드포인트 및 복원력 권장사항에 대한 자세한 내용은 복원 가능한 제어 영역 읽기에 리전 뷰 사용을 참조하세요.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 서비스 및 API에 Google Cloud 액세스하기 위해 ID를 확인합니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.
이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.
콘솔
콘솔 Google Cloud 을 사용하여 Google Cloud 서비스 및 API에 액세스하는 경우 인증을 설정할 필요가 없습니다.
gcloud
-
Google Cloud CLI를 설치합니다. 설치 후 Google Cloud CLI를 초기화하려면 다음 명령어를 실행합니다.
gcloud init외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
- 기본 리전 및 영역을 설정합니다.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.
Google Cloud CLI를 설치합니다.
외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
자세한 내용은 인증 문서의 REST 사용을 위한 인증 을 참조하세요. Google Cloud
필요한 역할
전역 리소스에 리전별로 액세스하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트 또는 OS 이미지에 대한
Compute 인스턴스 관리자 (v1) (roles/compute.instanceAdmin.v1) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 전역 리소스에 리전별로 액세스하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
전역 리소스에 리전별로 액세스하려면 다음 권한이 필요합니다.
-
프로젝트의 리전 뷰를 가져오려면 프로젝트에 대한
compute.projects.get -
OS 이미지의 리전 뷰를 가져오려면 프로젝트 또는 OS 이미지에 대한
compute.images.get및compute.images.list
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한 을 부여받을 수도 있습니다.
프로젝트 리소스
projectViews 읽기 전용 엔드포인트를 사용하여 전역 프로젝트 리소스의 리전 뷰를 가져올 수 있습니다.
projectViews 엔드포인트를 쿼리하면 Compute Engine
은 표준 전역 compute.Project
리소스 객체를 반환합니다. 리소스 자체는 전역으로 유지됩니다.
프로젝트 리소스의 리전 뷰 가져오기
Google Cloud CLI 또는 REST API를 사용하여 전역 프로젝트의 리전 뷰를 가져올 수 있습니다.
gcloud
특정 리전의 컨트롤 플레인을 통해 전역 프로젝트를 설명하려면 gcloud compute project-views describe 명령어를 실행합니다.
gcloud compute project-views describe \
--region=REGION \
--project=PROJECT_ID
다음을 바꿉니다.
REGION: API 요청의 Google Cloud 리전(예:us-central1)PROJECT_ID: 프로젝트 ID
REST
특정
리전의 컨트롤 플레인을 통해 전역 프로젝트를 설명하려면
projectViews 메서드에 GET 요청을 전송합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/projectViews"
다음을 바꿉니다.
PROJECT_ID: 프로젝트 IDREGION: API 요청의 Google Cloud 리전(예:us-central1)
API는 표준 compute.Project 리소스 표현을 직접 반환합니다.
{
"kind": "compute#project",
"id": "1234567890123456789",
"creationTimestamp": "2024-01-15T10:00:00.000-08:00",
"name": "my-project12345",
"commonInstanceMetadata": {
"items": [
{
"key": "example-key",
"value": "example-value"
}
]
},
"selfLink": "https://www.googleapis.com/compute/v1/projects/my-project12345",
"defaultServiceAccount": "SERVICE_ACCOUNT_EMAIL"
}
OS 이미지 리소스
imageViews 읽기 전용 엔드포인트를 사용하여 전역 OS 이미지 리소스의 리전 뷰를 가져올 수 있습니다.
imageViews 엔드포인트를 쿼리하면 Compute Engine
은 표준 전역 compute.Image
리소스 객체를 반환합니다. 리소스 자체는 전역으로 유지됩니다.
OS 이미지 리소스의 리전 목록 가져오기
gcloud CLI 또는 REST API를 사용하여 특정 리전 엔드포인트를 통해 프로젝트에서 사용할 수 있는 모든 전역 OS 이미지를 나열할 수 있습니다.
gcloud
리전 엔드포인트를 사용하여 전역 OS 이미지를 나열하려면
gcloud compute image-views list 명령어를 실행합니다.
gcloud compute image-views list \
--region=REGION \
--project=PROJECT_ID
다음을 바꿉니다.
REGION: API 요청의 Google Cloud 리전(예:us-central1)PROJECT_ID: 프로젝트 ID
REST
리전 엔드포인트를 사용하여 전역 OS 이미지를 나열하려면 GET 요청을 imageViews 메서드에 전송합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/imageViews"
다음을 바꿉니다.
PROJECT_ID: 프로젝트 IDREGION: API 요청의 Google Cloud 리전(예:us-central1)
OS 이미지 리소스의 리전 뷰 가져오기
gcloud CLI 또는 REST API를 사용하여 리전 엔드포인트를 통해 특정 전역 OS 이미지의 정보를 검색할 수 있습니다.
gcloud
리전 엔드포인트를 사용하여 전역 OS 이미지의 세부정보를 검색하려면
gcloud compute image-views describe 명령어를 실행합니다.
gcloud compute image-views describe IMAGE_NAME \
--region=REGION \
--project=PROJECT_ID
다음을 바꿉니다.
IMAGE_NAME: 전역 OS 이미지 리소스의 이름REGION: API 요청의 Google Cloud 리전(예:us-central1)PROJECT_ID: 프로젝트 ID
REST
리전 엔드포인트를 사용하여 전역 OS 이미지의 세부정보를 검색하려면 특정
imageViews 메서드에 GET 요청을 전송합니다.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/imageViews/IMAGE_NAME"
다음을 바꿉니다.
PROJECT_ID: 프로젝트 IDREGION: API 요청의 Google Cloud 리전(예:us-central1)IMAGE_NAME: 전역 OS 이미지 리소스의 이름
API는 표준 compute.Image 리소스 표현을 직접 반환합니다.
{
"kind": "compute#image",
"id": "1234567890123456789",
"creationTimestamp": "2024-01-15T10:00:00.000-08:00",
"name": "my-image12345",
"sourceDisk": "https://www.googleapis.com/compute/v1/projects/my-project12345/zones/us-central1-a/disks/my-disk12345",
"sourceDiskId": "1234567890123456789",
"sourceType": "RAW",
"status": "READY",
"selfLink": "https://www.googleapis.com/compute/v1/projects/my-project12345/global/images/my-image12345"
}