GCP란?
GCP는 구글의 퍼블릭 클라우드 서비스이다. 퍼블릭 클라우드는 여러 업체가 있는데, 마이크로소프트 Azure, 아마존 AWS 구글 GCP 등 여러가지가 있다. 보통 이 3업체가 Big3 이다. 여기서는 GCP에 대해서 간단하게 알아본다.
모든 클라우드 서비스들은 저마다의 강점이있는데, GCP는 다른유투브나 지메일 같은 구글 자사의 서비스를 제공하기 위해 구축된 기반과 동일한 기반을 사용할 수 있다는 강점이 있다. 특히 컨테이너를 사용한 웹 애플리케이션 실행 기반을 구축하기 위한 서비스들과 머신러닝으로 대표되는 대규모 데이터를 분산 환경에서 사용하여 머신러닝을 위한 서비스들이 많다.
또한 GCP는 무료 체험판으로 300$의 무료 크레딧을 준다. (2020년 6월 기준) 크레딧을 받으려면 카드정보를 입력해야 하며, 돈은 나가지 않는다. 크레딧을 다 쓰거나 등록 후 12개월 경과하면 무료체험은 종료된다. 클라우드 서비스의 비용 지불은 마치 게임 종량제 과금과 비슷하다. 단순하게 말해 시스템 자원 (CPU, Memory, Disk 등) 또는 플랫폼에 대해 과금을 한다고 생각하면 된다. CPU 1개를 쓰면, 시간당 오백원이다. 뭐 이런 느낌이다.
물론 종량제 말고도 다른 요금제가 있을 것이다. 큰 회사에서 계약하는 건이라면 세일즈 매니저를 통해 여러 요금제를 확인할 수 있다.
GCP 접속 및 계정등록
- cloud.google.com 들어가서 절차에 따라 가입한다. "무료로 시작하기" 선택
- 신용카드를 등록해야 한다. 카드정보는 신원확인과 로봇에 의한 등록이 아니라는 것을 확인할 목적이다.
- 계정에 의도하지 않은 요금이 발생하지 않도록 무료체험이 끝나면 계정이 일시적으로 정지된다.
- 유료 계정으로 업그레이드하려면 gcp 콘솔 상단에 업그레이드 버튼을 클릭하여 수동으로 업그레이드 해야 한다.
- GCP에서는 무료로 쓸수 있는 몇가지 서비스가 있다. (Google App Engine의 무료 프레임, Google Cloud Storage에 대한 데이터 전송 등) 최신정보는 계속 바뀌므로 공식사이트에서 확인해야 한다.
GCP 기본 화면
위의 모든 계정 생성 작업을 완료하고 로그인을 하면 위와 같은 화면을 볼 수 있다. 프로젝트 선택은, 한 GCP 계정에 여러가지 서비스를 올려 쓰다 보면 헷갈리므로, 각 프로젝트 단위로 서비스를 만들 수 있다. 즉 어떤 서비스를 만드려면 프로젝트부터 만들어야 한다.
왼쪽 메뉴는 GCP에서 제공하는 서비스 및 사용자 설정을 위한 메뉴이다. [컴퓨팅] 윗부분은 사용자 메뉴이며, 결제, 보안, 지원 외 여러가지 기본 설정들을 할 수 있다. 시작하기 를 누르면, 기본적인 설명과 가장 사람들이 많이 쓰는 서비스를 보여준다.
고정하면 여기에 표시됩니다. 는 자주 쓰는 메뉴를 즐겨찾기 하는 것이다. 예를들어 Compute Engine을 주로 쓴다면 해당 부분을 고정할 수 있다. Compute Engine 메뉴에 마우스 커서를 갖다대면, 압정 표시가 있는데 해당 표시를 클릭하면 된다.
API 및 서비스 는 꽤 중요한데, GCP에서 제공하는 여러가지 API들을 확인할 수 있다. 이러한 API들을 개발에서 사용하거나, 도커 서비스에서 사용하는 등 여러가지 방법으로 사용할 수 있다.
서비스들은 여러가지가 있다. 컴퓨팅, 네트워킹, 저장소, 빅데이터, 인공지능, 솔루션 등 여러가지가 있는데, 이러한 모든 서비스들은 기반 지식이 있어야만 사용 가능하다. 그냥 단순하게 "나 클라우드 쓸래!" 이러고 쓰는 것이 아니다. 아래처럼 저장소의 SQL 이라던지, 컴퓨팅의 Kubernetes Engine이라던지, 뭐든 사전에 지식이 있어야 한다. 클라우드 서비스는 말그대로 원래는 직접 구매해서 써야 하지만 그렇지 않고 "Cloud"로 제공하는 것이기 때문이다.
대시보드
GCP에서 사용할 수 있는 도커 관련 서비스들 예시
* Google Cloud Container Builder (API)
Dockerfile을 바탕으로 도커 이미지를 GCP 상에서 작성하기 위한 커맨드 툴 이다. Dockerfile을 저장하는 소스 레포지토리에 저장된 도커파일로부터 이미지를 빌드하고, Container Registry로 자동으로 업로드할 수 있다. 소스 리포지토리는 Google Cloud Source Repository, Github, Bitbucket 사용 가능하다. GCB로 작성한 도커 이미지 저장 위치는 GCP의 오브젝트 스토리지 서비스인 Google Cloud Storage(유럽/아시아/미국리전)을 지정할 수 있다. 스토리지에 액세스할 사용자를 지정할 수 있어 프라이빗한 환경에서 이미지를 안전하게 관리할 수 있다.
* Google Kubernetes Engine
GKE는 도커 컨테이너를 관리하는 풀 매니지드 서비스이다. 사용자가 정의한 CPU나 메모리 같은 인프라 요구사항을 바탕으로 컨테이너 클러스터에 스케줄링하여 자동으로 관리한다. GKE는 오픈소스 컨테이너 오케스트레이션 툴인 쿠버네티스를 사용한다. 알아서 쿠버네티스 환경을 만들어서 컨테이너를 오케스트레이션 할 수 있게 해준다. 또한 애플리케이션 요구 변화에 맞춰 컨테이너에 할당되는 클러스터 리소스나 컨테이너 클러스터의 크기를 조정할 수 있다. GKE는 쿠버네티스의 kubectl 명령이나 클라우드 콘솔에서 조작할 수 있다. GCP VM 또는 로컬 호스트에서 쿠버네티스를 직접 구축하면 어렵지만, 이 메뉴에서 쿠버네티스를 구축하면 아주 간단하게 구축할 수 있다.
* Google Container Registry (GCR)
도커이미지는 용량이 커서 온프레미스 환경에서 관리 어려움이 발생할 수 있다. GCR은 도커 이미지를 GCP의 제품 안에서 관리할 수 있는 Private Registry 이다. Docker registry V2 API를 이용하여 자신의 개인 레지스트리를 만들고 도커 이미지의 업로드(푸쉬) 다운로드(풀) 을 할 수 있다. 도커 이미지의 저장 위치는 GCP가 제공하는 오브젝트 스토리지 서비스인 Google Cloud Storage를 사용한다. 이 때 유럽, 아시아, 미국 지역별 cloud storage 버킷 중 compute engine 인스턴스와 지리적으로 가까운 것을 지정함으로써 다운로드 시간을 단축시킬 수 있다. 또한 이미지의 아카이브를 cloud storage nearline 버킷에 저장할수도 있다.
그 외 GCP에서 사용 할 수 있는 여러 서비스들
* Google Cloud Storage
구글에서 제공하는 오브젝트 스토리지 서비스. 여러가지 타입의 스토리지가 있고, 어떤 서비스에 사용해야 할지 (엑세스가 많은 데이터, 엑세스 빈도가 적은 재해복구용 데이터 등) 따라 스토리지 타입을 정해서 사용한다. 더 이상 자세한 설명은 생략한다.
* Google Compute Engine
가상머신을 만들 수 있는 서비스이다. 스토리지, CPU, RAM 등에 따라 과금된다.
* 그 외
Firebase, Google Maps API 등을 포함해 앱, 웹사이트, 서비스를 구축하고 실행하는 데 필요한 여러가지 기능들이 있다.
프로젝트
GCP 는 프로젝트라 부르는 단위로 시스템을 관리한다. 프로젝트는 사용자가 특정 조건에 맞춰 (예를들어 업무별로) GCP의 리소스를 모아 놓은 것으로, GCP 계정과 연결되어 프로젝트에 등록된 계정만 프로젝트 안의 리소스를 관리할 수 있있다. GCP내에서 작업을 하는 경우 필수로 프로젝트를 먼저 생성해야 한다.
사용중인 프로젝트를 종료하면 그 안에서 이용하던 리소스 (가상머신 인스턴스, 쿠버네티스 클러스터 등)는 모두 삭제되며, 요금은 일절 청구되지 않는다. 그래서 GCP에서는 일시적으로 테스트용으로 프로젝트를 만들고, 테스트 끝나면 프로젝트별로 종료를 하는 사용법이 가능하다.
* 프로젝트 생성하기
1. 콘솔 상단 아래 붉은색 네모칸을 클릭한다. 해당 부분이 현재 프로젝트를 보여준다.
2. 오른쪽의 새 프로젝트를 선택한다.
3. 프로젝트 생성
프로젝트 이름을 설정하고 만들면 된다.
# 참고 : 프로젝트 명명
gcp의 프로젝트는 프로젝트ID라는 UUID로 식별한다. 이 식별자는 영어소문자, 숫자, 대시로 이루어졌다. 프로젝트 작성시 입력한 프로젝트명을 바탕으로 프로젝트ID가 자동으로 생성되는데, 기존 프로젝트와 중복되지 않는다면 임의의 값을 설정할수도 있다.
또한 프로젝트명에 대해서는 기존의 프로젝트와의 중복을 신경쓰지 않고 자유롭게 설정할 수 있다. gcloud 명령이나 API 요청의 옵션에는 프로젝트명이 아니라 프로젝트ID를 식별자로써 전달해야 한다. 일단 프로젝트를 작성했으면, 프로젝트명과 ID는 바꿀 수 없다. 소규모 시스템에서는 크게 중요하지 않지만, 대규모 시스템에서는 여러 프로젝트를 효율적으로 관리하기 위해 프로젝트명,ID 명명 규칙을 정하는게 좋다. 예를 들어 기업명 식별자, 시스템명 식별자, 테스트용인지 실제사용인지 구분하는 플래그 등
다 만들어지면 만든 프로젝트를 선택할 수 있으며, 해당 프로젝트에 대한 대시보드 및 활동을 확인할 수 있다.
* 프로젝트 삭제
1. 아래 "새 프로젝트" 왼쪽에 기어모양 폴더를 클릭한다.
2. 원하는 프로젝트를 선택하고 상단에 삭제 버튼으로 삭제할 수 있다.
삭제하면 프로젝트 전체에 액세스할 수 없게 되어 요금이 청구되지 않는다. 또한 프로젝트의 소유자는 30일 이내에 삭제를 취소할 수 있다.
GCP를 사용하는 여러가지 방법
1. cloud console(https://console.cloud.google.com/)을 사용하여 웹 브라우저의 GUI사용
위에서 보여준 브라우저에서 접속해서 사용하는 일반적인 방법
2. cloud SDK를 설치하고 gcloud 명령을 사용
원하는 서버에 cloud SDK를 설치한 후 glcoud 명령으로 GCP를 컨트롤할 수 있다. cloud SDK 설치는 다음 링크를 참고한다.
2020/07/01 - [Cloud Platforms] - [Cloud Platforms] Google Container Registry API 사용하기
3.GCP 웹브라우저의 cloud shell을 사용하여 gcloud 명령 사용
cloud shell은 클라이언트 단말에 cloud SDK 등의 툴을 설치하지 않아도 gcloud 명령을 사용할 수 있는 웹브라우저 어플리케이션이다. 또한 cloud shell에는 java, go, python 등의 주요 언어 개발환경이 도입되어 있고 파일의 업로드/다운로드 기능과 코드 에디터드 제공되어 브라우저에서 파일을 편집할 수 있다. 참고 : https://cloud.google.com/shell/
아래와 같이 붉은 아이콘을 클릭하면, 아래와 같이 프롬프트가 나온다. 여기서 GCP를 컨트롤할 수 있다.
* cloud shell의 주요 툴
linux shell |
bash, sh |
google sdk, tool |
google app engine sdk , google cloud sdk, gsutil for cloud storage |
텍스트 에디터 |
emacs, vim, nano |
빌드와 패키지를 위한 툴 |
gradle, make, maven, npm, nvm, pip |
버전관리 |
git, mercurial |
기타 |
docker, ipython, mysql 클라이언트, gRPC 컴파일러 |
'Cloud Platforms' 카테고리의 다른 글
[Cloud Platforms] Google Container Registry API 사용하기 (0) | 2020.07.01 |
---|