로컬에서는 잘 되는데 ☘️

GCP Essentials - Cloud Shell 및 gcloud 시작하기

by youngjun._.
Qwiklabs GCP Essentials 실습 목차
(1) 2020/04/11 - [GCP] - GCP Essentials - Qwiklabs 실습 개요
(2) 2020/04/12 - [GCP] - GCP Essentials - 가상 머신 만들기 실습
(3) 2020/04/13 - [GCP] - GCP Essentials - Cloud Shell 및 gcloud 시작하기

Qwiklabs의 GCP Essentials Quest를 수강하며 작성한 포스팅이다.

GCP Essentials gcloud Quest 이미지

세 번째 실습인 [Cloud Shell 및 gcloud 시작하기] Quest를 실습해보자.

Google Cloud Self-Paced Labs 대표 사진

개요

Google Cloud Shell에서는?

  • gcloud 명령줄을 사용하여 Google Cloud Platform에 호스팅된 컴퓨팅 리소스에 액세스할 수 있다.
  • Cloud Shell은 Debian 기반 가상 머신으로, 영구적인 5GB 홈 디렉터리를 제공하여 GCP 프로젝트와 리소스를 원활하게 관리할 수 있도록 한다.
  • Cloud SDK gcloud와 필요한 기타 유틸리티는 Cloud Shell에 사전 설치되어 있으므로 간단하게 시작하고 실행할 수 있다.

실습할 내용

  • gcloud 명령어 사용 연습
  • Google Cloud Platform에 호스팅된 컴퓨팅 서비스에 연결

기본 요건

vim, emacs, nano 등 표준 Linux 텍스트 편집기에 관한 기본 지식

 

설정

실습 시작 버튼을 클릭하기 전에

 

다음 안내를 확인하자!

  • 실습에는 시간 제한이 있으며 일시 중지할 수 없다.
  • 실습 시작을 클릭하면 타이머가 시작되고 Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지 표시된다.

Qwiklabs 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있다. 실습 시간 동안 Google Cloud Platform에 로그인하고 액세스 하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공된다.

 

준비할 사항

 

이 실습을 완료하려면 다음을 준비해야 한다.

  • 표준 인터넷 브라우저(Chrome 브라우저 권장)
  • 실습을 완료할 시간
참고: 이미 개인용 GCP 계정이나 프로젝트가 있어도 이 실습에서는 사용하지 마세요!


실습을 시작하고 콘솔에 로그인하는 방법

2020/04/12 - [GCP] - GCP Essentials - 가상 머신 만들기 실습

이전 글에서 자세하게 설명했다! 콘솔에 로그인 하는 방법은 이전 글에서 확인하자.

 

Cloud Shell 시작

(1) GCP Console의 오른쪽 상단에 있는 아이콘을 클릭하여 Cloud Shell 세션을 열자.

오른쪽 상단 툴바에서 Console을 열 수 있다.

(2) Continue를 클릭하자.

Cloud Shell이 활성화되면 명령줄을 사용하여 Cloud SDK gcloud 명령어나 가상 머신 인스턴스에서 사용할 수 있는 다른 도구를 호출할 수 있다.

이 실습의 뒷부분에서는 여러 프로젝트와 Cloud Shell 세션 간에 파일을 저장하기 위해 영구 디스크 저장소에서 사용되는 $HOME 디렉터리를 사용하게 됩니다. $HOME 디렉터리는 본인에게만 공개되며 다른 사용자는 액세스할 수 없습니다.

 

리전 및 영역의 이해

앞부분은 지난 Quest와 겹치는 내용이지만 알아두어야 이해가 되기 때문에 다시 한번 정리했다. 

일부 Compute Engine 리소스는 리전이나 영역(zone)에 있다.

 

리전이란?

리소스를 실행할 수 있는 특정 지리적 위치이다. 각 리전에는 하나 이상의 영역이 있다.

예를 들어 us-central1 리전은 us-central1-a, us-central1-b, us-central1-c  us-central1-f 영역이 있는 미국 중부의 리전을 나타낸다.

출처 : Qwiklabs Cloud Shell 및 gcloud 시작하기 Quest

영역 내에 상주하는 리소스를 영역별 리소스라고 한다.

  • 가상 머신 인스턴스와 영구 디스크는 영역에 상주한다.
  • 영구 디스크를 가상 머신 인스턴스에 연결하려면 두 리소스가 모두 같은 영역에 있어야 한다.
  • 마찬가지로 인스턴스에 정적 IP 주소를 할당하려는 경우 인스턴스가 정적 IP와 같은 리전에 있어야 합니다.
리전 및 영역 문서에서 리전과 영역에 관해 자세히 알아보고 전체 목록을 확인하자.

 

기본 리전과 영역 설정 명령어

 

다음 값을 사용하여 기본 리전과 영역이 설정된다.

google-compute-default-zone google-compute-default-region

 

설정 확인 명령어

 

기본 리전 및 영역 설정을 확인하려면 다음 gcloud 명령어를 실행하자.

gcloud compute project-info describe --project <your_project_ID>

<your_project_id>를 대체할 값은 Console의 홈페이지에서 확인하거나 이 실습을 시작한 Qwiklabs 탭에서 프로젝트 ID를 사용하여 찾을 수 있다.

 

key - value로 구성된 기본 영역과 리전이 보인다!

뒤에 나오는 실습은 지금 설정된 영역(google-compute-default-zone)을 사용한다.
설정 확인 출력에서 기본 영역 및 리전 메타데이터 값을 찾아서 기억하자!
google-compute-default-region
  google-compute-default-zone 키와 값이 누락되면 기본 영역이나 리전이 설정되지 않은 것이다.

 

 

Cloud SDK 초기화

gcloud CLI는 Google Cloud SDK에 포함되어 있다.

  1. 시스템에 SDK를 다운로드하고 설치
  2. gcloud init을 실행하여 SDK를 초기화
  3. gcloud 명령줄 도구를 사용할 수 있다.
gcloud CLI는 Cloud Shell에서 자동으로 제공된다.
이 실습에서는 Cloud Shell을 사용하고 있으므로 gcloud수동으로 설치할 필요가 없다.

환경 변수 설정

환경 변수란?

말 그대로 환경을 정의하는 변수.

API 또는 실행파일을 포함하는 스크립트를 작성할 때 원하는 변수를 정의하면 시간을 절약할 수 있다.

 

다음 명령어로 몇 가지 환경 변수를 만들어보자.

export PROJECT_ID=<your_project_ID>

ZONE 환경 변수를 설정(이전 명령어의 영역 값 사용).

export ZONE=<your_zone>

변수가 제대로 설정되어 있는지 확인

echo $PROJECT_ID 
echo $ZONE

 

 

변수가 잘 설정되었는지 확인해보았다.

gcloud를 사용하여 가상 머신 만들기

gcloud를 사용하여 새로운 가상 머신 인스턴스를 만들자. 다음과 같은 명령어를 사용하면 된다.

  • gcloud compute를 사용하면 Compute Engine API를 사용할 때보다 익숙한 형식으로 Google Compute Engine 리소스를 쉽게 관리할 수 있다.
  • instances create새 인스턴스를 만든다.

가상 머신 생성하기

다음을 실행하여 가상 머신을 만들어보자.

gcloud compute instances create gcelab2 --machine-type n1-standard-2 --zone $ZONE
  • 가상 머신의 이름은 'gcelab2'이며
  • --machine-type 플래그를 사용하여 머신 유형을 'n1-standard-2'로 지정합니다.
  • --zone 플래그를 사용하여 환경 변수와 함께 정의한 영역에서 생성되게끔 지정합니다.

 

가상 머신이 정상적으로 만들어졌다!

 

--zone 플래그를 생략하면 gcloud기본 속성을 기준으로 원하는 영역을 추론할 수 있다. 
머신 유형  이미지와 같은 기타 필수 인스턴스 설정create 명령어에 지정되지 않은 경우 기본값으로 설정된다.

 

create 명령어의 도움말을 표시하면 기본값을 볼 수 있다.

gcloud compute instances create --help

 

완료된 작업 테스트하기

진행 상황 확인을 클릭하여 실행한 작업을 확인해보자.

 

완료했다!

gcloud 명령어 사용

 

gcloud 명령어 사용 안내(도움말)

gcloud 호출 명령어의 끝에 -h 플래그를 추가하면 참고할 수 있는 간단한 사용 안내가 표시된다.

Cloud Shell에서 다음 명령어를 실행해보자.

gcloud -h

gcloud -h

명령어 사용 도움말이 출력됐다. 엄청 많다!

 

더 상세한 도움말을 확인하려면 --help 플래그를 추가하거나 gcloud help 명령어를 실행하면 된다.

Cloud Shell에서 다음 명령어를 실행해 보자.

gcloud config --help
도움말 콘텐츠를 스크롤하려면 Enter 키나 스페이스바를 누르면 된다.
표시된 콘텐츠에서 나가려면 q를 입력하자.

이제 다음 명령어를 실행해 보자.

gcloud help config

gcloud config --help  gcloud help config 명령어의 기능이 같다는 것을 알 수 있다.

두 명령어 모두 상세한 도움말을 표시한다.

 

 

gcloud 전역 플래그는 호출 레벨에 따른 명령어 동작을 제어한다.

플래그는 SDK 속성에서 설정된 모든 값을 재정의한다.

 

환경에서 구성 목록을 확인

gcloud config list

 

 환경 구성 목록을 확인할 수 있다.

설정된 다른 속성을 확인하려면 다음을 호출하여 모든 속성을 표시할 수 있다.

gcloud config list --all

다음을 통해 components를 나열합니다.

gcloud components list

이 명령어로 실습에서 사용할 수 있는 구성요소가 표시된다.

 

구성 요소를 확인할 수 있다

 

새로운 구성요소(components)를 설치해 보자! 

 

자동 완성

gcloud interactive

  • 명령어 및 플래그를 자동으로 추천하고 명령어 입력 시 하단에 인라인 도움말 스니펫을 표시한다.
  • 드롭다운 메뉴를 사용해서 명령어 및 하위 명령어 이름과 같은 정적 정보와 플래그 이름 및 열거형 플래그 값을 자동으로 완성할 수 있다!

다음을 통해 베타 구성요소를 설치하자.

gcloud components install beta

 

gcloud interactive 모드로 전환해보자.

gcloud beta interactive

 

beta 구성요소를 설치하고 interactive 모드로 전환한 화면이다.

 

  • Tab 키를 클릭하여 파일 경로 및 리소스 인수를 입력한다.
  • 드롭다운 메뉴가 나타나면 Tab 키를 사용하여 목록을 이동할 수 있다.
  • 스페이스바를 사용하여 원하는 항목을 선택한다.

 

테스트

먼저 다음 명령어를 입력한 후 자동 완성을 사용하여 명령어를 완성해보자.

gcloud compute instances describe <your_vm>

실제로 하이라이팅 된 부분이 자동완성된다! 신기하다!

F2 토글 key 사용

Cloud Shell 하단에 이 기능을 설정하는 단축키가 표시된다. 여기에서 F2 토글을 사용할 수 있다.

F2:help:STATE를 통해 활성 도움말 섹션(ON: 사용, OFF: 사용 중지)을 전환한다.

 

F2를 누르면 도움말 섹션이 사라진다!

 

VM 인스턴스에 SSH 사용

gcloud compute

gcloud compute를 사용하면 인스턴스에 쉽게 연결할 수 있다. gcloud compute ssh 명령어는 SSH에 래퍼 기능을 제공하여 인증 및 인스턴스 이름과 IP 주소의 매핑을 처리하게 한다!

 

gcloud compute ssh를 사용하여 가상 머신에 SSH를 사용해보자.

gcloud compute ssh gcelab2 --zone $ZONE

ZONE 변수를 넣고 gcloud compute로 인스턴스를 연결해보자

계속하려면 'Y'를 입력하자.

 

암호 섹션은 공백으로 둔다

암호 섹션에서는 Enter 키를 눌러 암호를 공백으로 두자!

 

변경할 내용이 없는 경우 'exit'를 입력하면 원격 셸이 종료되어 SSH 연결을 끊으면 된다.

 

 

홈 디렉터리 사용

HOME 디렉터리

이제 홈 디렉터리를 사용해보자. Cloud Shell 홈 디렉터리의 콘텐츠는 가상 머신을 종료했다가 다시 시작해도 모든 Cloud Shell 세션의 프로젝트에서 유지된다.

 

다음과 같이 현재 작업 디렉터리를 변경한다.

cd $HOME

vi 텍스트 편집기를 사용하여 .bashrc 구성 파일을 열어보자.

vi ./.bashrc

홈 디렉터리에서 열어본 bashrc 구성 파일

 

편집기가 열리면서 파일 콘텐츠가 표시된다. 

ESC 키를 누른 후 :wq를 입력하여 편집기를 종료할 수 있다!

 

 

배운 내용 테스트하기

아래는 이 실습에서 배운 내용을 복습하기 위한 객관식 문제이다.

해석하면 다음과 같다.

GCP 서비스 및 리소스와 상호 작용하는 세 가지 기본적인 방법은 다음과 같습니다.

 

세 가지 기본적인 방법은 이렇다!

 

 

끝났다!

실습 완료했다!

 

'Infra > GCP' 카테고리의 다른 글

Qwiklabs - Cloud Architecture  (0) 2020.04.17
GCP Essentials - Kubernetes Engine 사용하기  (0) 2020.04.14
GCP Essentials - 가상 머신 만들기 실습  (0) 2020.04.12
GCP Essentials - Qwiklabs 실습 개요  (0) 2020.04.11
GCP 용어 정리  (1) 2020.03.20

블로그의 정보

개발하는만두

youngjun._.

활동하기