Cloud Shell 작동 방식

Cloud Shell을 시작하면 Debian 기반 Linux 운영체제를 실행하는 e2-small Google Compute Engine 가상 머신이 프로비저닝됩니다. Cloud Shell 인스턴스는 사용자 및 세션별로 프로비저닝됩니다. Cloud Shell 세션이 활성화되어 있는 동안 인스턴스가 유지됩니다. 한 시간 동안 비활성화되면 세션이 종료되고 VM이 삭제됩니다. 사용 할당량에 대한 자세한 내용은 제한 가이드를 참조하세요.

기본 Cloud Shell 환경에서는 임시로 사전 구성된 VM이 할당되며 작업 환경은 VM에서 실행되는 Docker 컨테이너입니다. Cloud Shell 인스턴스에 원하는 도구가 포함되도록 VM 부팅 시 자동으로 환경을 맞춤설정할 수도 있습니다.

영구 디스크 저장소

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

승인

Cloud Shell에서 개발자는 브라우저에 로그인한 Google 계정으로 자동 인증됩니다. 즉, 개발자에게 개발자 계정이 일반적으로 액세스할 수 있는 Google Cloud 리소스에 대한 전체 액세스 권한이 있습니다. 이는 gcloud auth login을 실행하고 Google 계정을 지정하는 것과 같습니다.

사전 구성된 환경 변수

Cloud Shell이 시작되면 Console의 활성 프로젝트가 즉시 사용 가능하도록 Cloud Shell에 있는 gcloud 구성으로 전파됩니다. 애플리케이션 기본 사용자 인증 정보 라이브러리 지원에서 프로젝트 ID를 정의하기 위해 사용하는 GOOGLE_CLOUD_PROJECT 환경 변수도 Console의 활성 프로젝트를 가리키도록 설정됩니다.

영역 선택

Cloud Shell은 여러 Google Cloud Platform 리전에서 전역적으로 분산되어 있습니다. Cloud Shell에 처음 연결하면 지리적으로 사용 가능한 가장 가까운 리전이 자동으로 할당됩니다. 리전을 직접 선택할 수는 없으며, Cloud Shell이 최적의 리전을 선택하지 않을 경우 Cloud Shell VM이 사용 중이 아닐 때 더 가까운 리전으로 마이그레이션을 시도합니다.

현재 리전을 보려면 Cloud Shell 세션에서 다음 명령어를 실행합니다.

curl metadata/computeMetadata/v1/instance/zone

이미지 출시

사전 패키지된 도구가 최신 상태로 유지되도록 Cloud Shell 컨테이너 이미지가 매주 업데이트됩니다. 즉, Cloud Shell은 항상 최신 버전의 Cloud SDK, Docker 및 기타 모든 유틸리티와 함께 제공됩니다.

루트 사용자

Cloud Shell 세션을 설정하면 이메일 주소에 따라 사용자 이름이 있는 일반 Unix 사용자 계정을 가져옵니다. 이 액세스 권한이 있으면 할당된 VM에 대한 전체 루트 권한이 있으며 필요한 경우 sudo 명령어를 실행할 수도 있습니다.

사용 가능한 도구

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

유형 도구
Linux 셸 인터프리터 bash
sh
Linux 유틸리티 표준 Debian 시스템 유틸리티
Google SDK 및 도구 Google App Engine SDK
gcloud 명령줄 도구를 포함하는 Google Cloud SDK
Cloud Storage용 gsutil
텍스트 편집기 Emacs
Vim
Nano
빌드 및 패키지 도구 Gradle
Helm
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.13
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 가상 머신 인스턴스가 종료될 때까지는 버전이 변경된 상태로 지속됩니다. Java 1.11로 영구 전환하려면 위의 첫 번째 명령어를 .bashrc 파일에 추가합니다.

부스트 모드

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

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

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

안전 모드

.bashrc 또는 .tmux.conf 파일에 문제가있으면 Cloud Shell이 연결 후 즉시 닫힙니다. 이 문제를 해결하려면 URL에 cloudshellsafemode=true를 추가하여 안전 모드에서 Cloud Shell을 엽니다. 그러면 Cloud Shell이 다시 시작되고 루트로 로그인되어 파일의 모든 문제를 해결할 수 있습니다.

홈 디렉터리의 모든 파일을 영구 삭제하고 Cloud Shell 홈 디렉터리를 깨끗한 상태로 복원하려면 Cloud Shell VM을 완전히 재설정합니다.