라즈베리파이로 Google Cloud Platform(GCP)에 파일 업로드하기(1)

네투·2021년 6월 7일
0

라즈베리 안에 들어있는 파일을 업로드할 일이 생겼는데, 마침 Google Cloud Platform의 API 중 하나가 필요해서 클라우드 서비스를 활용해보려고 합니다.

주로 사용되는 방법은 아닌 것 같지만, 저는 GCP를 이용하여 Google Cloud Storage(bucket)에 업로드하고, 이를 서버인 E2에서 읽어오고 변환하여 사용하는 과정에 대한 포스트를 적어보려고 합니다.

GCP를 이미 사용하고 있는 상태에서 파일 업로드에 대한 부분만 다루기 때문에, 이미 자신의 구글 계정에 활성화된 GCP 프로젝트가 있어야 진행이 가능하다는 점 알아주시기 바랍니다.

제일 먼저 파이썬이 없으면 진행할 수가 없는데요, 최신의 Raspbian에서는 기본적으로 Python3.7을 제공해준다고 하는데, 저같은 경우엔 3.7로 하였을 때 openssl 라이브러리에 오류가 있는건지 pip이나 google-cloud-sdk 설치가 제대로 되지 않는 현상이 있어서 3.6을 메뉴얼로 따로 설치하여 환경변수 등을 바꿔서 진행하였습니다.

1. 파이썬 3.6 설치하기

Python 3.6 설치방법

참고 사이트
Raspbian에서 메뉴얼로 특정 버전의 파이썬을 다운받고, 설치하기 위해 빌드가 필요한데요, 우선 필수 build-tools를 먼저 설치해줍니다.

$ sudo apt-get update
$ sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev

패키지 중에 사용할 수 없는 패키지가 있다는 경고문이 나오면
위 명령어에서 libdb5.3-dev을 libdb5.4-dev으로 바꿔서 시도해보시기 바랍니다.

다음으로 Python3.6버전을 wget을 사용하여 다운로드받고, 압축 해제 및 빌드를 하는 과정입니다.

$ wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
$ tar xf Python-3.6.5.tar.xz
$ cd Python-3.6.5
$ ./configure
$ make
$ sudo make altinstall

빌드가 완료되었으면 빌드에 쓰였던 소스코드와 사용하였던 라이브러리가 필요없어지기 때문에 이하 명령어를 입력해 삭제해줍니다.
선택 사항이라 나중에 또 쓰일 것 같으면 그대로 남겨놔도 별 문제는 없습니다.

$ sudo rm -r Python-3.6.5
$ rm Python-3.6.5.tar.xz
$ sudo apt-get --purge remove build-essential tk-dev
$ sudo apt-get --purge remove libncurses5-dev libncursesw5-dev libreadline6-dev
$ sudo apt-get --purge remove libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev
$ sudo apt-get --purge remove libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev
$ sudo apt-get autoremove
$ sudo apt-get clean

기존에 파이썬 3.6 이외의 버전이 설치되어 있다면, python3이나 패키지 인스톨러인 pip 명령어 등을 사용하였을 때 다른 버전의 파이썬이 로드될 수 있기 때문에 환경 변수를 바꾸고, python3에 해당하는 심볼릭 링크를 변경해줍니다.

$which python3
$which python3.6

해당 두 명령어를 입력하여 출력되는 python3과 python3.6 경로를 사용하여 심볼릭 링크 경로를 바꿔줍니다.

$sudo ln -Tfs /usr/local/bin/python3.6 /usr/bin/python3

그리고 환경변수를 바꿔줄건데요, 여러가지 방법이 있지만 저는 /etc/bash.bashrc를 수정하여 바꿔줬습니다.

$sudo nano /etc/bash.bashrc

위 명령어를 입력하여 /etc/bash.bashrc를 편집 모드로 열고,

export CLOUDSDK_PYTHON=/usr/local/bin/python3.6
export PATH=/usr/local/bin/python3.6:$PATH
alias pip=pip3.6

해당 환경 변수를 추가해줍니다.
pip같은 경우엔 다른 프로그램에서 참조할 일이 있거나, 제가 쓰기 편하려고 alias를 지정해 주었습니다.

2. Google Cloud SDK 설치하기

서론이 길었는데요, 본격적으로 GCP의 기능을 이용하기 위해서는 Raspbian에 Google Cloud SDK를 설치하여야 합니다.

$sudo apt-get install google-cloud-sdk

Python3.6 또는 다른 버전을 이용하여 아무런 이상 없이 설치가 되면,

gcloud init

위 명령어를 입력하여 초기 설정을 진행해 줍니다.

중간에 이런 식으로 매우 긴 링크가 나오는데, 클릭하여 이동해서 GCP가 활성화돼있는 구글 계정으로 로그인을 하고 계정에 대한 권한을 허용하고 나면, 아래 문구가 출력됩니다.


위에서 로그인하였던 계정의 정보가 출력되면서, 해당 계정에서 다루고 있는 프로젝트의 목록이 출력됩니다. 숫자를 입력하여 어떤 프로젝트를 사용할 건지 결정해줍니다.
이렇게 구글 클라우드 기본 설정이 완료되었으며, 다음 포스트에서는 Python과 google cloud sdk를 사용한 업로드 과정을 다뤄보겠습니다.

profile
초보 소프트웨어 개발자

0개의 댓글