JD의 블로그

[Coursera] Google Cloud Associate Engineer Prepare - Week 3-2( 결제 관리와 CLI) 본문

클라우드/GCP

[Coursera] Google Cloud Associate Engineer Prepare - Week 3-2( 결제 관리와 CLI)

GDong 2019. 11. 25. 23:34

지금까지 아래의 주제로 다뤄보았다. 

*Week 2 - ACE 자격증은 무엇이고 어떻게 준비하는가? 

*Week 3-1 - 클라우드 솔루션을 위한 가장 기본적인 단계 ( 프로젝트와 계정 )

 

이번에는 구글 클라우드 내에서 비용이 드는 기능을 사용하기 위해 필요한 결제 관리(Billing management) 및 콘솔이 아닌 명령어를 통해 구글 클라우드의 기능을 사용하기 위한 Command line interface (CLI)에 대해 알아볼 예정이다. 

 

1.2 결제 관리 (Billing management)

예산과 결제를 관리하는 것은 프로젝트를 관리하는데 대단히 중요하다!

( 클라우드 서비스가 그~렇게 친절하지는 않으므로, 비용과 관련된 부분은 꼼꼼하게 알고 있는 것이 좋다고 생각한다. )

 

1.2 세션에서 다룰 내용

* 한 개 이상의 결제 계정을 만들기

* 결제 계정과 프로젝트 연동하기

* 예산과 경고 설정하기 

* 일일/월별 요금을 추정하기 위한 요금 내역 확인 설정하기

 

결제와 관련된 흐름

결제 계정 설정 

결제 계정을 관리하고 결제 계정을 프로젝트에 할당하기 위해, 결제 관리자의 권한을 가지고 있어야 한다. 

그리고, 기존의 프로젝트에 대한 결제 계정을 바꾸기 위해, 프로젝트 관리자 권한바꾸려는 결제 계정에 대한 결제 관리자 권한을 가지고 있어야 한다. 

 

새로운 프로젝트를 생성하면, 바로 어떤 결제 계정과 연동할지 선택할 수 있다. 그러나, 선택할 수 있는 결제 계정이 1개뿐이라면 자동적으로 그 계정과 연동된다. 

 

만약 결제 계정이 없다면, 다양한 GCP 서비스를 이용하기 위해 결제 계정을 생성하는 것이 좋다.

( 고지서에 놀라지 않으려면, GCP 서비스 이용에 대한 전체 요금을 한 예산(= 결제 계정)에 할당하지 말 것을 추천한다. )

 

결제 계정은 결제 수단이 정의된 Google 결제 프로필에 연결된다. 

결제 계정과 결제 프로필의 차이

 

중요: 결제 계정에 연결되지 않은 프로젝트는 프로젝트에서 사용할 수 있는 제품과 서비스가 제한된다. 결제 계정에 연결되지 않은 프로젝트에서는 유료 GCP 서비스를 사용할 수 없다.

 

예산과 경보 설정 ( 우리의 돈은 소중하니까!  ) 

예산과 경보 설정

예산 한도를 설정하고 나면, 사용량에 대한 경보도 설정할 수 있다.

이런 방법을 통해 예산을 어떻게 사용하였는지에 대한 정보를 지속적으로 받아볼 수 있다!

(참고 : 사용 할당량을 설정하기 위해서도 결제 관리자 권한을 가지고 있어야 한다. )

 

예산 한도 경보는 결제 계정 또는 프로젝트에 적용할 수 있다. 예산 같은 경우 원하는 만큼 설정할 수도 있고, 지난달에 사용한 것에 맞춰 설정할 수도 있다. 

 

예산을 설정해도 API 사용량에는 제한이 없는데, 예산 한도 경보가 울려도 서비스는 지속적으로 운영되므로 비용이 소모된다.

 

중요: 예산을 설정해도 API 사용량에 상한이 설정되는 것은 아니다. 예산의 목적은 시간 경과에 따른 지출 추세를 확인할 수 있도록 알림을 트리거하는 것이다. 예산 알림에 따라 비용 관리를 위한 조치를 취할 수 있지만 예산이 충족되었거나 초과되었을 때 서비스 사용을 방지할 수는 없다. 비용이 발생하지 않도록 API 사용량에 상한을 설정하려면 API 사용량 상한 설정을 참조하면 된다. 비용 상한을 설정하는 또 다른 옵션은 프로젝트에 대한 청구를 프로그래매틱 방식으로 사용 중지하는 것이다.

 

요금과 관해서 좀 더 자세히 알고 싶다면 구글 클라우드 비용 관리 관련 영상 모음, 그리고 공식 문서를 참고하길 바란다. 

 

1.3 명령줄 인터페이스 ( Command line interface - CLI )

마지막으로, GCP의 명령줄 인터페이스(CLI)에서 알아야 할 것들에 대해서 살펴보자.

대부분 CLI는 클라우드 Software Devlopment Kit(SDK)를 중심으로 이루어진다.

 

Google Cloud Console에서 CLI툴을 제공해주는 Cloud Shell

Cloud Shell 특징

Google Cloud Console은 브라우저에서 쉽게 접근할 수 있는 GCP에 대한 CLI 툴을 제공해주는데 이것을 Cloud Shell이라고 한다. Cloud Shell에서, 사용자는 다운로드 없이 Google Cloud SDK에서 제공하는 도구들을 사용할 수 있다. 그리고 Google Cloud SDK는 사용자가 GCP 상의 리소스와 애플리케이션을 관리하기 위해 사용하는 도구 모음이라고 생각하면 된다.  Cloud Shell을 통해 "gcloud, gsutil (Cloud Storage), bq (BigQuery)"와 같은 명령어가 이미 설치된 VM을 이용할 수 있다. 

 

Google CLoud Shell이 제공하는 기능은 다음과 같다.

 

* 임시 Compute Engine 가상 머신 인스턴스

* 웹 브라우저에서 인스턴스에 명령줄로 액세스

* 기본 제공 코드 편집기

* 5GB의 영구 디스크 저장소

* 사전 설치된 Google Cloud SDK 및 기타 도구

* 자바, Go, Python, Node.js, PHP, Ruby, .NET과 같은 언어 지원

* 웹 미리 보기 기능

* GCP 콘솔 프로젝트 및 리소스 액세스를 위한 자체 승인 기능

 

Google Cloud Shell 사용 화면

 

Google Cloud SDK 특징

또한 로컬 컴퓨터, 노트북, 또는 온프레미스 서버, 가상 머신 등에 SDK를 설치하는 방법도 있다. SDK는 도커 이미지로도 사용 가능하기 때문에 사용자의 애플리케이션이 컨테이너화 되어 있다면 이를 이용해 매우 쉽고 깔끔하게 작업이 가능하다. 

 

정리하면

1. 유료 GCP 서비스를 이용하기 위해 프로젝트에 결제 계정을 연동해야 한다. 
2. 프로젝트와 결제 계정을 연동하기 위해서는 결제 관리자 권한이 있어야 한다. 
3. 기존 프로젝트의 결제 계정을 변경하기 위해서는 프로젝트 관리자 권한과 결제 계정의 관리 권한 2개 모두 필요하다.
4. 결제 관리자 권한이 있으면 예산과 경보를 설정할 수 있는데, 예산을 설정하고 경보가 울린다고 해서 서비스가 중지되는 것은 아니다. 비용이 발생하지 않으려면 API 사용량을 설정하던지, 프로그래매틱 방식으로 중지시켜야 한다. 
5. SDK는 GCP 상의 리소스를 관리하기 위한 도구 모음이다. 
6. Cloud Shell은 브라우저 상에서 SDK의 기능을 사용할 수 있는 CLI 툴이다.