구글 클라우드 컴퓨팅(GCP) 환경에서 시스템 관리나 애플리케이션 개발을 하다 보면 GCP 명령어 라인 인터페이스(CLI) 앞에서 많은 시간을 보낼 것입니다. 구글에서 클라우드 관리자와 애플리케이션 개발자를 위해 새로운 CLI를 공개했습니다. 새로 제공되는 인터랙티브 CLI가 어떤 편의성을 제공하는지 간단히 살펴봤습니다.
GCP는 클라우드 SDK를 제공하는 데요, 여기에는 다양한 CLI 도구가 포함되어 있죠. 정리해 보니 꽤 되네요.
- gcloud – GCP의 대표 CLI 도구입니다.
- gsutil – 구글 클라우드 스토리지 관리를 위한 CLI 도구입니다.
- bq – 구글 빅쿼리(BigQuery)를 위한 CLI입니다.
- kubectl – 쿠버네티스 엔진을 다루기 위한 CLI입니다.
인터랙티브 CLI는 현재 퍼블릭 알파 단계입니다. 가장 크게 눈에 들어오는 특징은 인라인 상태에서 gcloud, gsutil, bq, kubectl 명령어 도움말을 불어올 수 있는 것입니다. 명령어 이름, 필요한 플래그, 인수 유형 찾느라 이 창, 저 창 오가지 않아도 됩니다. 다음 그림을 보시죠. 딱 봐도 편해 보이네요.
참고로 인터랙티브 CLI는 표준 bash의 기능도 지원합니다. cd, pwd 등의 명령을 자유롭게 쓸 수 있고, gcloud와 bash 명령어를 조합해 쓸 수도 있습니다. 백그라운드 프로세스를 띄우는 것과 제어하는 것도 가능합니다. 예를 하나 보시죠. 명령의 결과를 변수에 할당하고, 나중에 변수를 다른 명령의 입력으로 호출할 수 있습니다.
$ active_vms=$(gcloud compute instances list --format="value(NAME)" --filter="STATUS=RUNNING") $ echo $active_vms
이 밖에도 다음과 같이 bash 스크립트도 생성해 실행할 수 있습니다. 다음 스크립트는 종료된 컴퓨트 인스턴스를 재시작하기 위해 작성한 것입니다.
#!/bin/bash terminated_vms=$(gcloud compute instances list --format="value(NAME)" --filter="STATUS=terminated") for name in $terminated_vms do echo "Instance $name will restart." zone=$(gcloud compute instances list --format="value(ZONE)" --filter="NAME=$name") gcloud compute instances start $name --zone $zone done
인터랙티브 CLI를 쓰려면 먼저 구글 클라우드 SDK가 있어야 합니다. 먼저 다음과 같이 SDK가 최신인지 확인합니다.
$ gcloud components update
다음과 같이 gcloud 알파 컴포넌트를 설치합니다.
$ gcloud components install alpha
그러고 나서 다음과 같이 시작합니다.
$ gcloud alpha interactive
참고로 gsutil, bq, kubectl 관련 인터랙티브 모드를 활성화하려면 다음과 같이 하십시오. 몇 분 정도 걸릴 것입니다.
$ gcloud alpha interactive --update-cli-trees
인터랙티브 CLI 관련 더 자세한 내용은 다음 페이지를 참조 바랍니다.