Google Cloud Associate 강의 요약: Section 5
서문
GCA 자격증 취득을 위해 들은 강의 내용 요약이다. 섹션 5의 내용을 담고 있다.
Gcloud
- Gcloud는 구글 클라우드 리소스의 CLI이다.
- 대부분의 GCP 서비스는 이를 통해 해결할 수 있다.
Compute Engine Virtual Machines, Managed Instance Groups, Databases, 리소스 CRUD, 배포 등
- GCP와 다른 서비스로 처리하는 CLI 툴들
- Cloud storage: gstuil
- Cloud Bigquery: bq
- Cloud Bigtable: cbt
- kubernetes - kubectl
- 이런 Gcloud를 쓰기 위해서 SDK를 사이트에서 별도로 설치할 수도 있으나(파이썬 필요!) 그냥 GCloud의 Cloud Shell을 이용해도 된다.
- Cloud shell에 Gcloud를 비롯한 다른 툴들이 이미 설치 되어 있다.
Gcloud config
- `gcloud init`을 입력하면 기본 Configuration 설정을 볼 수 있고, 이를 재설정 할수도 있다.
- Configuration name
- Account
- Project
- Region, Zone
- `gcloud config list` 명령어를 통해 Configuration 목록을 볼 수 있다.
- 가령 계정만 나열하고 싶다면 `gcloud config list account` 라 하면된다.
- 그런데 `gcloud config list region` 이라고 쳐도 안나온다. 그 이유는 뭘까?
- 아래 분류체계에 맞게 상위 경로를 입력해주어야한다. `gcloud config list account` 는 경로를 입력하지 않아도 바로 계정들을 보여주었는데 그건 default가 core로 되어있어서 생략이 가능한 것이다.
- component_manager
- disable_unable_check
- compute
- gce_metaadata_read_timeout_sec
- region
- zone
- core
- account
- disable_usage_reporting
- project
- verbosity
- metrics
- environment
- 따라서 region에 따른 분류를 원한다면 `gcloud config list compute/region` 이라고 입력해야 한다.
- `gcloud config set {SECTION}/{PROPERTY} VALUE` 명령어로 configuration을 지정해줄 수 있다.
- 위에 있었던 대항목들 component_manager,compute,core,metrics 가 SECTION이고 PROPERTY는 그 아래 작은 항목들이다.
- 여기서도 core의 하위 항목에서는 core을 생략하고 바로 property만 써줄 수 있다.
- 일반적으로 core 항목의 값들은 시작할때 default로 정해져 있어 지정하는 것은 optional 하다.
- `gcloud config unset` 은 그 반대의 명령어다. 기본값으로 초기화 한다.
- `gcloud config set --help` 로 상세 항목들을 알 수 있다.
- 동일한 machine에서 여러개의 project를 구성할 때 너는 다른 구성들을 원할 것이다. 이는 `gcloud config configurations create/delete/describe/activate/list` 명령어를 통해 볼 수 있다.
- `gcloud config configurations list` 로 목록들 출력(name, is_active, account, project, compute_default_zone, compute_default_region)
- `gcloud config list {PROPERTY}` 현재 설정된 구성 확인
- `gcloud config configurations create {NAME}` 특정 구성 활성화
- `gcloud config configurations create {newName}` 으로 새로운 구성 생성
- `gcloud config set project {projectID}` 기본 프로젝트로 설정
- `gcloud {GROUP} {SUBGROUP} {ACTION}` 으로 가지고 놀 수 있다.
- GROUP: config, compute, container, dataflow, functions, iam ...
- SUBGROUP: instances, images, instance-templates, machine-types, regions, zones ...
- ACTION: create, list, start, stop, describe...
- ex) `gcloud compute machine-types list`
`gcloud compute machine-types list --filiter=" zone:(asai-southeast2-b asia-southeast2-c)"`
- gcloud compute insances create {NAME} 뒤에 하이픈 2개로 다양한 option을 넣어 인스턴스를 만들 수 있다.
region
Default region과 zone을 정하는데는 3가지 방법이 있다.
- 1. Centralized Configuration: 조직정책으로 프로젝트나 조직 전체의 지역을 기본값으로 설정. metadata로 구성된다.
- 2. Local gcloud Configuration: gcloud config set compute/region REGION, 명령어를 통해 기본값으로 적용함.
- 3. Command Specific: 개별 명령어 --zone 이나 --region으로 정한 장소
- 우선순위는 3,2,1 순이다. 서로 말이 다르면 숫자 큰 옵션으로 처리된다.
describe, instance-templates
리스트와 describe 명령어들
- `gcloud compute {RESOURCES} list` 여기서 RESOURCES 자리에 images, regions, zones, disk-types, instances, disks, snapshots 들어갈 수 있음
- 이후 --fliter로 특정 이름만 뽑아내거나 --sort-by로 정렬하기, --uri로 uri 뽑아내기 등을 할 수 있다.
- `gcloud compute regions describe us-west4` 으로 us-west4의 id, kind, quotas 등 상세한 정보 뽑아내는 것 가능
- `gcloud compute instances start/stop/delete {INSTANCE_NAME}`
- stop으로 인자들 여러개 입력해서 여러개 동시에 정지 가능
- delete는 뒤에 옵션으로 특정 디스크를 삭제하거나 keep 할 수 있음 (`--delete-disks=VALUE, --keep-disks=VALUE`)
- 인스턴스 탬플릿도 인스턴스처럼 명령어로 `gcloud compute instance-templates create/list/delete/describe` 할 수 있다.
- 원한다면 create 할때 --source-instance와 --source-instance-zone을 따로 default가 아닌 다른 값으로 지정해줄 수 있다.
- 그리고 여기서 만든 탬플릿은 `gcloud compute instances create my-app --source-instance-template="my-instance-template` 식으로 인스턴스 생성에 활용할 수 있다.