기능

Google Cloud Shell은 Google Cloud Platform의 양방향 셸 환경입니다. 이 환경을 이용하면 시스템에 Google Cloud SDK 및 기타 도구를 설치할 필요 없이 쉽게 프로젝트 및 리소스를 관리할 수 있습니다. Cloud Shell을 사용하면 Cloud SDK gcloud 명령줄 도구와 그 밖에 필요한 유틸리티를 필요에 따라 언제든지 사용할 수 있습니다.

Cloud Shell 세션

Cloud Shell은 다음 기능을 제공합니다.

가상 머신 인스턴스

Cloud Shell을 시작하면 Debian 기반 Linux 운영체제를 실행하는 g1-small Google Compute Engine 가상 머신이 프로비저닝됩니다. Cloud Shell 인스턴스는 사용자 및 세션별로 프로비저닝됩니다. 인스턴스는 Cloud Shell 세션이 활성화된 동안 지속되었다가 1시간 동안 비활성되면 종료됩니다.

명령줄 액세스

Cloud Shell에서 제공되는 명령줄 액세스를 통해 Google Cloud Platform 콘솔에서 열리는 터미널 창에서 가상 머신 인스턴스를 이용할 수 있습니다. 동일한 인스턴스에 대한 여러 셸 연결을 열 수 있습니다. 인스턴스는 세션 간에 지속됩니다. 명령줄에서 Cloud SDK gcloud 명령줄 도구 및 기타 유틸리티에 액세스할 수 있는 것은 물론 cloudshell 명령어를 사용하여 가이드를 시작하고, 코드 편집기를 열며, 파일을 다운로드할 수 있습니다. 자세한 내용을 보려면 cloudshell help를 실행하세요.

코드 편집기

이제 Theia를 실행하는 Cloud Shell 코드 편집기의 베타 버전을 사용할 수 있습니다.

코드 편집기를 사용하면 Cloud Shell에 대한 액세스를 유지하면서도 파일 보기 및 편집, 파일 디렉토리 찾아보기와 같은 작업을 수행할 수 있습니다. 기본적으로 Cloud Shell 인스턴스마다 코드 편집기를 사용할 수 있습니다.

툴바의 연필 아이콘을 클릭하면 코드 편집기에 액세스할 수 있습니다.

Cloud Shell 및 편집기 세션

또는 Cloud Console에서 다음과 같이 cloudshell 명령을 실행하여 기존 파일(예: 위 환경의 경우 README-cloudshell.txt)을 코드 편집기에서 열 수도 있습니다.

cloudshell edit README-cloudshell.txt

영구 디스크 저장소

Cloud Shell은 가상 머신 인스턴스에서 $HOME 디렉토리로 마운트된 5GB의 무료 영구 디스크 저장소를 프로비저닝합니다. 이 저장소는 사용자 단위로 제공되며 여러 프로젝트에서 이용할 수 있습니다. 인스턴스와는 달리 이 저장소는 시간에 따라 자동으로 비활성화되지 않습니다. 설치된 소프트웨어, 스크립트, .bashrc.vimrc 등의 사용자 구성 파일을 포함해 홈 디렉토리에 저장한 모든 파일이 세션 간에 유지됩니다. $HOME 디렉토리는 본인에게만 공개되며 다른 사용자는 액세스할 수 없습니다.

사용 가능한 도구

Cloud Shell 가상 머신 인스턴스에는 다음과 같은 도구가 사전 설치되어 있습니다.

유형 도구
Linux 셸 인터프리터 bash
sh
Linux 유틸리티 표준 Debian 시스템 유틸리티
Google SDK 및 도구 Google App Engine SDK
gcloud 명령줄 도구를 포함한 Google Cloud SDK
Cloud Storage용 gsutil
텍스트 편집기 Emacs
Vim
Nano
빌드 및 패키지 도구 Gradle
Make
Maven
Bazel
npm
nvm
pip
Composer
소스 제어 도구 Git
Mercurial
추가 도구 Docker
iPython
MySQL 클라이언트
gRPC 컴파일러
TensorFlow

가상 머신 인스턴스에 추가 소프트웨어 패키지를 설치하는 것은 가능하지만 소프트웨어를 $HOME 디렉토리에 설치하지 않으면 인스턴스가 종료된 후 설치가 지속되지 않습니다.

언어 지원

Cloud Shell 가상 머신 인스턴스는 다음과 같이 사전 설치된 언어 지원을 제공합니다.

언어 버전
자바 JRE/JDK 1.8 및 1.11
Go 1.11
Python 2.7.13
Node.js v10.14.2
Ruby 2.6.0
PHP 7.0.33
.NET Core SDK 2.0.0 및 2.1.502
코어 런타임 2.0.0 및 2.1.6

자바 환경의 기본 버전은 1.8입니다. 1.11 버전의 JRE 및 JDK를 사용하도록 현재 Cloud Shell 세션을 변경하려면 Cloud Shell 명령 프롬프트에 다음을 입력하세요.

sudo update-java-alternatives -s java-1.11.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

1.8.0으로 다시 변경하려면 다음을 수행하세요.

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre

일부 바이너리의 버전을 변경할 수 없다는 오류 메시지는 무시해도 됩니다. Cloud Shell 가상 머신 인스턴스가 종료될 때까지는 버전이 변경된 상태로 지속됩니다. 자바 1.11로 영구 전환하려면 .bashrc 파일에 위의 첫 번째 명령을 추가하세요.

웹 미리보기

Cloud Shell에서 제공되는 웹 미리보기 기능을 사용하면 가상 머신 인스턴스에서 웹 애플리케이션을 실행하고 GCP Console에서 미리 볼 수 있습니다. 웹 애플리케이션은 2000~65000의 허용 범위 내 포트에서 HTTP 요청을 수신 대기해야 합니다. 이러한 포트는 HTTPS를 통한 액세스를 사용자 계정으로만 제한하는 보안 Cloud Shell 프록시 서비스에서만 사용 가능합니다.

인스턴스에서 실행 중인 웹 애플리케이션에 연결하려면 GCP Console의 Cloud Shell 터미널 창 위에 있는 웹 미리보기 버튼 웹 미리보기 버튼을 클릭합니다. 그런 다음 표시되는 메뉴에서 포트 번호를 선택합니다. 그러면 Cloud Shell 프록시 서비스의 미리보기 URL이 새 브라우저 창에 열립니다.

부스트 모드

부스트 모드는 Cloud Shell VM의 성능을 일시적으로 기본 제공되는 g1-small 머신 유형에서 n1-standard-1 VM 인스턴스로 향상시킵니다. Cloud Shell에서 작업을 계속하고 싶으나 비교적 짧은 기간 동안만 추가로 CPU 또는 메모리 리소스가 필요한 경우 유용한 모드입니다.

부스트 모드를 활성화하려면 '더보기' 메뉴에서 '부스트 모드 사용 설정' 옵션을 찾습니다(Cloud Shell의 오른쪽 상단에 있는 점 3개 아이콘). 활성화되면 모든 세션이 다음 24시간 동안 증폭됩니다. 부스트 모드를 사용 설정하면 Cloud Shell이 재시작되면서 즉시 세션을 종료합니다. 그런 다음 새 VM이 프로비저닝되는데, 여기에는 몇 분 정도의 시간이 걸릴 수 있습니다. 홈 디렉토리의 데이터는 유지되지만 실행 중이던 모든 프로세스는 손실됩니다.

부스트 모드에는 일반 사용량 한도가 적용됩니다. 이 기능은 현재 시험용이며 이후에 추가 제한 사항이 적용될 수 있습니다.

승인

Cloud Shell은 기본적으로 Google Cloud Platform에 호스팅된 프로젝트 및 리소스에 대한 액세스 인증을 제공합니다. Cloud SDK gcloud 명령줄 도구를 사용하면 플랫폼 리소스에 액세스하기 위한 추가 인증 단계를 수행할 필요가 없습니다.

tmux 지원

Cloud Shell에서 기본적으로 사용되는 tmux는 브라우저 탭 세션 전반에 걸쳐 지속성을 향상시킵니다. 예를 들어 탭에서 GCP Console을 새로 고치거나 다른 머신에서 Cloud Shell에 연결하더라도 세션 상태가 손실되지 않습니다.

Cloud Shell은 기본 tmux 키 결합을 지원합니다. 예를 들어 Ctrl+b를 누른 후 %를 누르면 tmux가 현재 세션 창을 왼쪽과 오른쪽으로 나누기 때문에 디버깅에 유용할 수 있습니다.

Cloud Shell에서 tmux를 사용 중지하려면 설정 버튼 설정 버튼을 클릭하고 Tmux 설정을 선택한 후 Tmux 통합 사용 설정 옵션의 선택을 해제하세요.

터미널 사용 통계

Cloud Shell은 Cloud Shell 터미널 내에서 실행되는 명령에서 익명 처리된 사용 통계를 수집합니다. Cloud Shell에서 사전 설치된 상태로 제공되는 명령의 사용 통계만 수집합니다. 이러한 명령에 전달되는 인수처럼 개인 식별 정보에 대한 통계는 수집하지 않습니다. 이러한 통계를 사용자 계정에 다시 연결하는 것은 불가능합니다. 수집을 중지하려면 Cloud Shell 설정(점 3개로 된 메뉴 사용)에서 사용 통계를 선택하세요.

참고: Cloud Shell에 기본적으로 사용 설정되어 있는 gcloud 사용 통계와는 별개입니다.

안전 모드

.bashrc 또는 .tmux.conf 파일에 문제가 있는 경우 연결 후 Cloud Shell이 즉시 종료됩니다. 이 문제를 해결하려면 URL에 cloudshellsafemode=true를 첨부하여 Cloud Shell을 안전 모드에서 여세요. 그러면 Cloud Shell이 다시 시작되면서 사용자가 루트로 로그인되어 파일의 모든 문제를 해결할 수 있게 됩니다.

키보드

Cloud Shell을 사용하면 터미널로 전달되는 키를 변경할 수 있습니다. 터미널 설정 메뉴에서 단말기 환경설정 > 키보드를 선택하면 다음 옵션이 표시됩니다.

  • Alt 키를 메타 키로 쓰기 - Alt 키가 메타 키 또는 구분된 Alt 키로 작동하는지 여부를 설정합니다.
  • Alt Gr 모드 - AltGr 감지 휴리스틱을 선택합니다.

커스텀 Cloud Shell 환경

Cloud Shell 환경은 Docker 컨테이너이며, 현재 알파 버전인 커스텀 환경 기능과 함께 사용할 경우에는 Dockerfile을 편집하여 이 컨테이너를 수정할 수 있습니다. 따라서 Cloud Shell 환경에서 세션 간에 유지되는 커스텀 도구를 설치할 수 있습니다. 환경 구성 페이지는 여기에서 찾을 수 있습니다.

구성 화면에서 '커스텀 이미지 생성'을 클릭하면 Cloud Shell 환경으로 사용할 커스텀 Docker 이미지를 생성하는 프로세스를 안내하는 가이드가 시작됩니다. 그러면 이 새로 생성된 이미지를 참조하도록 Cloud Shell 환경을 편집할 수 있습니다.

이 가이드는 네 개의 리소스를 자동으로 생성합니다.

  • Dockerfile을 포함하는 Cloud Source Repositories 저장소
  • 2개의 Cloud Build 빌드 트리거로, 하나는 Cloud Source Repositories 저장소가 업데이트될 때 트리거되고 다른 하나는 Cloud Shell 기본 이미지가 변경될 때 트리거됩니다.
  • Google Container Registry에서 호스팅되는 빌드된 Docker 이미지

가이드 이후에 정리하려면 Cloud Source Repositories, Cloud Build, Container Registry에서 이들 리소스를 삭제해야 합니다.

커스텀 환경 제한사항

  • 커스텀 이미지는 기본 Cloud Shell 이미지를 기반으로 해야 합니다. gcr.io/cloudshell-images/cloudshell
  • Dockerfile에서 ENV에 의해 지정된 변수는 SSH 세션에 전파되지 않습니다. 이를 SSH 세션에 전파하려면 /etc/environment 파일에서 다음 변수를 설정하세요. RUN echo "$MY_VAR=$DESIRED_VALUE" >> /etc/environment
  • Dockerfile ENTRYPOINT를 재정의할 수 없습니다.
  • 세션이 시작될 때 실행할 스크립트를 /google/devshell/bashrc.google.d/ 아래에 넣으세요. 세션이 끝날 때 실행할 스크립트는 /google/devshell/bash_exit.google.d/ 아래에 넣을 수 있습니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...