Cloud Shell로 개발 및 Cloud Code

1. 개요

Cloud Shell은 브라우저를 사용하여 어디서나 액세스할 수 있는 온라인 개발 및 운영 환경입니다. gcloud 명령줄 도구, kubectl 등의 유틸리티가 미리 로드된 온라인 터미널로 리소스를 관리할 수 있습니다. 온라인 Cloud Shell 편집기를 사용하여 클라우드 기반 앱을 개발, 빌드, 디버그, 배포할 수도 있습니다.

이 실습에서는 Cloud Shell 편집기인 Cloud Shell을 사용하여 로컬 에뮬레이터와 실제 서비스에서 Cloud Code를 사용하여 컨테이너 기반 애플리케이션을 만들고 배포하고 테스트합니다.

학습할 내용

  • Cloud Shell의 주요 기능을 살펴보고 숙지합니다.
  • 다양한 Cloud Shell 사용 패턴으로 연습
  • 고급 사용을 위한 Cloud Shell 환경 맞춤설정
  • Cloud Code 옵션 및 기능 익히기
  • Kubernetes 애플리케이션용 Cloud Code에 대해 자세히 알아보기
  • Minikube와 같은 로컬 에뮬레이터 사용

기본 요건

  • 편집자 권한이 있는 GCP 프로젝트, GCP 계정, Cloud Shell에 대한 액세스 권한이 필요합니다.
  • 선택적 부분의 경우 터미널 에뮬레이터와 Google Cloud SDK가 설치되어 있어야 합니다.

2. 설정 및 요구사항

자습형 환경 설정

  1. Google Cloud Console에 로그인하여 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다. 아직 Gmail이나 Google Workspace 계정이 없는 경우 계정을 만들어야 합니다.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • 프로젝트 이름은 이 프로젝트 참가자의 표시 이름입니다. 이는 Google API에서 사용하지 않는 문자열이며 언제든지 업데이트할 수 있습니다.
  • 프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유하며, 변경할 수 없습니다(설정된 후에는 변경할 수 없음). Cloud 콘솔이 고유한 문자열을 자동으로 생성합니다. 보통은 그게 뭔지 상관하지 않습니다. 대부분의 Codelab에서는 프로젝트 ID (일반적으로 PROJECT_ID로 식별됨)를 참조해야 합니다. 생성된 ID가 마음에 들지 않으면 무작위로 다른 ID를 생성할 수 있습니다. 또는 직접 시도해 보고 사용 가능한지 확인할 수도 있습니다. 이 단계 이후에는 변경할 수 없으며 프로젝트 기간 동안 유지됩니다.
  • 참고로 세 번째 값은 일부 API에서 사용하는 프로젝트 번호입니다. 이 세 가지 값에 대한 자세한 내용은 문서를 참고하세요.
  1. 다음으로 Cloud 리소스/API를 사용하려면 Cloud 콘솔에서 결제를 사용 설정해야 합니다. 이 Codelab 실행에는 많은 비용이 들지 않습니다. 이 튜토리얼이 끝난 후에 요금이 청구되지 않도록 리소스를 종료하려면 만든 리소스를 삭제하거나 전체 프로젝트를 삭제하면 됩니다. Google Cloud 새 사용자에게는 미화 $300 상당의 무료 체험판 프로그램에 참여할 수 있는 자격이 부여됩니다.

3. Cloud Shell 터미널 작업

이 섹션에서는 Cloud Shell 터미널과 UI 탐색 방법, 기능 사용 방법, 구성 옵션, 생산성 향상에 도움이 되는 다양한 사용 방법을 알아봅니다.

Cloud Shell에는 Cloud Shell 터미널Cloud Shell 편집기라는 두 가지 기본 도구가 있습니다. 이 실습에서는 Cloud Shell 터미널과 Cloud Shell이라는 용어를 서로 바꿔서 사용하지만, 터미널 에뮬레이터와 IDE를 명확히 구분하기 위해 편집기를 항상 Cloud Shell 편집기라고 합니다.

Cloud Shell은 사용자가 언제든지 사용할 수 있는 임시 Google Compute Engine Debian 기반 Linux 머신을 기반으로 구축된, 모든 기능을 갖춘 클라우드 기반 셸입니다. Google Cloud SDK가 설치된 상태로 제공되며 git, kubectl, kubectx, curl, python3, tmux 등 여러 관련 도구가 있습니다.

$HOME 디렉터리는 Google Cloud에 의해 Cloud Storage에 유지되며 Cloud Shell 머신이 시작될 때마다 자동으로 마운트되므로 Cloud Shell 머신이 종료되더라도 그 아래에 남겨둔 정보는 손실되지 않습니다. 즉, Cloud Shell을 다시 사용 설정해도 $HOME 디렉터리와 이 디렉터리 내 모든 맞춤설정이 그대로 사용할 수 있습니다.

Cloud Shell 출시

  1. console.cloud.google.com로 이동하여 GCP 콘솔에 로그인되어 있지 않으면 Google 사용자 인증 정보를 입력합니다. Google Cloud Platform의 Console 기본 UI가 표시됩니다.
  2. Cloud 콘솔 메뉴 바 선택기에서 작업할 GCP 프로젝트 ID를 선택합니다.

a78258af94ed9ec3.png

  1. 메뉴 바 오른쪽에서 계정 아바타 옆에 있는 Cloud Shell 활성화 버튼을 찾습니다.

5b4246f45b173ff4.png

  1. Cloud Shell 아이콘을 클릭하면 Cloud Shell 터미널이 열리고 GCP Console UI: UI 바로 아래에 새 창이 표시됩니다.

8495f27a3ed0f05.png

이 창에는 Cloud Shell 터미널이 있습니다.

  1. Cloud Shell 터미널로 이동하여 GCP 콘솔에서 적절한 GCP 프로젝트 ID를 선택하면 Cloud Shell에서 이를 인식하므로 다시 지정하지 않아도 됩니다.
echo $GOOGLE_CLOUD_PROJECT

그러면 Cloud Shell 프롬프트에도 표시되는 GCP 프로젝트 ID가 출력됩니다.

도구 간 전환

Cloud Shell은 몇 가지 도구와 구성 옵션을 제공합니다. Cloud Shell 메뉴에서 사용할 수 있는 옵션을 통해 검토합니다.

595834af08265e5c.png

  1. Cloud Shell 터미널을 최대화하고 브라우저의 모든 탭 공간을 차지할 수 있도록 막대에서 67bd0e39332a8438.png 버튼을 클릭합니다.

1197e3e9a36bc7aa.png

  1. Cloud Shell은 전체 브라우저 탭 공간을 최대화하여 차지합니다.

ecb227a1d39b8021.png

  1. 다시 클릭합니다. 브라우저 탭 공간이 Cloud 콘솔과 Cloud Shell 간에 공유되도록 되돌아갑니다.

새 탭 열기

Cloud Shell 터미널을 사용하면 필요한 만큼 여러 개의 탭을 열 수 있습니다.

  1. 다음 버튼을 클릭하고 새 탭을 엽니다.

e5757f88b64c7f5.png

  1. 이제 탭 이름 옆에 있는 x를 클릭하거나 상응하는 셸에 exit를 입력하여 새 탭을 닫습니다.

8828238e04a14a20.png

새 창 열기

새 브라우저 창에서 Cloud Shell을 열면 한 창에서는 Cloud 콘솔을, 다른 창에는 Cloud Shell을 둘 수 있습니다.

  1. 다음 버튼을 클릭하고 Cloud Shell이 새 브라우저 탭에서 어떻게 열리는지 관찰합니다.

bd407e51ae78d9fe.png

  1. 이제 Cloud Shell에서 동일한 툴바 옵션을 제공하지만 모양이 약간 다릅니다.

4bce4507ce34a695.png

  1. 다음 섹션에서는 계속 이 새 브라우저 탭을 사용하세요.

tmux를 통한 세션 트랜스퍼

Cloud Shell에는 tmux가 포함된 상태로 제공됩니다. tmux는 매우 널리 사용되는 터미널 멀티플렉서로, GNU Screen과 유사합니다. tmux와의 통합으로 Cloud Shell에서 위치에 관계없이 세션을 보존할 수 있습니다.

다음 단계에서는 이 개념을 연습하면서 기능을 더 잘 이해할 수 있습니다.

Cloud Shell 터미널 이동

  1. 방금 연 Cloud Shell 탭에서 top 명령어를 입력합니다.

bdd80a3fdcc6c7db.png

맨 위 명령어는 Cloud Shell 터미널에서 실행 중인 프로세스의 실시간 보기를 제공합니다. 이를 사용하여 tmux에서 제공하는 Cloud Shell의 세션 지속성을 시각화할 수 있습니다.

  1. 브라우저의 첫 번째 탭 (Cloud 콘솔이 있는 탭)으로 돌아갑니다.
  2. 이전에 새 창에서 Cloud Shell을 열기로 결정했으므로 'Your session was transferred to another browser tab. You can disable this from the "Tmux Settings" option in the Cloud Shell settings menu.' 메시지가 표시됩니다.
  3. 다시 연결 버튼을 클릭합니다.

bdc5d5773296bcfe.png

그러면 두 번째 탭에서 실행 중이던 셸에 액세스할 수 있고, top은 방금 종료한 것과 마찬가지로 여기에서 계속 실행됩니다.

  1. 브라우저의 두 번째 탭으로 이동하여 새 창에서 Cloud Shell을 연 다음
  2. 다시 연결을 클릭합니다. 창을 닫기 전에 실행 중이었던 맨 위의 프로세스를 복구합니다.

tmux로 윈도우 분할

tmux는 방금 사용한 것보다 훨씬 더 유용합니다. tmux 튜토리얼은 이 실습에서 다루지 않습니다. 자세한 내용은 공식 tmux 시작하기를 참고하세요.

하지만 tmux는 로컬 터미널 에뮬레이터에서 가능한 몇 가지 추가 기능을 Cloud Shell에 제공합니다. 이를 위해 나란히 터미널 분할을 수행해 보겠습니다.

  1. Cloud Shell 내에서 Ctrl + b%을 차례로 누릅니다.
  2. tmux가 원래 창 바로 앞에 새 창을 만드는 방법을 관찰합니다.

717b047d71c8eeef.png

  1. 두 번째 창을 클릭하고 exit를 입력합니다.

웹 미리보기 활용

또한 Cloud Shell은 컴퓨터에서 실행되는 로컬 브라우저를 통해 클라우드에서 실행되는 Cloud Shell 머신에서 자동 포트 전달을 설정할 수도 있습니다.

  1. Cloud Shell에 다음을 입력합니다.
python3 -m http.server 8080
  1. 오른쪽 상단의 웹 미리보기 옵션으로 이동하여 포트 8080에서 미리보기를 선택합니다.

a8363cafca79345.png

새 탭에서 해당 포트에 제공되는 기본 페이지가 열립니다.

포트 8080뿐만 아니라 Cloud Shell에서 애플리케이션이 노출하는 모든 포트에 대해 포트를 변경하고 미리보기를 수행할 수 있습니다.

추가 Cloud Shell 옵션 액세스

Cloud Shell에는 추가 설정 및 옵션이 있습니다.

  1. Cloud Shell 메뉴에서 점 3개를 클릭하여 옵션에 액세스합니다.

a5c515c9df9284be.png

여기서 가장 관련 있는 옵션은 Cloud Shell에 파일을 업로드하거나 다운로드하는 것입니다. 문제가 발생할 경우 Cloud Shell 머신을 다시 시작하면 됩니다.

4. Cloud Shell 편집기로 작업하기

Cloud Shell의 가장 중요한 기능 중 하나는 Cloud Shell 편집기입니다. 오픈소스 프로젝트인 Eclipse Theia를 기반으로 하는 정식 IDE로 Google에서 다른 개발자들과도 함께 기여했습니다. 둘 다 모나코 편집기, 확장 프로그램 모델, 언어 서버 프로토콜, 디버그 어댑터 프로토콜과 같은 몇 가지 일반적인 오픈소스 기본 구성요소를 사용하기 때문에 VSCode와 매우 유사합니다.

Theia/Cloud Shell 편집기는 매우 복잡한 도구이므로 Cloud Shell 편집기의 모든 기능을 설명하는 것은 이 실습에서 다루지 않습니다. 이 섹션에서는 이 Google Cloud 구현에서 사용할 수 있는 몇 가지 핵심 개념과 고유한 기능을 살펴봅니다.

Cloud Shell 편집기 액세스

Cloud Shell 편집기는 다음 세 가지 방법으로 액세스할 수 있습니다.

  • 명령줄에서 액세스
  • Cloud Shell 메뉴를 통해 액세스
  • 브라우저에서 URL 방문

다음 단계를 통해 이러한 방법을 경험해 보세요.

  1. 명령줄에서 다음 명령어를 사용하여 .bashrc를 엽니다.
cloudshell edit $HOME/.bashrc
  1. 메뉴에서 Cloud Shell을 엽니다. 편집기 열기 6039dbc755bfca9f.png버튼을 클릭합니다. f493b9a98771b0af.png 그러면 Cloud Shell 터미널이 열려 있는 상태에서 Cloud Shell 편집기가 열립니다. Cloud Shell 편집기의 모든 탭 공간을 사용하려면 수정 버튼 오른쪽에 있는 버튼을 클릭하여 터미널을 닫습니다. 이 두 버튼 (편집기 열기/닫기 및 터미널 열기/닫기)에 따라 브라우저 탭에 표시되는 도구가 결정됩니다. 두 버튼을 모두 클릭하는 연습을 해 이 동작을 익혀 보세요.
  2. ide.cloud.google.com를 입력하여 브라우저의 URL 표시줄에서 Cloud Shell 편집기를 호출합니다.

Cloud Shell 편집기에서 명령줄 사용

Cloud Shell 터미널과 Cloud Shell 편집기가 동일한 브라우저 탭에 공존하는 경우에도 Cloud Shell 터미널을 사용하지 않고 모든 요구사항에 맞게 Cloud Shell 편집기와 Cloud Shell 편집기 내에서 사용할 수 있는 터미널만 사용할 수 있습니다. 이는 IDE 내에서 살고 VSCode의 다양한 단축키와 창 역학을 알고 있다면 합리적일 수 있습니다.

위에서 언급한 방법 중 하나를 사용하여 Cloud Shell 편집기를 엽니다. 그런 다음 편집기 메뉴로 이동하여 터미널 > 터미널을 선택합니다. 새 터미널을 열거나 키보드에서 `Ctrl + `` 를 누릅니다. 모든 셸 요구사항에 사용할 수 있는 새로운 터미널 창이 Cloud Shell 편집기의 하단에 열립니다.

8b2c36f71e851c40.png

이렇게 하면 Cloud Shell 터미널과 마찬가지로 tmux 창 관리를 사용하지 않고도 여러 터미널 창을 관리할 수도 있습니다.

Cloud Shell 설정 맞춤설정

Cloud Shell은 다양한 맞춤설정 옵션을 제공하며, 기본적인 동작으로 Cloud Shell 터미널 시작 구성 및 세부 작업에 대해 설명합니다. 다음 섹션에서 다양한 옵션을 자세히 살펴봅니다.

Cloud Shell 터미널 메뉴로 이동하여 톱니바퀴 아이콘을 클릭합니다. 다음과 같은 몇 가지 구성 옵션이 표시됩니다.

a473c985a434070b.png

그중 몇 가지를 검토해 보세요.

  • 색상 테마: 밝은 테마, 어두운 테마 또는 맞춤 색상 모음 (글꼴 색상 및 배경 색상 등 기본 색상)을 사용할 수 있습니다.
  • 텍스트 크기: 5가지 글꼴 크기 선택
  • 글꼴: Courier new 또는 Monospace
  • Copy settings: 여기에서 가장 많이 사용되는 Linux 터미널 에뮬레이터에서 사용되는 단축키와 유사한 단축키 복사를 변경할 수 있습니다.
  • 키보드: 메타 키를 Alt에 매핑 (기본적으로 Meta는 ESC) 및 일부 OS의 경우 Alt Gr 키 매핑

셸 환경 구성

Debian 기반 Linux 시스템에서 셸을 실행하는 터미널 에뮬레이터는 Linux에서와 동일한 방식으로 셸 환경을 맞춤설정할 수 있습니다. 따라서 $HOME에 있는 모든 구성 파일 (예: .bashrc))은 새 로그인 셸 프로세스가 생성될 때마다 제공됩니다.

Cloud Shell에서는 .customize_environment이라는 특수한 구성 파일에서 Cloud Shell 인스턴스가 시작될 때마다 수행할 작업을 지정할 수도 있습니다. 자세한 내용은 환경 맞춤설정 문서를 참고하세요.

Cloud Shell 터미널에 구성을 추가하는 연습을 합니다. Cloud Shell 터미널로 이동하여 다음 샘플 코드 저장소를 클론합니다.

git clone https://gitlab.com/javiercanadillas/cloud-code-getting-started.git

이 저장소에는 Cloud Shell을 구성할 수 있는 두 가지 주요 이벤트의 샘플이 포함되어 있습니다.

  • Cloud Shell 인스턴스가 시작될 때마다 $HOME/.customize_environment 파일을 읽습니다. 이 프로세스의 실행 로그는 /var/log/customize_environment에서 확인할 수 있으며, 실행에 성공하면 /google/devshell/customize_environment_done가 생성됩니다.
  • 새로운 셸 프로세스가 시작될 때마다 (새 창, 새 탭 등). 일반 bash 셸 구성 파일을 읽습니다.

다음 단계에 따라 두 가지를 모두 사용해 연습하세요.

  1. 다음 명령어를 실행하여 저장소에서 제공하는 맞춤설정을 실행합니다.
cd cloud-code-getting-started
source set_env_cust.sh

이렇게 하면 앞서 언급한 맞춤설정 옵션이 설정되고 사용 설정됩니다.

  1. 새로운 셸 프롬프트가 표시됩니다. .bash_profile 파일에서 가져온 bash 스크립트가 기본 프롬프트보다 짧은 이 새 프롬프트를 구성했으며 체크아웃 브랜치 또는 git 상태와 같은 기본 Git 정보를 포함합니다.
  2. 이제 cloudshell edit 명령어에 더 짧은 새 code 별칭이 추가되었습니다. 이를 사용하여 .bash_profile 파일의 콘텐츠를 확인합니다.
code $HOME/.bash_profile
  1. 새로 설치된 명령어 bat를 사용하여 .customize_environment 파일의 콘텐츠를 확인합니다.
bat $HOME/.customize_environment

bat는 인기 있는 Unix 도구 고양이의 향상된 버전입니다. bat 출력에는 새 Cloud Shell 머신이 실행될 때마다 부하 테스트 도구인 hey를 재설치하는 데 사용되는 apt install 명령어가 표시됩니다.

  1. Cloud Shell 메뉴 (오른쪽 상단에 있는 점 3개)를 클릭하고 다시 시작을 선택하여 모든 것이 제대로 작동하는지 테스트합니다.

이렇게 하면 Cloud Shell 제한 시간 및 인스턴스 재생성을 시뮬레이션하여 모든 것이 올바르게 구성되었는지 확인할 수 있습니다.

Cloud Shell 컨테이너 이미지 맞춤설정

이 맞춤설정 옵션을 사용하면 추가 패키지 및 커스텀 구성을 사용하여 커스텀 Cloud Shell 환경으로 작동하는 Docker 이미지를 만들 수 있습니다. 생성된 이미지는 완전 임시 Cloud Shell 인스턴스를 가동하므로, Cloud Shell VM과 여기에 연결된 $HOME 디렉터리가 모두 유지되지 않습니다. 그러나 이 이미지 생성은 특정 작업을 가장 효율적인 방식으로 수행할 수 있도록 함수별 Cloud Shell 인스턴스를 서드 파티에 제공해야 하는 사용 사례에 유용합니다.

이전 섹션에서 했던 것처럼 환경을 맞춤설정하는 대신 Cloud Shell을 가동하는 데 사용되는 새 이미지로 변경사항을 베이킹합니다. 커스텀 Cloud Shell이 더 빠르게 시작되므로 분명한 이점이 있습니다.

새 Cloud Shell 이미지 만들기

  1. Cloud Shell 터미널에 입력하여 Cloud Shell 컨테이너 이미지 만들기를 시작합니다.
cloudshell env create-custom-image custom-cloud-shell
cd custom-cloud-shell

그러면 Cloud Shell에 새 디렉터리가 생성되고, 코드를 호스팅할 같은 이름의 새 Cloud Source Repositories 저장소가 생성됩니다. 또한 $HOME/custom-cloud-shell/ directory에서 샘플 Dockerfile를 클론합니다.

  1. Dockerfile의 마지막 줄에 RUN apt install -y hey 줄을 추가합니다.
echo "RUN apt install -y hey" >> $HOME/custom-cloud-shell/Dockerfile

이렇게 하면 .customize_environment와 동일한 맞춤설정이 설정되지만, 대신 컨테이너에서 구현됩니다.

  1. 이미지를 로컬에서 빌드합니다.
cloudshell env build-local
  1. 다음 명령어를 실행하여 새 이미지를 테스트합니다.
cloudshell env run

이제 이미지 안의 셸로 이동하게 됩니다.

  1. hey 명령어를 실행하여 설치되었는지 테스트합니다.
hey
  1. 완료되면 exit를 입력하여 컨테이너를 종료합니다.
exit
  1. Cloud Source Repository에 변경사항을 푸시하고 이미지를 Container Registry로 푸시합니다.
git commit -a -m "Initial commit"
git push origin master
cloudshell env push

새 이미지 테스트

  1. 이미지를 공개적으로 사용할 수 있도록 설정합니다.
gsutil iam ch allUsers:objectViewer $(gsutil ls)
  1. 게시된 Cloud Shell 커스텀 인스턴스를 테스트하는 데 사용할 수 있는 URL을 생성합니다.
echo "https://ssh.cloud.google.com/cloudshell/editor?cloudshell_image=gcr.io/$GOOGLE_CLOUD_PROJECT/custom-cloud-shell"
  1. 출력 URL을 복사하여 새 브라우저 탭에 붙여넣으면 Cloud Shell 커스텀 인스턴스가 열립니다. 인스턴스에 액세스할 때 전체 임시 모드로 실행 중임을 나타내는 배너가 표시됩니다.

bc091a4c33649aa9.png

  1. Hey 명령어를 실행하여 이미지를 다시 테스트합니다.
hey
  1. 완료되면 임시 Cloud Shell 인스턴스를 exit하고 일반 Cloud Shell이 열려 있는 탭으로 돌아가서 다시 연결을 클릭합니다.

SSH를 사용하여 원격으로 Cloud Shell에 액세스

또한 로컬 컴퓨터에서 원격으로 Cloud Shell 기능을 사용할 수도 있습니다. 여기에는 일반적으로 두 가지 사용 사례가 포함됩니다.

  • 로컬 터미널에서 Cloud Shell 머신에 SSH로 연결
  • Cloud Shell 원격 $HOME 디렉터리를 로컬로 마운트합니다.

그러려면 Google Cloud SDK를 로컬에 설치해야 합니다. 또한 프로젝트 ID와 사용 중인 특정 사용자 인증 정보로 이를 구성해야 합니다.

로컬 머신에서 실행되는 터미널 에뮬레이터에서 다음 단계를 따르세요.

  1. GCP 프로젝트 ID를 설정하고 Cloud Shell이 있는 Cloud 조직에 해당하는 사용자 인증 정보로 로그인합니다.
gcloud config set project <your project id>
gcloud auth login
  1. 원격 Cloud Shell 머신에 SSH를 통해 연결합니다.
gcloud cloud-shell ssh --authorize-session

이제 Cloud Shell로 이동하지만, 로컬 터미널 에뮬레이터의 기능과 구성을 사용합니다. 사용하는 기기가 tmux를 지원하는 경우 추가 통합을 활용하여 더 나은 원격 환경을 이용할 수 있습니다.

로컬 머신에서 Cloud Shell 홈 디렉터리 마운트

원격 Cloud Shell 인스턴스에 SSH를 통해 연결하는 것도 좋지만 원격 Cloud Shell $HOME 디렉터리에 대한 액세스 권한이 있는 로컬 IDE를 사용하는 것이 훨씬 더 좋습니다. 이런 식으로, 앞에서 보여준 SSH 액세스와 원격 코드를 로컬에서 편집하는 기능을 결합할 수 있습니다.

이렇게 하려면 먼저 로컬 머신에서 마운트 지점을 만듭니다.

mkdir $HOME/cloudshell

이 디렉터리는 Cloud Shell이 마운트될 디렉터리입니다. 이제 마운트하려면 Cloud Shell 인스턴스가 시작되었는지 확인한 후 로컬 터미널에 입력합니다.

$(gcloud cloud-shell get-mount-command $HOME/cloudshell)
cd $HOME/cloudshell

이렇게 하면 Cloud Shell을 로컬로 마운트하고 마운트하기 위해 실행해야 하는 마운트 명령어를 가져옵니다. Cloud Shell 홈 디렉터리의 콘텐츠가 로컬 머신에 마운트된 것을 볼 수 있습니다.

이제 VSCode와 같은 IDE를 로컬에서 열고 클라우드에서 원격으로 작업공간을 열 수 있습니다. 동시에 Cloud Shell에 대한 SSH 액세스를 사용하여 IDE 내에서 터미널 창을 열고 원격 터미널을 로컬 IDE에 통합할 수도 있습니다.

5. Cloud Code 사용

Cloud Code는 개발자가 클라우드 기반 도구로 보다 효과적으로 작업할 수 있도록 Google에서 개발한 플러그인입니다. VSCode 및 Jetbrains 제품과 같은 여러 IDE 및 코드 편집기에서 사용할 수 있으며 편의를 위해 기본적으로 Cloud Shell 편집기에 통합되어 있습니다. Cloud Code에는 다음 단계에서 연습할 개발자 친화적인 기능이 많이 포함되어 있습니다.

Cloud Shell 편집기에서 Cloud Code 찾기

빠른 액세스 버튼 사용

편집기의 왼쪽 창에 표시된 다음 4개의 버튼을 찾습니다.

de0b6c69b590d21b.png

이러한 메뉴 항목을 사용하면 Cloud Shell 편집기에서 바로 GCP 서비스에 쉽게 액세스하고 구성할 수 있습니다.

이 실습에서는 Kubernetes 클러스터를 집중적으로 살펴봅니다.

상태 표시줄 사용

Cloud Shell 편집기 UI를 통해 노출되는 Cloud에는 관련 있는 두 부분이 추가로 있습니다. 다음과 같이 편집기의 하단 표시줄에서 둘 다 확인할 수 있습니다.

f04c703ff45b05a.png

  • &lt;&gt; Cloud Code: 여기를 클릭하면 이 튜토리얼에서 사용할 빠른 작업 메뉴가 표시됩니다. 58a3f8940f6263ae.png
  • minikube 제어: 클러스터 시작 또는 중지와 같은 기본 작업으로 로컬 kubernetes 에뮬레이터인 minikube를 제어할 수 있습니다.

Minikube 인스턴스 만들기

버튼을 클릭하여 Minikube 인스턴스를 만듭니다.

540da42dd52e1469.png

Cloud Code로 GKE 클러스터 만들기

  1. 왼쪽에 있는 아이콘 Cloud Code - Kubernetes Clusters ( 5ffab5cb541da6.png)을 클릭합니다. 왼쪽에 CLOUD CODE - KUBERNETES: CLUSTERS라는 새 창이 표시됩니다.
  2. CLOUD CODE - KUBERNETES: CLUSTERS 옆에 있는 + 버튼을 클릭하고 Google Kubernetes Engine을 선택합니다. 이전에 가동한 Minikube와 같은 다른 옵션을 선택할 수도 있습니다.

e7a81607c1bc7c55.png

  1. 새 GKE 클러스터 만들기를 클릭합니다. 이 옵션을 선택하면 오른쪽에 추가 정보를 입력하여 개발 클러스터를 빠르게 만들 수 있는 새 창이 로드됩니다. 패널의 안내에 따라 다음 정보를 입력합니다.
  • Autopilot 선택
  • 리전 선택 (europe-west-1)
  • 클러스터 이름을 'dev'로 지정합니다.
  1. 클러스터 만들기 버튼을 클릭합니다. 이렇게 하면 새 Autopilot 클러스터가 생성됩니다.

클러스터 생성 프로세스에는 최대 55분 정도 걸릴 수 있습니다. 따라서 클러스터가 생성되는 동안 Cloud Code Kubernetes 창을 조금 더 살펴보겠습니다.

Cloud Code Kubernetes 창 살펴보기

앞에서 Minikube 클러스터를 만들었습니다. 준비되면 Cloud Code Kubernetes 창에 지정한 이름(minikube)으로 이 클러스터가 표시됩니다.

b654e618f78de3b3.png

UI에 클러스터가 활성으로 표시됩니다. 이 설정은 명령줄의 현재 Kubernetes 컨텍스트와 동기화됩니다. .

Cloud Code Kubernetes 창에서는 다음과 같은 내용을 볼 수 있습니다.

  • 기본 KubeConfig 파일: Cloud Code는 사용자를 대신해 ~/.kube/config 파일을 읽고 이를 사용하여 구성된 Kubernetes 클러스터에 연결하므로 쉽게 탐색할 수 있습니다. Kubeconfig 파일을 수정하려면 Default Kubeconfig 줄에 마우스를 가져간 다음 원하는 경우 옆에 나가는 화살표가 있는 정사각형을 클릭합니다.
  • 등록된 클러스터의 다양한 객체에 대한 탐색 가능한 렌더링: 이 경우 이전에 만든 minikube Minikube 클러스터를 컨텍스트, 네임스페이스, 노드와 함께 확인할 수 있습니다. 계속해서 트리의 노드 중 일부를 펼칩니다. 애플리케이션을 배포하지 않았으므로 아직 포드가 없습니다.

새 GKE 클러스터가 준비되고 실행되면 minikube Minikube 클러스터와 함께 왼쪽 창에 표시됩니다. 클러스터를 마우스 오른쪽 버튼으로 클릭하여 '활성' 상태로 만들 수 있습니다. 실행할 수 있는 Cloud Code 작업에 대해 클러스터를 선택한다는 의미에서 다음 작업을 수행합니다.

8e4306c3ce707ef8.png

6. 축하합니다.

축하합니다. Codelab을 완료했습니다.

학습한 내용

  • Cloud Shell 주요 기능을 살펴보고 숙지했습니다.
  • 다양한 Cloud Shell 사용 패턴으로 연습함
  • 고급 사용을 위해 Cloud Shell 환경 맞춤설정
  • Cloud Code 옵션 및 기능을 숙지합니다.
  • Kubernetes 애플리케이션용 Cloud Code 세부정보 검토
  • Minikube와 같은 로컬 에뮬레이터 사용