GCP

GCP란? - 서비스 계정 & Project 생성 / SDK(gcloud) 설치

Somaz 2023. 4. 6. 17:18
728x90
반응형

Overview

오늘은 GCP에 대해서 공부해보려고 한다.

 

오늘 실습할 내용은 아래와 같다.

  • 무료 체험판 아이디 생성
  • Project 생성
  • 서비스 계정 생성
  • 서비스 계정 키 생성
  • SDK(gcloud)

GCP란?

https://sjh836.tistory.com/167

GCP는 Google에서 제공하는 클라우드 컴퓨팅 서비스 제품군인 Google Cloud Platform의 약자이다.

기업과 개발자가 애플리케이션을 구축, 배포 및 관리하고 Google 인프라에서 데이터를 저장 및 처리할 수 있도록 다양한 도구와 리소스를 제공한다.

 

GCP 서비스에는 컴퓨팅, 스토리지, 데이터베이스, 네트워킹, 머신러닝, 빅데이터 분석 등이 포함된다. 이를 통해 사용자는 필요에 따라 인프라를 확장하고 사용한 리소스에 대해서만 비용을 지불하며 보안 및 안정성에 대한 Google의 전문성을 활용할 수 있다.

 

 

 

 


GCP 실습


 

1. 무료 체험판 아이디 생성

GCP의 무료 체험판 아이디 생성은 간단하다.

 

아래의 페이지에서 기존 google ID로 간단하게 생성할 수 있다.

https://console.cloud.google.com/

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

 

생성을 완료한 후 결제 페이지로 가서 확인해보면 무료 크레딧이 들어와 있을 것이다.

 


 

2. 신규 프로젝트 생성 및 선택

먼저 왼쪽 바에서 [프로젝트 만들기]를 선택한다.

 

그리고 프로젝트 이름을 적어준다.

  • 프로젝트 이름: 사람이 읽을 수 있는 프로젝트 이름이다.
  • 프로젝트 ID: 전역에서 고유한 프로젝트 식별자이다.
  • 프로젝트 번호: 자동으로 생성되는 프로젝트의 고유 식별자이다.

프로젝트 이름, 프로젝트 ID 또는 기타 리소스 이름에 민감한 정보를 포함하면 안된다.

 

프로젝트 ID는 다른 여러 Google Cloud 리소스의 이름에 사용되며 프로젝트 또는 관련 리소스에 대한 참조에서 프로젝트 ID와 리소스 이름이 노출된다.

 

 

만들고 난 후 IAM - 리소스 관리로 들어가보면 아래와 같이 생성되어있다.

 

왜 프로젝트가 2개나 생성된건지 잘 모르겠지만 생성완료 후 아래와 같이 프로젝트를 선택할 수 있다.


3. 서비스 계정 생성

프로젝트 선택 후 IAM 및 관리자에서 서비스 계정으로 들어가준다.

 

그리고 해당 페이지에서 [서비스 계정 만들기]를 클릭한다.

 

자신이 원하는 서비스 계정 ID를 입력 후 [만들고 게속하기]를 클릭해준다.

 

프로젝트 권한

특정 프로젝트 내의 사용자, 그룹 또는 서비스 계정에 할당된 ID 및 액세스 관리(IAM) 역할과 관련이 있다.

프로젝트 권한은 엔터티가 해당 프로젝트 내의 리소스에 대해 수행할 수 있는 작업을 결정한다.

IAM 역할은 Compute Engine, Cloud Storage 등과 같은 GCP 서비스에 대해 정의된 권한 모음이다.

사전 정의된 역할(예: 소유자, 편집자, 뷰어)과 특정 요구에 맞게 생성할 수 있는 커스텀 역할이 있다.

 

계정 액세스 권한

개별 사용자 대신 애플리케이션 또는 서비스를 나타내는 특수 계정인 서비스 계정과 연결된다.

서비스 계정을 만들 때 IAM 역할을 할당하여 리소스에 대한 액세스 권한을 부여한다.

이러한 권한은 서비스 계정이 프로젝트 내의 리소스에서 수행할 수 있는 작업을 정의한다.

서비스 계정 권한은 애플리케이션 및 서비스에 대한 세분화된 액세스 제어를 부여하여 기능에 필요한 최소한의 권한만 갖도록 하는 데 유용하다.

 

요약하자면 프로젝트 권한은 IAM 역할과 연결되고 프로젝트 내의 리소스에 대해 수행할 수 있는 작업을 정의하는 반면, 계정 액세스 권한은 서비스 계정과 관련되고 해당 리소스에 대한 애플리케이션 또는 서비스의 액세스 수준을 제어한다.

 

이제 프로젝트에 대한 액세스 권한을 부여한다. "소유자"를 선택해준다.

  • 소유자 : 프로젝트 및 프로젝트 내의 모든 리소스에 대한 역할 및 관리

 

서비스 계정 액세스 권한은 부여하지 않는다. 그 이유는 위의 권한 설명으로 대체되었을 것으로 보인다.

[완료]를 클릭한다.

 

 

계정 생성이 아래와 같이 완료되었다.

 


 

4. 서비스 계정 키 생성

AWS를 사용한 후 다들 GCP로 넘어왔을 것으로 추측이 된다.

AWS에서 aws configure을 위한 키와 동일한 것으로 보인다.

 

계정 선택 후 키 항목에 들어온 후 [키 추가]를 클릭해준다.

 

[키 추가] 클릭 후 [새 키 만들기]로 들어와 키 유형은 JSON을 선택해 준다.

 

[만들기]를 클릭하면 아래와 같이 자동으로 컴퓨터에 키가 저장된다.

 


SDK(gcloud) 설치 - google cloud CLI

내 OS은 window지만, ubuntu WSL을 사용중이기 때문에 해당 방법으로 진행한다.

 

 

google-cloud-cli tar 파일 설치

curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-422.0.0-linux-x86_64.tar.gz

 

해당 tar 파일 압축 풀기

tar xvf google-cloud-cli-422.0.0-linux-x86_64.tar.gz

 

(옵션)help 명령어 사용해 보기

$ ./google-cloud-sdk/install.sh --help
Welcome to the Google Cloud CLI!
usage: install.py [-h] [--usage-reporting USAGE_REPORTING]
                  [--screen-reader SCREEN_READER] [--rc-path RC_PATH]
                  [--command-completion COMMAND_COMPLETION]
                  [--path-update PATH_UPDATE] [--disable-installation-options]
                  [--override-components [OVERRIDE_COMPONENTS [OVERRIDE_COMPONENTS ...]]]
                  [--additional-components ADDITIONAL_COMPONENTS [ADDITIONAL_COMPONENTS ...]]
                  [--quiet] [--install-python INSTALL_PYTHON]
...

 

설치하기

$ ./google-cloud-sdk/install.sh
Welcome to the Google Cloud CLI!

To help improve the quality of this product, we collect anonymized usage data
and anonymized stacktraces when crashes are encountered; additional information
is available at <https://cloud.google.com/sdk/usage-statistics>. This data is
handled in accordance with our privacy policy
<https://cloud.google.com/terms/cloud-privacy-notice>. You may choose to opt in this
collection now (by choosing 'Y' at the below prompt), or at any time in the
future by running the following command:

    gcloud config set disable_usage_reporting false

Do you want to help improve the Google Cloud CLI (y/N)?  y
...

 

(옵션) 최신 glcoud 라이브러리 설치

 

gcloud 초기화

$ gcloud init
Welcome! This command will take you through the configuration of gcloud.

Your current configuration has been set to: [default]

You can skip diagnostics next time by using the following flag:
  gcloud init --skip-diagnostics

Network diagnostic detects and fixes local network connection issues.
Checking network connection...done.
...
tcgetpgrp failed: Not a tty

 

그럼 아래와 같이 계정 선택 페이지로 넘어가게 된다.

 

그럼 아래와 같이 액세스 페이지가 뜨고 [허용]을 눌러주면 된다.

 

인증이 성공하였다!

 

인증 성공 후 CLI로 돌아가 프로젝트를 선택하면 끝난다.

Pick cloud project to use:
 [1] Project1
 [2] Project2
 [3] Enter a project ID
 [4] Create a new project
Please enter numeric choice or text value (must exactly match list item):  2
....
Some things to try next:

* Run `gcloud --help` to see the Cloud Platform services you can interact with. And run `gcloud help COMMAND` to get help on any gcloud command.
* Run `gcloud topic --help` to learn about advanced features of the SDK like arg files and output formatting
* Run `gcloud cheat-sheet` to see a roster of go-to `gcloud` commands.

 


 

GCP SDK 인증방식

Google Cloud SDK 인증 프로세스는 주로 승인을 위한 개방형 표준인 OAuth 2.0을 사용한다. Google Cloud Platform(GCP) 리소스에 액세스하기 위해 사용자, 서비스 계정 또는 애플리케이션을 인증하고 승인할 수 있다.

 

프로세스는 다음 단계로 구성된다.

 

  1. Google Cloud SDK 설치: 시작하려면 로컬 머신에 Google Cloud SDK를 다운로드하고 설치해야 한다. gcloud CLI를 포함하여 필요한 도구와 라이브러리를 제공한다.
  2. SDK 초기화: 명령줄 인터페이스에서 gcloud init를 실행하여 SDK를 초기화한다. 이 명령어는 Google 계정에 로그인하고 SDK가 작동할 기본 GCP 프로젝트, 리전, 영역을 선택하라는 메시지를 표시한다.
  3. OAuth 2.0 인증: 초기화 과정에서 로그인하면 SDK가 Google 인증 페이지로 리디렉션한다. 권한을 부여하면 명령줄 인터페이스에 다시 붙여넣을 수 있는 인증 코드를 받게 된다. SDK는 OAuth 2.0을 사용하여 계정에 대한 액세스 토큰 및 갱신 토큰을 얻는다. 액세스 토큰은 API 호출에 사용되는 단기 토큰인 반면 새로 고침 토큰은 만료 시 새 액세스 토큰을 생성할 수 있다.
  4. 자격 증명 저장: Google Cloud SDK는 일반적으로 홈 폴더 아래의 .config/gcloud 디렉터리에 있는 로컬 구성 파일에 획득한 자격 증명(액세스 및 갱신 토큰)을 저장한다. 이러한 자격 증명을 통해 SDK는 매번 로그인하지 않고도 향후 API 요청을 인증할 수 있다.
  5. 서비스 계정 인증(선택): 사용자 인증 대신 JSON 형식의 키를 생성하고 gcloud auth activate-service-account 명령을 사용하여 서비스 계정으로 인증할 수 있다. 이 방법은 서버 간 통신 또는 애플리케이션이 GCP 리소스에 액세스해야 하는 경우에 적합하다.
  6. 마지막으로 인증 프로세스를 완료하면 SDK에서 제공하는 gcloud CLI 및 기타 도구를 사용하여 GCP 서비스와 상호작용하고, 리소스를 관리하고, 애플리케이션을 배포할 수 있다. SDK는 저장된 자격 증명을 사용하여 GCP에 대한 API 요청을 인증한다.

 


gcloud init & gcloud auth login 차이

 

gcloud init 및 gcloud auth login 명령은 모두 Google Cloud SDK에서 인증에 사용되지만 서로 다른 용도로 사용되며 고유한 기능이 있다.

 

gcloud init: 이 명령어는 로컬 머신에서 Google Cloud SDK를 초기화하고 구성하는 데 사용된다. 

  • OAuth 2.0을 사용하여 Google 계정을 인증한다.
  • 작업할 기본 GCP 프로젝트를 선택할 수 있다.
  • Compute Engine 리소스의 기본 지역 및 영역을 설정한다.
  • 선택적으로 신규 또는 기존 구성 프로필을 구성한다.

gcloud init 명령은 일반적으로 SDK를 처음 설치하거나 새 구성 프로필을 설정해야 할 때 실행된다.

 

 

gcloud auth login: 이 명령은 SDK로 Google 계정을 인증하는 데에만 사용 된다. gcloud init과 같은 프로젝트, 리전 또는 영역을 구성하지 않는다. gcloud auth login을 실행하면 브라우저 창이 열리고 Google 계정에 로그인하고 필요한 권한을 부여하라는 메시지가 표시된다. 인증에 성공한 후 SDK는 향후 API 요청에 대한 자격 증명을 저장한다.

 

gcloud auth login 명령은 새 사용자를 인증하거나 계정을 전환하거나 다른 구성을 변경하지 않고 인증을 새로 고쳐야 할 때 유용하다.

 

요약하면 gcloud init은 초기 설정 및 인증을 위한 올인원 명령인 반면 gcloud auth login은 사용자 인증에만 중점을 둔다.

 


GCP Cli 명령어 맛보기

GCP cli 명령어를 간단하게 사용해보자

 

GCP Cli 명령어 요약본을 참조하자.

 

## 버전확인 ##
$ gcloud version
Google Cloud SDK 422.0.0
bq 2.0.88
bundled-python3-unix 3.9.16
core 2023.03.10
gcloud-crc32c 1.0.0
gsutil 5.21
Updates are available for some Google Cloud CLI components.  To install them,
please run:
  $ gcloud components update	# 해당 명령어 사용시 CLI components들을 업데이트 해준다.
  
## config 확인 ##
$ gcloud config list
[core]
account = <자신의 계정>
disable_usage_reporting = False 	## 사용량 reporting은 False인 상태이다.
project = 자신이 고른 Project

## auth 확인 ##
$ gcloud auth list
   Credentialed Accounts
ACTIVE  ACCOUNT
*       <자신의 계정>

 

 


GCP 프리티어 사용 시 주의점

GCP 프리티어 사용 시 주의점은 해당 페이지를 참조하길 바란다.

https://cloud.google.com/free/docs/free-cloud-features?hl=ko#compute 

 

Google Cloud 무료 프로그램

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 Google Cloud 무료 프로그램 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Goog

cloud.google.com

 

 

 


Reference

Google Cloud 개요

 

Google Cloud 사진 참조

 

Google Cloud 프로젝트 만들기

 

GCP 따라하기 블로그

 

GCP SDK

 

GCP Cli 명령어 요약본

728x90
반응형

'GCP' 카테고리의 다른 글

BigQuery와 DataFlow를 활용한 Data ETL(GCP)  (0) 2023.10.02
GCP BigQuery란? & Data Warehouse  (0) 2023.05.21
GCP vs AWS 리소스 비교  (1) 2023.05.05
GCP IAM이란?  (0) 2023.04.17
GCP - SDK(gcloud) 계정 2개 등록하기  (0) 2023.04.12