간편하게 리눅스 환경을 마련해서 뭔가 실험하고 싶은 경우가 있다. 물론 버추얼박스와 같은 VM을 사용해 리눅스 가상 머신을 만들어두거나 기존에 퍼블릭 클라우드 인스턴스에 접속하는 방법이 있긴 하지만, 경우에 따라서는 학습이나 테스트 목적으로 웹브라우저만 사용해서 리눅스 환경에 접근할 수 있으면 상당히 편리할 것이다. 이를 위해 몇몇 퍼블릭 클라우드 업체는 클라우드 셸이라는 웹 기반의 간편한 리눅스 셸을 제공한다. 지난 번에 오라클 클라우드(OCI)에서 제공하는 오라클 클라우드 셸을 유튜브 영상으로 소개드렸는데, 오늘은 간략하게 지면으로 구글 클라우드 셸을 소개드리겠다.
구글 클라우드 셸은 브라우저를 사용해 별도 리눅스 인스턴스 준비 없이 즉시 구글 gcloud CLI와 kubectl 등 각종 명령어를 내리며, 구글 클라우드 API 환경을 활용한다는 취지로 출발했다. 또한 튜토리얼이나 문서에서 필요한 예제를 직접 수행할 수 있게 지원하는 목적으로도 활용되고 있으며, 최근에는 VSCode를 기반으로 하는 클라우드 셸 편집기까지 제공해서 웹에서 바로 편집하고 실행할 수 있게 도와준다.
공식 Cloud Shell 문서에 자세한 설명이 나오므로 여기서는 몇 가지 핵심 사항만 정리해보겠다.
- 너무나도 당연한 이야기지만... 구글 클라우드 셸을 사용하려면 구글 사용자 계정이 있어야 한다! 사용자 계정 단위로 홈 디렉토리를 관리한다는 사실에 주목하자.
- 가상 머신 사양: Xeon CPU의 코어 2개/램 8G/디스크 5G를 지원
- 리눅스 배포판: Debian GNU/Linux 11 (bullseye)
- 리전: 가장 가까운 리전 자동 연결
- 운영체제 이미지 업데이트: 매주 자동 업데이트
- 루트 사용자: 허용(이 부분이 특히 OCI와 차이남)
- 사용 가능한 도구: 셸, gclouc CLI, vim/nano, gradle/make/maven/npm/pip/helm/composer, git/hg, docker/ipython/mysql/tensorflow/terraform
- 사용 가능한 언어: 자바(1.8, 11(기본)), Go(1.13), 파이썬(2, 3), 노드(10.14.2), 루비(2.6), PHP(7), .Net Core(SDK 2.0, 2.1)
어디든 마찬가지겠지만, 무료로 제공되는 기능이다 보니 몇 가지 제약이 따른다. 주의해야 할 사안을 정리하면 다음과 같다.
- 기본 디스크 용량이 5G이며, 확장은 불가능하다
- 기본 주별 사용할당량이 60시간이므로, 상용 서비스 목적으로 사용해서는 안 된다
- 120일 동안 접속하지 않으면 홈 디렉토리가 삭제되므로, 여기 중요한 데이터를 올려서는 안 된다
- 세션이 20분동안 비활성화되면 인스턴스가 종료된다
- 클라우드 셸에 처음 연결할 때 디스크 생성을 위해 25초 이상 소요될 가능성이 있다. 물론 일단 만들어지고 나면 5초 정도 소요되므로 빠르게 시작이 가능한데, 일주일 동안 사용하지 않으면 홈 디렉토리를 복원해야 하므로 다시 느려진다. 정말 빠르게 사용하려면 임시 모드로 클라우드 셸을 띄우면 되는데, 홈 디렉토리가 매번 수행할 때마다 사라진다는 점을 기억하자.
- 3rd party 쿠키를 활성화해야 클라우드 셸 편집기가 로드된다.
OCI 클라우드 셸과 비교해서 좋은 점을 정리하면 다음과 같다.
- 루트 사용자 지원: 사용자 영역 뿐만 아니라 시스템 영역도 활용할 수 있기에 패키지 설치 등이 훨씬 자유롭고 원활하다
- 웹 미리 보기 지원: 특정 포트를 열어 외부에 공개할 수 있으므로 간단한 RESTful API 지원 서버를 만들어 테스트할 수 있다
- 통합 개발 환경 지원: 클라우드 셸 편집기를 사용해 Go, 자바, Node.js, Python, C# 언어로 개발할 수 있으며, 실행이나 디버깅도 가능하다. 당연한 이야기지만 VSCode 전체 기능은 제공되지 않으므로 간단한 작업에 활용하기 바란다.