Joo's
article thumbnail

GCS를 GCE에 mount하면 마치 local 폴더처럼 storage를 이용할 수 있다!

https://cloud.google.com/storage/docs/gcsfuse-quickstart-mount-bucket?hl=ko 

 

Cloud Storage FUSE를 사용한 Cloud Storage 버킷 마운트  |  Google Cloud

moonrise-replaceff807ffa2a3247dabe817641681f3e78moonrise-replace를 사용하여 Linux 머신에 moonrise-replace02a0703bcf3841808ef2a2bc945f0b34moonrise-replace 버킷을 마운트하는 방법 알아보기

cloud.google.com

위 docs를 따라하면 된다.

1. google cloud engine(인스턴스) 생성하기

주의! 

인스턴스를 만들 때 반드시 cloud API 엑세스 범위를 전체 허용이나, storage(저장소)를 전체로 바꿔야 한다.

혹시 만들 때 default(기본 액세스 허용)라면 인스턴스 수정을 통해 바꾸면 된다.(인스턴스 중지 후)

2. CLI를 설치하는 것이 핵심이다.

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

 

gcloud CLI 설치  |  Google Cloud

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

cloud.google.com

보통 GCE는 ubuntu를 os로 사용하니까 ubuntu tab을 누르고 설치 방법을 따라하자.

(혹시 안되면 docs를 보고 찾아서 해야 함)

패키지 설치

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates gnupg curl sudo

설치 시작

- gcloud CLI 배포 URI를 추가

echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

- Google Cloud 공개 키 가져오기

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

- gcloud CLI를 업데이트하고 설치

sudo apt-get update && sudo apt-get install google-cloud-cli

(혹시 docker를 이용할 경우) : Docker 이미지 내에 gcloud CLI를 설치하는 경우 대신 단일 RUN 단계를 사용합니다.

RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg  add - && apt-get update -y && apt-get install google-cloud-cli -y

- gcloud init 실행

gcloud init

만약 gcloud init을 처음 실행하면 이렇게 뜸.

여기서 그냥 기존 계정 쓸 건지 아니면 다른 계정(서비스 계정)을 쓸지 물어보는데 잘 모르겠고

그냥 1번 누르면 됨.(1번 계정은 현재 GCE에서 사용하는 계정)

계정 선택을 하면 프로젝트를 선택하라고 함.

여기서도 그냥 1번 누르면 됨.(보통 프로젝트에서 GCE를 생성하니까)

그 다음 질문은 default 지역 설정할거야? 라는 거임. y를 누르면 지역 선택하라고 뜸.

이렇게 지역 번호를 눌러야 하는데 서울 지역은 asia-northeast3이고 나는 asia-northeast3-b 여기를 원함.

list를 입력하면 안보이는 것도 다 보인다.

내가 원하는 지역인 51을 눌러준다.

3. 스토리지 버킷 만들기

모든 설정이 끝났다. 다시 https://cloud.google.com/storage/docs/gcsfuse-quickstart-mount-bucket?hl=ko

 

Cloud Storage FUSE를 사용한 Cloud Storage 버킷 마운트  |  Google Cloud

moonrise-replaceff807ffa2a3247dabe817641681f3e78moonrise-replace를 사용하여 Linux 머신에 moonrise-replace02a0703bcf3841808ef2a2bc945f0b34moonrise-replace 버킷을 마운트하는 방법 알아보기

cloud.google.com

여기서부터 진행한다.

- storage 버킷 만들기

버킷은 그냥 작은 드라이브라고 보면 된다. storage 내에 여러 개의 버킷을 만들 수 있 이 버킷에 데이터를 저장한다. 

(BUCKET_NAME은 전세계에서 고유한 이름이어야 하기 때문에 아마 이미 사용중인 이름이라도 많이 뜰 것임.)

gcloud storage buckets create gs://[BUCKET_NAME]

# 만약 BUCKET_NAME이 test라면
gcloud storage buckets create gs://test

 

버킷 생성되었다고 뜨면 성공!

4. Cloud Storage FUSE 설치

- 패키지 소스로 Cloud Storage FUSE 배포 URL을 추가

gsfuse를 이용해서 storage 작업을 해야 한다. 꼭 설치해야 함!

export GCSFUSE_REPO=gcsfuse-`lsb_release -c -s`
echo "deb https://packages.cloud.google.com/apt $GCSFUSE_REPO main" | sudo tee /etc/apt/sources.list.d/gcsfuse.list

- Google Cloud APT 저장소 공개 키 가져오기

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

- gsfuse 설치

sudo apt-get update
sudo apt-get install fuse gcsfuse

- 설치 후 버전 확인

gcsfuse -v

5. 버킷 마운트(후...이걸 위해서 여기까지 달려옴.)

- 사용자 인증

gcloud auth application-default login

y를 누르면 터미널에 링크가 하나 나온다. 링크로 접속해서(ctrl+클릭) 구글 로그인을 하면 

이게 나오는데 저 밑에 있는 password를 복사한다.(copy 누르면 됨)

다시 터미널에 가서 붙여넣기 한다.

- storage와 마운트 할 폴더를 생성(원하는 경로로 만들면 됨)

mkdir "$HOME/mount-folder"

- 방금 만든 폴더와 마운트!

(혹시 폴더를 만들 때 경로를 다르게 했다면 그 경로를 넣어야 함)

gcsfuse [BUCKET_NAME] "$HOME/mount-folder"

# 만약 위에서 BUCKET_NAME을 test로 했다면
gcsfuse test "$HOME/mount-folder"

오류 없이 된다면 성공!

6. 버킷이랑 마운트 잘 되었나 확인

- 귀여운 강아지 다운로드!(사실 고양이)

curl -O https://cloud.google.com/storage/images/kitten.png

- 버킷이랑 마운트한 폴더에 복사

cp kitten.png "$HOME/mount-folder/kitten.png"

- 폴더에 잘 들어갔나 확인

ls "$HOME/mount-folder"

- 마운트된 폴더에는 들어갔는데 진짜 storage 버킷에 들어갔나 확인하기

Google Cloud Storage에 들어가서 버킷을 눌러보면 이미지가 들어와 있는 것을 확인할 수 있다!

7. 마운트 된 버킷 해제 및 삭제

- 마운트를 해제하면 저 폴더에 있던 귀여운 강아지 이미지가 사라진 것을 알 수 있다!

fusermount -u "$HOME/mount-folder"

- 혹시 버킷이랑 내용물을 모두 삭제하고 싶으면?

gcloud storage rm gs://[BUCKET_NAME] --recursive

# BUCKET_NAME이 test일 경우
gcloud storage rm gs://test --recursive

Google Cloud Storage에 들어가면 아까 생성한 버킷이 사라진 것을 알 수 있다!


profile

Joo's

@JooJY

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!