CS

Google Cloud Platform(GCP) VM 인스턴스/버킷 생성하기, CLI로 파일 업로드/다운로드 하기

chanmuzi 2023. 2. 20. 21:45

cloud 시장에서는 사실 AWS가 Google Cloud Platform보다 많이 쓰이지만,

GCP가 무료 크레딧을 제공해주기 때문에 실습해보기 좋다고 해서 강의 내용을 따라 실습을 진행해보았습니다.

 

1. GCP 가입하기

https://cloud.google.com/

 

클라우드 컴퓨팅 서비스  |  Google Cloud

데이터 관리, 하이브리드 및 멀티 클라우드, AI와 머신러닝 등 Google의 클라우드 컴퓨팅 서비스로 비즈니스 당면 과제를 해결하세요.

cloud.google.com

구글 계정이 없는 분은 없으시겠죠?

(생성하기가 워낙 쉬워서 다들 몇 개씩은 보유하고 계시니까요..!)

그럼 위 페이지에 접속하셔서 무료로 시작하기 버튼을 눌러 줍니다.

 

그러면 국가와 소속 기관을 고르고 서비스 약관에 동의하도록 되어 있습니다.

소속 기관에 따라 추가 크레딧을 제공하기도 하는 것 같은데, 저는 기타로 선택했습니다.

두 약관에 동의하면 계속 버튼을 클릭할 수 있습니다.

 

이제 결제 정보를 입력해야 합니다.

기존에 등록한 결제 정보가 있다면 간단히 확인만 하고 넘어갈 수 있고, 그렇지 않다면 주소 정보를 잘 입력해야 합니다.

 

2. GCP Console, 인스턴스 만들기

GCP 홈페이지 우측 상단을 보면 콘솔이라는 버튼이 있습니다.

클릭해주시면 아래 화면이 나옵니다.

(혹은 https://console.cloud.google.com/ 링크로 접속할 수 있습니다.)

 

저는 이미 테스트용으로 하나 만들어 보았기 때문에 이것 저것 나와 있지만 원래는 없습니다.

튜토리얼을 따라하게 되어 있는데 무시해도 상관 없습니다!

 

화면 좌측 상단의 메뉴 아이콘을 누르고 Compute Engine에 들어가봅니다. 

그리고 인스턴스 만들기를 클릭해주세요.

 

아래와 같은 화면이 나옵니다.

여기서는 인스턴스의 이름, 지역, 성능 등을 다양하게 설정할 수 있습니다.

일반적으로 자신이 거주하는 지역과 가까운 곳을 골라야 서버가 원활히 작동한다고 하는데요,

당장 빡센 작업을 할 것도 아니고 장기적으로 큰 비용을 들일 것도 아니기 때문에 저는 강사님을 따라 서울로 선택했습니다.

 

머신의 유형 같은 경우에는 e2-micro가 가장 기본적인 옵션인데요 이는 GCP가 무료로 제공하는 유일한 범위니까 선택해주도록 합니다.

(위 캡쳐에는 e2-medium이 자동으로 선택되어 있습니다.)

 

이 외에도 여러가지 세팅을 하게 되어 있는데 당장은 크게 건드릴 것은 없습니다.

참고로 캡쳐 우측을 보면 알 수 있듯이 옵션에 따라서 가격이 얼마 정도 청구될 것인지 영수증이 나옵니다.

 

맨 아래의 '만들기' 버튼을 클릭하면 인스턴스가 수십 초 후에 생성됩니다.

 

생성 이후에는 이렇게 목록에 노출이 되고 IP 주소와 연결 방식 등 다양한 정보를 확인할 수 있습니다.

 

3. 버킷 생성

이번엔 저장소를 생성해보겠습니다.

다시 메뉴로 돌아가 Cloud Storage에 접속합니다.

 

마찬가지로 만들기 버튼을 눌러줍니다.

 

여기서도 여러 가지 옵션들을 선택할 수 있는데 당장 크게 중요한 것은 없습니다.

데이터 저장 위치 정도만 대충 설정해주면 되겠습니다.

 

버킷이 생성되면 아래와 같이 목록에 노출됩니다.

 

4. CLI 환경에서 GCP 접속하기 (gcloud CLI 설치하기)

저는 맥OS의 iterm2를 터미널로 사용하고 있어요.

가상환경으로는 conda를 이용하여 base를 활성화한 상태로 진행했습니다!

 

https://cloud.google.com/sdk/docs/install?hl=ko 

 

gcloud CLI 설치  |  Google Cloud

gcloud CLI 설치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에는 Google Cloud CLI 설치를 선택하고 유지하기 위한 안내가 포함되어 있습니다. Google Cl

cloud.google.com

위 구글 문서를 참고하면 CLI를 설치하는 방법을 알 수 있습니다.

 

1. 파이썬 설치(대부분 설치 되어 있겠죠?)

혹시 조금 독특한(이전의) 버전을 사용중이신 경우엔 위 사이트에서 호환 가능한 버전을 확인해주세요!

 

2. 플랫폼에 맞는 패키지 다운로드

위 사이트에 올라와 있는 압축 파일을 홈 디렉토리에 받아줍니다.

저의 경우엔 Users/chanmuzi 폴더에 저장하고 압축을 풀어줬어요.

 

3. 터미널에서 install, init

./google-cloud-sdk/install.sh
./google-cloud-sdk/bin/gcloud init

만약 저처럼 사용자 폴더에 바로 다운로드 및 압축 해제를 마친 상태시라면,

터미널에서 사용자 폴더로 이동하고 바로 위 코드를 입력하시면 될 거에요.

즉 터미널의 현재 경로가 'Users/chanmuzi' 인 상태에서 저 코드를 입력했다는 뜻입니다!

(처음엔 google-cloud-sdk 폴더에 들어가 있는 상태에서 install.sh 를 입력했더니 실행이 안되더라구요)

 

4. 터미널 종료 후 다시 켜기

변경 사항을 반영할 수 있도록 터미널을 종료하고 다시 켜줍니다.

그럼 이제 터미널에서 gcloud 명령어가 활성화되어 있을 것입니다.

 

5. 터미널에서 로그인하기

(여기서부터는 https://www.google.com/search?q=gcp+bucket+download&rlz=1C5CHFA_enKR1022KR1022&oq=gcp+bucket+download&aqs=chrome..69i57j0i512j0i8i30j0i8i30i625l5j0i8i30.6783j0j4&sourceid=chrome&ie=UTF-8#fpstate=ive&vld=cid:4ef28136,vid:efzeDGjQWKQ 이 영상을 참고하셔도 됩니다!)

gcloud auth login

이건 로그인을 해주는 코드인데요 바로 브라우저 창이 뜨면서 구글 계정 인증을 진행합니다.

브라우저에서 로그인이 되면 터미널에서도 알아서 진행이 됩니다.

 

6. project config

gcloud config set proejct 프로젝트ID

GCP 대시보드에 접속하면 이렇게 프로젝트 ID를 바로볼 수 있는데요, 프로젝트 이름이 아닌 프로젝트 ID를 위 코드 자리에 입력해야 합니다.

저의 경우엔 gcloud config set project nomadic-bision-378409 를 입력했습니다.

 

정상적으로 처리된 경우에는

Updated property [core/project].

그렇지 않은 경우에는

WARNING: You do not appear to have access to project [입력내용] or it does not exist.
Are you sure you wish to set property [core/project] to 입력내용?

라는 메세지가 확인됩니다.

 

5. 복사하기(로컬 > 서버, 서버 > 로컬)

우선 로컬에 있는 파일을 서버로 올려보겠습니다.

gsutil cp 복사할파일 복사할경로
# gsutil cp chanmuzi/workspace/test.py gs://awesome-gcp22/test

여기서 awesome-gcp는 저의 버킷 이름입니다.

(cp는 복사 명령어에요!)

혹시 뭐라고 지정하셨는지 기억이 나지 않는다면 콘솔의 Cloud Storage를 들어가보시면 됩니다.

저는 해당 버킷 안에 test라는 폴더를 생성해두고 여기로 test.py라는 파일을 복사한 것입니다.

참고로 버킷 > awesome-gcp22 > test 옆의 복사 아이콘을 클릭하면 경로를 바로 붙여넣기 할 수 있습니다.

물론 gs:// 는 직접 작성해줘야 합니다!

 

만약 서버의 파일을 로컬로 가져오고 싶을 땐 어떻게 하면 될까요?

복사할 파일과 경로 위치만 바꿔서 명령을 실행하면 됩니다.

gsutil cp 복사할파일 복사할경로
# gsutil cp gs://awesome-gcp22/test/test.py chanmuzi/workspace

단, 명령을 실행하는 터미널에서의 디렉토리를 잘 확인해야 정확한 경로를 지정할 수 있겠죠?

 

CLI 환경에서 파일을 업로드 및 다운로드 하는 것을 알아보았는데, 물론 이는 웹 브라우저에서 일반적으로 파일을 업로드하고 다운로드하는 방식 그대로도 할 수 있는 작업입니다.