Cloud/GCP

[GCP] 구글 클라우드의 리소스 관리 : 리소스 계층 및 리소스 관리 방법

Ofglen 2023. 7. 10. 11:04

리소스 관리

리전과 영역

 

 

구글은 전 세계 인터넷 트래픽 40%을 책임질 정도로 거대한 네트워크를 구성하고 있다 (해저 케이블도 가진다)

PoP을 통해 구글 네트워크로 전송한다. PoP는 전 세계에 위치한 Google의 데이터 센터와 사용자들 간에 네트워크 연결을 제공하는 지점이다. PoP는 GCP의 다양한 서비스 및 제품에 적용되며, 사용자들이 가까운 PoP를 통해 데이터를 전송하고, 네트워크 지연 시간을 최소화하며, 안정적인 연결을 유지할 수 있도록 도와준다.

한국의 네트워크는 일본과 싱가포르를 지나서 통신하기 때문에 속도가 느려서 글로벌 서비스를 운영하는데 불리하다.

 

 

 

  • 멀티 리전: 리전이 손실되는 자연 재해로 인해 발생하는 재해 복구로 장애를 방지하기 위해 데이터의 복제 및 분산을 가능하게 설정하는 여러 개의 지리적으로 분리된 리전이다.
  • 리전(Region): 클라우드 서비스 제공업체가 데이터 센터를 운영하는 지리적인 영역
  • 영역(Zone): 영역은 리전 내의 물리적인 데이터 센터

 

 

클라우드 리소스의 계층 구조

구글의 리소스는 물리적 구조와 논리적 구조로 나뉜다.

  • 물리적 구조: 글로벌, 리전, 존
    • 리전: 1개의 리전에서 리소스를 배포하는데, 가용성을 높이기 위해 여러 영역에 동시에 중복 배포를 할 수 있다. GKE를 이용하면 이 과정들을 모두 자동화한다.
  • 논리적 구조: 프로젝트
    • Ex) 아모레퍼시픽 등의 화장품 회사
      • 계층적 구조
      • 조직
      • 폴더(제품 1), 폴더(제품 2), 폴더(테스트 프로젝트) 
      • 프로젝트
      • 리소스

 

 

 

프로젝트 관리

1. 워크스페이스, Cloud ID: 프로젝트 관리

GCP(Google Cloud Platform)에서 워크스페이스는 프로젝트 및 리소스를 구성하고 관리하는 단위입니다. 워크스페이스는 여러 프로젝트를 그룹화하고, 프로젝트 간에 리소스 및 권한을 공유하는 데 사용됩니다. 워크스페이스를 통해 여러 프로젝트를 효과적으로 관리하고, 프로젝트 간에 쉽게 협업할 수 있습니다. Cloud ID는 워크스페이스에 할당되는 고유한 식별자입니다. 이 Cloud ID는 GCP 리소스에 접근하는 데 사용되며, 워크스페이스 및 해당 프로젝트를 식별하는 데 도움을 줍니다. Cloud ID를 사용하여 워크스페이스와 관련된 리소스에 액세스하고 관리할 수 있다.

 

2. IAM: 리소스 관리

IAM은 GCP에서 사용되는 인증과 권한 부여를 위한 서비스이다. IAM을 사용하여 GCP의 리소스에 대한 액세스 권한을 제어하고 관리할 수 있다. IAM은 사용자, 그룹, 서비스 계정 등의 개체를 정의하고, 이러한 개체에 대한 역할(Role)을 할당하여 리소스에 대한 권한을 부여한다. IAM은 조직, 폴더, 프로젝트 단위에서 적용할 수 있다. 이 때 상속 개념을 갖는다.

 

 

⭐ 워크스페이스를 이용해서 구글 프로젝트 사용 권한을 줄 수 있다.

비용 효율면에서 구글 클라우드의 사용자를 관리하기 위해서 Cloud ID를 사용하는 것을 권장하고 있다. Google ID를 사용하면 IAM 할당 추적이 불가하기 때문이다.

프로젝트 로그인 시 이메일 알림 등을 개별적으로 설정해야 한다.

 

 

 

결제

결제는 프로젝트 단위로 지불한다.

리셀러(MSP rldjq)은 하위 계정을 사용한다.

리소스 계층 구조가 중요한 이유는 구글 클라우드의 공유 보안 모델 때문이다. 구글이 인프라 보안 관리를 책임지지만 개별 데이터의 보안은 각 기업의 책임이기 때문에 구글의 권장사항을 확인해야 한다. *데이터에 대해서 구글이 책임지지 않는다.

 

책임 범위

  • 온프레미스: 하드웨어, 스토리지 및 암호화, 네트워크, 감사로깅, OS, 데이터, 콘텐츠, 네트워크 보안, 액세스 및 인증, 연산, ID, 웹 애플리케이션 보안, 배포, 사용량, 액세스 정책, 콘텐츠
  • IaaS: ID, 웹 애플리케이션 보안, 배포, 사용량, 액세스 정책, 콘텐츠
  • PaaS: 웹 애플리케이션 보안, 배포, 사용량, 액세스 정책, 콘텐츠
  • 관리형 서비스: 사용량, 액세스 정책, 콘텐츠

 

 

결제 관리 방법

1. 예산 및 알림: 알림 트리거 기준을 설정하고 이메일 알림 및 Pub/Sub으로 웹 훅으로 애플리케이션을 URL을 직접 호출되게 할 수 있다.

2. 결제 내보내기: BigQuery로 상세 정보를 내보내서 결제 정보를 저장한다. *Cloud Storage도 가능하지만, 현업에서 BigQuery를 사용하는 것을 권장한다.

3. 지출 모니터링: 시각적으로 그래프를 통해 각 프로젝트 단위별로 리소스 전반의 사용량을 확인할 수 있다.

4. 할당량으로 한도 지정: 할댱량을 설정해서 리소스 과다 사용을 막아서 비용 급증을 방지할 수 있다.

쿠버네티스에 한정해서 할당량을 설정할 수 있다.

  • 비율 할당량: GKE API: 100초당 요청 수 1,000건
  • 할당 할당량: 프로젝트당 네트워크 5개

 

 

 

💡웹훅(Webhook)이란?

웹 훅(Webhook)은 애플리케이션이나 서비스가 특정 이벤트가 발생했을 때, 미리 정의된 URL 엔드포인트로 HTTP 요청을 보내는 개념이다.

웹 훅은 "이벤트-반응" 모델로 작동하여, 이벤트가 발생하면 관련된 정보를 담은 HTTP POST 요청을 해당 URL로 전송한다. 웹 훅은 주로 애플리케이션 간의 데이터 흐름을 자동화하고, 실시간으로 통신할 필요가 있는 상황에서 사용된다.

예를 들어, 소셜 미디어 애플리케이션에서 새로운 게시물이나 댓글이 생성되었을 때, 웹 훅을 사용하여 이벤트가 발생한 정보를 다른 시스템으로 전송하고, 해당 시스템에서는 이 정보를 처리하는 등의 작업을 수행할 수 있다.

애플리케이션이 URL을 호출하는 개념과는 다르게, 웹 훅은 이벤트가 발생했을 때 해당 URL로 HTTP 요청을 보내는 것이므로, 외부 시스템이나 서비스가 이벤트에 대한 반응을 수행하도록 하는 방식이다.

 

 

 

구글 클라우드 상호작용 방법

  1. Cloud Console: Web 기반 GUI
  2. Cloud SDK: CLI *현업에서 CLI 사용을 권장한다.
    • gcloud
    • kubectl : kubernetes 제어 명령줄 도구
    • gsutil : google storage 제어 명령줄 도구
    • bq : big query 제어 명령줄 도구

 

구글 클라우드 SDK 설치(https://cloud.google.com/sdk/docs/install?hl=ko#installation_instructions)

 

gcloud CLI 설치  |  Google Cloud

gcloud CLI 설치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에는 Google Cloud CLI 설치를 선택하고 유지하기 위한 안내가 포함되어 있습니다. Google Cl

cloud.google.com

 

Cloud Shell Code Editor: Cloud Shell 환경 내 파일 편집 도구 (Eclipse)

 

 

3. Cloud 모바일 앱: 단순히 빌링 체크

4. REST 기반 API