티스토리 뷰

Google Cloud를 사용하다 보면 배포나 컴퓨팅 제어 등 여러 가지 이유로 터미널에서 gcloud SDK를 사용하게 됩니다. gcloud에 모든 명령어는 프로젝트 단위로 연결이 되기 때문에 개발/스테이징/상용과 같이 여러 개의 프로젝트를 동시에 사용하는 경우에는 터미널에서 프로젝트를 전환하며 명령어를 사용해야 하는데요, 이번 글에서는 새로운 프로젝트를 시작할 때 그 환경을 gcloud에 연결하는 방법과 전환에 대해서 알아보겠습니다. 일단 제 GCP 계정 안에는 다음과 같이 두 개의 프로젝트가 이미 등록되어 있는데 신규 프로젝트를 생성하는 부분부터 살펴보겠습니다.

신규 프로젝트 생성

 

우측 상단에 NEW PROJECT 버튼을 누르고 프로젝트 이름을 blog-project로 입력한 이후에 CREATE 버튼을 통해 신규 프로젝트를 생성합니다.

신규 프로젝트 생성

 

프로젝트 생성이 완료되면 다음과 같이 신규프로젝트 환경으로 콘솔이 연결됩니다. 화면 상단에서 현재 프로젝트를 확인할 수 있습니다. 여러 개의 프로젝트를 운영할 때는 특히나 현재 환경에 대해서 항상 신경 써야 하겠습니다.

blog-project 프로젝트 생성 완료

 

자, 이제 터미널을 열고 gcloud config configurations list를 통해서 전체 프로젝트 리스트를 확인해 봅시다. 여기서는 계정연동은 이미 완료되어 있는 것으로 간주하고 진행합니다. 아래 화면에서 PROJECT 부분을 보면 위에서 확인했던 이미 생성되어 있는 프로젝트 2개라는 것을 알 수 있습니다.

연결된 프로젝트 환경 리스트

 

 

여기에 방금 새로 생성한 blog-project를 연결하기 위해 우선 아래와 같이 gcloud config configurations create blog-ops 명령어를 사용합니다. blog-ops는 프로젝트 환경에 대한 이름으로 자유롭게 기술하시면 됩니다. 추가로 신경써야 하는 부분은 이 명령어를 입력하면 gcloud가 가리키는 프로젝트가 방금 생성한 blog-ops로 즉시 전환된다는 점입니다. 단, 아직 blog-ops와 blog-project는 실제로 연결되지 않은 상태입니다. 즉, 빈 깡통을 바라보고 있는게 되는 겁니다.

blog-project 프로젝트를 다루는 blog-ops 환경 생성

 

다시 프로젝트 리스트를 살펴보면 방금 생성한 blog-ops 쪽에 IS_ACTIVE가 True로 설정된 것을 알 수 있습니다. 즉시 활성화되는 것을 원하지 않는다면 create 옵션 뒤쪽으로 --no-activate를 입력해주면 됩니다.

blog-ops 활성화

 

이제 blog-ops에 blog-project 프로젝트를 gcloud config set core/project blog-project-256508 명령어를 통해 연결해줍시다. 여기서는 프로젝트의 이름이 아니라 프로젝트 ID를 입력해줘야 한다는 점을 명심합니다. 연결하고 나서 list 옵션으로 실제 프로젝트 연결이 된 것을 확인해 줍니다.

blog-ops를 blog-project에 연결

 

gcloud config set을 통해 뒤이어 ACCOUNT와 DEFAULT_REGION, DEFAULT_ZONE까지 연결합니다. region과 zone은 말 그대로 default기 때문에 자주 사용하는 영역을 넣어주면 됩니다. 멀티 리전을 사용하고 있다면 대부분의 명령어에 어차피 --zone 옵션을 별도로 넣어줘야 하지만 그렇지 않은 경우에는 프로젝트의 중심이 되는 리전을 default로 선택해주는게 여러모로 편합니다.

account, region, zone까지 모두 연결

 

이제 blog-ops 환경을 통해 GCP 콘솔에서 생성한 blog-project의 모든것을 터미널에서 제어할 수 있게 되었습니다. 프로젝트에 등록되어 있는 인스턴스 목록을 확인해볼까요? 인스턴스 목록은 gcloud compute instances list 명령어로 확인가능한데 사실 당연히 실패합니다. 방금 생성된 프로젝트라서 아직 Compute Engine이 활성화되지 않았기 때문인데요.

인스턴스 리스트확인 실패

 

콘솔에 접속해서 Compute Engine으로 진입하면 활성화가 진행됩니다. 활성화를 기다렸다가 다시 터미널에서 확인해보면 아직 생성한 인스턴스가 없기 때문에 0 개의 아이템으로 출력됩니다. 정상적으로 환경이 프로젝트와 연결되었다는 것이 확인된 셈입니다.

다시 프로젝트를 side-project로 변경하고 인스턴스 리스트를 살펴봅니다. side-project의 환경 이름은 default로 되어 있으니 gcloud config configurations activate default와 같이 명령을 입력해주면 됩니다. 그리고 IS_ACTIVE의 상태가 default 쪽으로 활성화된 것을 확인해줍니다.

프로젝트 환경 전환

 

이제 다시 인스턴스 목록을 확인해보면 아래와 같이 side-project 프로젝트 내부에 생성되어 있는 인스턴스의 항목이 출력됩니다.

side-project에 있는 인스턴스 항목들

 

그렇다면 이런 환경구성은 어디서 참조되는 걸까요? 비밀은 바로 아래 디렉터리에 있습니다. 방금 생성한 blog-ops를 포함한 모든 환경이 ${HOME}/.config/gcloud/configurations에 위치해있습니다. 프로젝트 환경 설정은 아래 경로의 파일 편집을 통해서도 가능하기 때문에 위에서 진행한 명령어들이 불편하신 분들은 직접 파일을 생성/편집해도 됩니다. 다만 config_ 는 gcloud  config에서 인식하는 PREFIX 규칙이므로 유지해줘야 합니다. 

환경 설정파일

 

파일 내부를 들여다보면 모두 위에서 설정한 내용들이라는 것을 확인할 수 있습니다.

blog-ops의 환경설정

 

# 마무리

여기까지 gcloud SDK를 통해서 보유하고 있는 다양한 프로젝트 환경을 터미널에서 생성, 전환하는 과정을 살펴보았습니다. 상용 환경은 로컬에서 접속하는데 제한이 있다고 해도 개발과 스테이징 환경은 SDK를 통해 제어하는게 나쁘지 않겠습니다.

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday