클라우드 스토리지(Cloud Storage) SSH 접속 방법

Last Updated on 2023-10-26 by BallPen

VM 인스턴스 SSH로 구글 Cloud Storage를 원격 접속하는 방법을 소개합니다.

클라우드 스토리지(cloud storage)는 구글 클라우드 플랫폼에서 제공하는 비정형 데이터를 저장하기 위한 관리형 서비스입니다. 요즘 많은 사람들이 데이터를 저장하기 위해 사용하고 있는데요.

클라우드 스토리지에 데이터를 저장 및 내려받기 위해서는 웹브라우저에서 구글 클라우드 플랫폼의 클라우드 스토리지 버킷에 접속하면 됩니다. 하지만 어떤 경우에는 VM 인스턴스의 SSH를 이용해 원격 접속할 필요성이 있을 때도 있어요.

그때는 어떻게 하면 될까요?

우선 그 방법을 설명드리기에 앞서 제가 구현하고자 하는 환경을 간단히 설명드립니다.

저는 구글 클라우드 플랫폼에 클라우드 스토리지와 VM 인스턴스가 있어요. 그리고 VM 인스턴스를 맥 컴퓨터의 터미널을 이용해 SSH 접속하여 활용하고 있습니다. 그런데 클라우드 스토리지에 저장된 데이터를 SSH 접속 환경에서 VM 인스턴스로 직접 다운받고 싶은거에요.

이제부터 그 방법을 설명드릴게요. 아래는 이번 글의 목차입니다.

1. 클라우드 스토리지 생성

클라우드 플랫폼에서 클라우드 스토리지 버킷을 만드는 방법부터 차근차근 설명드립니다. 구글 클라우드 플랫폼에서 ‘Cloud Storage \rightarrow 버킷’으로 이동하세요.

그리고 상단에 있는 ‘만들기’ 버튼을 클릭하세요. 그러면 아래 [그림 1]의 화면이 나타납니다.

[그림 1] 클라우드 스토리지 버킷 만들기 화면
[그림 1] 클라우드 스토리지 버킷 만들기 화면

우선 버킷 이름을 지정하면 됩니다. 단지 이름일 뿐이므로 적당히 만드세요. 만들었으면 ‘계속’ 버튼을 누르세요.

데이터 저장위치 선택 화면이 나올텐데요. 데이터가 저장될 리전을 선택하세요. 선택했으면 ‘계속’ 버튼을 누르세요.

데이터 스토리지 클래스를 선택하는 화면이 나오는데요. ‘Standard’가 제일 비싸고 ‘Archive’가 제일 저렴합니다. 하나 선택한 후 ‘계속’ 버튼을 누르세요.

그러면 객체 액세스를 제어하는 방식의 선택화면이 나옵니다. 기본값으로 그대로 두시면 됩니다. 객체 데이터를 보호하는 방법 선택도 한번 보시고 적당한 것을 선택하면 됩니다. 잘 모르겠으면 일단 기본값으로 두어도 됩니다.

마지막으로 화면 하단에 있는 ‘만들기’ 버튼을 클릭하세요.

그러면 초기화면으로 돌아가면서 버킷이 만들어지고 그 내역을 볼 수 있을 거에요.

스토리지에 데이터를 업로드 하고 싶으면 목록에서 ‘이름’을 클릭하세요. 그러면 파일을 저장하고 다운받을 수 있는 화면이 나옵니다.

2. 서비스 계정 생성

위에서 우리는 클라우드 스토리지 버킷을 만들었는데요. 그곳에 저장된 데이터를 SSH로 접속하여 관리하기 위해서는 스토리지 버킷에 접속할 수 있는 사용자를 지정해야 합니다.

이때 필요한 것이 서비스 계정이에요. 서비스 계정 말고 다른 여러 방식으로도 사용자 지정을 할 수 있습니다만 저는 이 방법을 사용했어요.

서비스 계정을 생성하기 위해서는 구글 클라우드 플랫폼에서 ‘IAM및관리자\rightarrow서비스계정’으로 이동합니다. 그리고 상단에 있는 ‘서비스 계정 만들기’ 버튼을 클릭하세요.

그러면 아래 [그림 2]의 화면이 나옵니다.

[그림 2] 서비스 계정 만들기 화면
[그림 2] 서비스 계정 만들기 화면

‘서비스 계정 이름’을 입력하면 ‘서비스 계정 ID’는 자동으로 생성됩니다. ‘서비스 계정 설명’은 비워두어도 되고 기록하고 싶은게 있으면 입력하세요.

이때 [그림 2]의 빨강색 상자로 표시한 부분에 이메일 주소가 나오는데요. 오른쪽에 복사하기 버튼을 눌러 복사를 해두세요. 나중에 사용됩니다.

‘만들고 계속하기’ 버튼을 누르세요. 그러면 ‘이 서비스 계정에 프로젝트에 대한 액세스 권한 부여’창이 나오는데요. 여기서 ‘역할선택’을 꼭 해주어야 합니다.

저는 ‘역할선택’ 필드를 클릭한 후 ‘Cloud Storage’의 ‘저장소 관리자’ 역할을 선택했습니다. 이것 말고도 다양한 역할선택이 가능하니 참고하세요.

역할 지정이 끝났으면 ‘계속 버튼’을 누르세요. 3단계 ‘사용자에게 이 서비스 계정에 대한 액세스 권한 부여’창이 열리는데요. 그냥 비워두고 화면 하단에 있는 ‘완료’ 버튼을 클릭하세요.

그러면 서비스 계정이 만들어지고 서비스 계정 목록 화면이 나오게 됩니다.

3. VM 인스턴스에 서비스 계정 등록

이 글을 보시는 분들은 이미 사용하고 있는 VM 인스턴스가 있을 가능성이 높아요. 만일 없다면 VM 인스턴스 만들기에 대한 이전 글을 참고해서 만드시기 바랍니다.

위에서 서비스 계정을 만들었는데요. 그 계정을 VM 인스턴스에 등록해주어야 해요. 그래야 그 VM인스턴스를 통해 클라우드 스토리지에 SSH 접속할 수 있어요.

구글 클라우드 플랫폼에서 ‘Compute Engine\rightarrowVM인스턴스’로 이동하세요. 그러면 여러분들이 갖고 있는 VM 인스턴스 목록이 보일텐데요.

클라우드 스토리지 접속에 활용할 VM 인스턴스를 선택해서 세부정보를 보시기 바랍니다. 기본정보, 머신구성으로 이어지는 세로방향으로 긴 화면이 나오는데요. 아래쪽으로 계속 스크롤 하면 ‘API 및 ID관리’가 있을거에요.

‘서비스계정’ 필드를 보면 무엇인가가 기본값으로 입력 되어 있고, ‘Cloud API 액세스 범위’에 ‘기본 액세스 허용’으로 되어 있을거에요. 다른 설정들은 모두 그대로 두고 이것만 아래 [그림 3]과 같이 바꾸어 주세요.

이 설정을 변경하기 위해서는 VM 인스턴스를 중지한 후 작업을 마친 후 재시작해야 합니다. 그 결과 아래와 같이 설정되도록 해주세요.

[그림 3] VM 인스턴스 세부정보의 'API 및 ID 관리' 부분
[그림 3] VM 인스턴스 세부정보의 ‘API 및 ID 관리’ 부분

‘서비스 계정’은 아까 위에서 여러분들이 만들어서 복사해 둔 이메일 주소 있잖아요. 그것을 붙여넣으면 됩니다. 어렵지 않게 할 수 있어요.

그리고 ‘Cloud API 액세스 범위’는 꼭 [그림 3] 처럼 ‘모든 Cloud API에 대한 전체 액세스 허용’이 선택되도록 해주셔야 합니다. 그래야 클라우드 스토리지를 읽고, 쓰고를 모두 할 수 있어요.

자 이제 다음 단계로 넘어가겠습니다.

4. 클라우드 스토리지 버킷 사용자 권한 설정

이제 마지막으로 클라우드 스토리지 버킷에 접속할 사용자 권한을 설정해야 합니다

구글 클라우드 플랫폼에서 ‘Cloud Storage \rightarrow 버킷’으로 이동하세요. 그러면 아까 위에서 만들어둔 버킷 목록을 볼 수 있을거에요. 목록에서 ‘이름’을 클릭합니다.

그러면 아래의 [그림 4]를 볼 수 있어요.

[그림 4] 클라우드 스토리지 버킷의 세부정보 조회 화면
[그림 4] 클라우드 스토리지 버킷의 세부정보 조회 화면

여러분들이 미리 저장해 둔 파일과 폴더들이 있다면 그 목록을 볼 수 있을거에요. 그러면 [그림 4]에서 빨강색 사각형으로 표시한 ‘권한’을 클릭하세요. 그러면 아래 [그림 5]가 나옵니다.

[그림 5] 클라우드 스토리지 버킷의 권한 설정 화면
[그림 5] 클라우드 스토리지 버킷의 권한 설정 화면

이 화면에서 아래쪽에 있는 ‘액세스 권한 부여’를 클릭하세요. 그러면 아래 [그림 6]의 화면이 나옵니다.

[그림 6] 클라우드 스토리지 버킷 주 구성원 추가 화면
[그림 6] 클라우드 스토리지 버킷 주 구성원 추가 화면

‘새 주 구성원’ 필드에 저 위에서 만들었던 서비스 계정의 이메일 주소 있잖아요. 그것을 붙여넣기 하면 됩니다. 만일 오랜 시간이 흘러 붙여넣기가 안되면 서비스계정 조회화면으로 다시 이동해서 이메일 주소를 복사한 후 붙여넣기 하면 됩니다.

그리고 아래쪽에 역할지정도 해야 하는데요. 저는 ‘Cloud Storage’의 ‘저장소 관리자’를 선택하였습니다. 모든 작업을 하였으면 화면 하단에 있는 ‘저장’ 버튼을 클릭하세요.

그러면 이전 화면으로 돌아가면서 클라우드 버킷에 여러분들의 서비스계정이 등록된 목록을 볼 수 있을거에요.

5. VM 인스턴스 SSH에서 클라우드 버킷 접속

위에서 수행한 단계들이 모두 제대로 되었다면 SSH를 통해 클라우드 버킷을 접속할 수 있어야 해요. 이를 위해서는 클라우드 스토리지를 접속하기 위한 파이썬 어플리케이션 gsutil이 사용됩니다.

SSH에서 클라우드 스토리지에 저장된 파일 목록을 보고 싶다면 다음과 같이 입력해 보세요.

gsutil ls gs://BUCKET_NAME/OBJECT_NAME

예를 들어 위에서 여러분들이 만든 클라우드 스토리지 버킷 이름이 ‘storage’인 경우 SSH 터미널에 아래와 같이 입력하면 됩니다.

gsutil ls gs://storage

그러면 storage 버킷 내에 있는 파일들의 목록을 SSH에서 볼 수 있을거에요.

만일 VM 인스턴스에 있는 practice.py라는 파일을 클라우드 스토리지 버킷으로 전송하고 싶다면 다음과 같이 하면 됩니다.

gsutil cp practice.py gs://storage

모두 잘 동작하나요? 그러면 클라우드 스토리지 버킷에 대해 SSH로 읽기와 쓰기가 모두 가능하다는 뜻입니다. 고생많았어요.

흥미롭고 도움이 되는 글이었나요? 리뷰를 부탁드립니다.
[Total: 1 Average: 5]

Leave a Comment