Cloud Shell 작동 방식

Cloud Shell은 임시로 사용할 Debian 기반 Linux 운영체제를 실행하는 Compute Engine 가상 머신을 프로비저닝합니다. 이 가상 머신은 Google Cloud에서 소유하고 관리하므로 Google Cloud 프로젝트에서는 표시되지 않습니다.

Cloud Shell 인스턴스는 사용자 및 세션별로 프로비저닝됩니다. Cloud Shell 세션이 활성화되어 있는 동안 인스턴스가 유지됩니다. 한 시간 동안 비활성화되면 세션이 종료되고 VM이 삭제됩니다. 사용 할당량에 대한 상세 정보는 제한 가이드를 참조하세요.

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

영구 디스크 스토리지

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

스토리지 지속성을 더 세부적으로 제어하려면 Cloud Workstations를 사용할 수 있습니다.

또한 Cloud Shell은 영구 디스크 스토리지가 없는 Cloud Shell 환경인 임시 모드를 제공합니다. 임시 모드를 사용하면 스타트업 시간은 빨라지지만 세션에서 만든 모든 파일은 세션 종료 시 손실됩니다.

승인

Google Cloud API를 호출하거나 처음으로 Cloud Shell에서 사용자 인증 정보를 요구하는 명령줄 도구(예: Google Cloud CLI)를 사용하면 Cloud Shell에서 승인을 요청하는 메시지를 표시합니다. 승인을 클릭하여 도구가 사용자 인증 정보를 사용해 호출할 수 있도록 허용합니다.

자세한 내용은 Cloud Shell을 사용하여 승인을 참조하세요.

사전 구성된 환경 변수

Cloud Shell이 시작되면 Google Cloud 콘솔의 활성 프로젝트가 즉시 사용 가능하도록 Cloud Shell에 있는 gcloud 구성으로 전파됩니다. 애플리케이션 기본 사용자 인증 정보 라이브러리 지원에서 프로젝트 ID를 정의하기 위해 사용하는 GOOGLE_CLOUD_PROJECT 환경 변수도 Google Cloud 콘솔의 활성 프로젝트를 가리키도록 설정됩니다. 환경 변수 WEB_HOST는 환경에 HTTPS 요청을 수행하는 데 사용할 수 있는 Cloud Shell VM의 호스트 이름을 가리킵니다.

영역 선택

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

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

curl metadata/computeMetadata/v1/instance/zone

이미지 출시

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

루트 사용자

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

사용 가능한 도구

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

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

가상 머신 인스턴스에 추가 소프트웨어 패키지를 설치할 수 있지만 $HOME 디렉터리에 소프트웨어를 설치하지 않거나 커스텀 환경을 만들지 않은 경우 인스턴스가 종료되면 설치할 수 없습니다.

언어 지원

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

언어 버전
Java JRE/JDK 17.0.6(OpenJDK)
Go 1.20.4
Python 3.9.2
Node.js v18.12.1
Ruby 2.7.8
PHP 7.4.33
.NET Core SDK 2.1, 3.1, 5.0 및 6.0
코어 런타임 2.1.30, 3.1.32, 5.0.17 및 6.0.16

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

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

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

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

안전 모드

.bashrc 또는 .tmux.conf 파일에 문제가 있으면 Cloud Shell이 연결 후 즉시 종료됩니다. 안전 모드를 통해 Cloud Shell 인스턴스가 다시 시작되고 루트로 로그인되어 파일의 모든 문제를 해결할 수 있게 됩니다.

안전 모드에서 Cloud Shell을 열려면 다음 안내를 따르세요.

  • URL에 cloudshellsafemode=true를 추가합니다.
  • Cloud Shell에서 를 클릭하고 안전 모드를 클릭한 다음 다시 시작을 클릭합니다.

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