CloudShell GCP에서의 CloudShell은 무엇인가?
Cloud Shell은 브라우저를 사용해 어디서나 액세스할 수 있는 온라인 개발 및 운영 환경
gcloud 명령줄 도구, kubectl 등의 유틸리티가 미리 로드된 온라인 터미널을 사용해 리소스를 관리할 수 있는 도구
구글에서 제공한 개요
Cloud Shell은 기본 제공되는 무료 가상 머신으로서 Cloud SDK, 널리 사용되는 개발자 도구 및 런타임이 사전 설치되어 제공됩니다.
Cloud SDK의 일부인 gcloud 명령줄 인터페이스는 Google Cloud 리소스 관리에 사용되는 강력한 다목적 도구로서 Cloud Shell에서 사용하면 워크스테이션에서 설치할 필요가 없습니다.
또한 개발 및 테스트 용도로 머신을 사용할 수 있습니다.
별도의 콘솔을 제공하여해당 콘솔에서 개발, Cloud리소스 생성, 관리, 운영이 가능
AWS Cloudshell, Azure Cloud Shell 각각 CSP에서 제공하는 Shell이 있음Azure의 경우 Windows Powershell과 결합되어 있는게 장점
Shell을 제공하는 이유는 CLI을 통해 실수 없이, 단순작업을 자동화하여 할 수 있고브라우져에서도 제공하여 어디에서나 접근할 수 있다는 점이 장점
CPU | 4core AMD EPYC 7B12(2.4Ghz) |
Memory | 16GB (16393296 kB) |
DISK | Home 기준 5GB(/dev/disk/by-id/google-home-part1 4.8G 68K 4.6G 1% /home) |
OS | PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"NAME="Debian GNU/Linux"VERSION_ID="11"VERSION="11 (bullseye)"VERSION_CODENAME=bullseyeID=debian |
특이사항
Cloud Shell은 일시적인 VM으로 세션이 종료되면 20분 뒤에 서버내 데이터는 삭제Shell에서 생성한 파일을 다운로드 하고 싶으면 dl filename을 이용하여 받을 수 있음(VM내 Readme파일참조)dl 명령어의 경우 구글에서 만든 Cloudshell용 파이썬 스크립트/usr/local/bin/cloudshell 상세 내용 확인
- GKE앱 배포
- Cloud Run서비스 배포
- App Engine앱 배포
- Cloud Shell로 gcloud명령어 실행
- Cloud Shell특징
Google 문서 : https://cloud.google.com/shell/docs?hl=ko
- GCP에서의 Cloudshell 사용 방법은?
- Cloud Shell 활성화
- 실행
- gcloud(Google Cloud Platform) CLI계정로그인
gcloud config set account 'ACCOUNT'
로그인 확인gcloud auth list
프로젝트 리스트 확인gcloud config list project
- 작업할 프로젝트 설정원하는 리전 선택
gcloud config set project [PROJECT_NAME]
gcloud config set compute/region asia-northeast3
리전설정 확인
gcloud config get-value compute/region
- 명령어를 이용하여, GUI하는 모든 작업을 CLI로 진행 할 수 있음
- Qwik LabGetting Started with Cloud Shell and gcloud(Lab)https://googlecourses.qwiklabs.com/catalog_lab/320Getting Started with Cloud Shell & gcloud Command Line Interface(Lab) https://googlecourses.qwiklabs.com/catalog_lab/2453변수 설정이 적용되므로, 상황에 맞게 적용이 가능하다.
- 변수설정 예제
현재 설정된 프로젝트 $ export PROJECT_ID=$(gcloud config get-value project)Your active configuration is: [cloudshell-29945]
- 출력 값
echo -e "PROJECT_ID: $PROJECT_ID\nZONE:$ZONE" PROJECT_ID: qwiklabs-gcp-01-cd1f3890e045 ZONE:
- GCP instances 생성
생성gcloud compute instances create gcelab2 --machine-type e2-medium --zone $ZONE결과Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-01-cd1f3890e045/zones/us-east1-b/instances/gcelab2].NAME: gcelab2ZONE: us-east1-bMACHINE_TYPE: e2-mediumPREEMPTIBLE:INTERNAL_IP: 10.142.0.2EXTERNAL_IP: 34.74.65.122STATUS: RUNNING
- Firewall 조회, 추가
Firewall 리스트 조회 (ICMP가 Allow된 조건만 검색)gcloud compute firewall-rules list --filter="network:'default' AND ALLOW:'icmp'"
- 결과
NAME: default-allow-icmp NETWORK: default DIRECTION: INGRESS PRIORITY: 65534 ALLOW: icmp DENY: DISABLED: False
- 정책추가
gcloud compute firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
대화형 모드 진입gcloud beta interactive
Uploaded by N2T