어제는 AWS를 세팅하는 방법을 배웠다면, 오늘은 GCP를 세팅하는 방법을 작성하려 한다.
AWS 세팅에 대해서는 이전 포스팅을 확인하자!
[클라우드] - [AWS] 아나콘다 주피터 가상 환경 설정하기
[클라우드] - [AWS] SSH config 설정하기
GCP를 사용하는 이유는 3개월동안 일정 금액을 무료로 지원해주기 때문이다!
AWS는 과금 폭탄을 맞는 경우들도 많다고 들었다.
GCP를 사용하면 AWS보다는 저렴한 비용으로 사용가능하기 때문에 연습용으로 좋다.
오늘 시작은 구글 클라우드 첫화면이 켜져있는 상태라고 가정하고 시작한다.
새 프로젝트 시작
먼저 홈화면에서 프로젝트 시작을 눌러준다.
조직은 없어도 무방하고, 프로젝트 이름을 원하는 이름으로 변경해준다.
이름이 너무 성의없으면 프로젝트 생성이 안될 수도 있다.
인스턴스 생성하기
새 프로젝트를 생성했다면 아래와 같이 구글 클라우드 라고 적힌 부분에 프로젝트 명이 설정될 것이다.
여기서 검색창을 눌러서 Compute Engine을 눌러줘도 되고, 메뉴바에서 찾아 눌러줘도 된다.
아래의 창이 뜬다면 인스턴스 만들기를 누르자
인스턴스를 생성하기 위해 어떤걸 사용할지를 골라야한다.
설명에 적힌 것을 잘 읽어보고 본인이 고성능의 대용량 메모리가 필요하면 C3D를 고르는 등 선택해주자
그리고 머신 유형에서 메모리 설정까지 해주면 옆에 월별 예상 가격이 뜰 것이다.
같은 시리즈를 선택하더라도, 메모리 크기를 다르게 설정하면 가격이 다르다.
그리고 아래에 내려서 부팅 디스크를 설정해줘야한다.
내려보면 기본 세팅은 다음과 같이 되어 있을 것이다.
나는 우분투를 기반으로 진행할 예정이다.
운영체제를 우분투로 변경한 후, 나머지는 기본 세팅값을 그대로 둔 상태로 생성했다.
마지막으로 방화벽을 아래와 같이 설정해주고 만들기를 눌러준다.
인스턴스가 생성된 것을 볼 수 있다!
방화벽 확인하기
위의 창에서 방화벽 규칙 설정 / 메뉴바의 방화벽 / 네트워크 세부정보 보기 중에 아무거나 눌러서 들어가주자
현재 방화벽 상태를 보면 VPC 설정이 된 것을 볼 수 잇다.
방화벽 규칙 만들기
방화벽을 확인했으면, 규칙을 만들어야 한다.
방화벽 규칙을 아래와 같이 세팅하는데, 소스 IPv4 범위를 아래와 같이 설정하는 이유는 모든 IP를 허용하기 위함이다.
생성되었다면 아래와 같이 내가 설정한 이름으로 해서 방화벽 규칙이 생성된 것을 볼 수 있다!
SSH 연결하기
다시 VM 인스턴스 창으로 돌아와서 SSH 옆의 화살표를 눌러 브라우저 창에서 열기를 눌러준다.
다음 명령어를 통해 경로를 이동하고 확인해주자
ls
pwd
cd ../../opt
pwd
미니콘다 설치하기
미니콘다를 설치하기 위해 아래 사이트의 코드를 그대로 사용할 생각이다.
https://docs.conda.io/projects/miniconda/en/latest/
이 부분의 코드를 모두 복사해오자
귀찮은 사람들은 아래 코드블록에서 복사해서 하자
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
위의 코드가 모두 실행되었다면, 아래의 코드를 실행해주자
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh
그리고 재실행해주면 다음과 같이 창이 뜨면 다운이 성공적으로 된거다!
JAVA 세팅하기
위의 경로에서 아래의 코드를 복사해서 자바를 설치하자
# 미니콘다 확인용
ls
cd ../../opt/
sudo apt update
sudo apt install openjdk-8-jdk -y
자바 설치가 완료 되었다면, 확인하고 vi 커맨드로 설정해야한다.
history
vi ~/.bashrc
파일에 들어왔다면, 맨 아래로 내려가서 i를 눌러 insert가 되도록 하고 아래의 코드를 복사해서 붙여넣어주자
복붙이 끝났다면 esc 키를 누르고 :wq! 를 작성해주자
# JAVA ENV SET
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH
esc 키를 누르지 않고 작성하면 아래와 같이 insert가 계속 떠있는 상태니까 확인하자!
끝나면 꼭 잊지 말아야 하는 부분! 마무리를 해주자
source ~/.bashrc
스칼라 세팅하기
아래 코드를 복사해서 스칼라를 설치해주자
sudo apt-get install scala -y
스칼라를 설치했으면 java 설치했을 때와 똑같이 vi를 통해 파일을 편집해준다.
# SCALA ENV SET
export SCALA_HOME=/usr/bin/scala
export PATH=$SCALA_HOME/bin:$PATH
편집을 완료했으면 꼭!!! 아래 코드를 쳐서 마무리까지 해주자
source ~/.bashrc
스파크 세팅하기
아래 경로를 주의하면서 하나씩 코드를 입력해주자
스파크 버전은 러닝스파크 교재 버전과 동일하게 맞추기 위해 세팅한거라 달라도 된다.
(base) /opt$ sudo wget https://archive.apache.org/dist/spark/spark-3.1.1/spark-3.1.1-bin-hadoop2.7.tgz
(base) /opt$ sudo tar xvf spark-3.1.1-bin-hadoop2.7.tgz
(base) /opt$ sudo mkdir spark
(base) /opt$ sudo mv spark-3.1.1-bin-hadoop2.7/* /opt/spark/
(base) /opt$ cd spark
(base) /opt/spark$ ls
스파크 설치가 완료됐으면, 환경변수를 설정해주자
환경변수를 설정하기 전에 home으로 이동해서 ls를 통해 사용자 이름을 알아와야한다.
사용자 이름을 알았다는 가정하에 위에서와 동일하게 vi 편집기를 사용해 환경변수를 지정해주면 된다.
# SPARK ENV SET
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PYSPARK_PYTHON=/home/내 사용자 id/miniconda3/bin/python
마무리로 source 해주는것 꼭 잊지 말자!
pyspark 설치하기
다음으로 pyspark를 설치해주는데, 이 때 주의해야할 부분은 spark와 동일한 버전을 설치해주는 것이 안전하다.
pip install pyspark==3.1.1
주피터 노트북 설치하기
conda install jupyter notebook
주피터 노트북 설정하기
설정을 위해서는 먼저 config 파일을 생성해야한다.
jupyter notebook --generate-config
config 파일 생성 후, vi 편집기에서 주석처리된 부분을 수정해야한다.
vi 편집기에서 해당 부분을 찾기 위해서 / 를 누르고 검색어를 입력하면 뜨는데 그 상태로 엔터를 누르면 커서가 이동된다.
편집하려면 vi 편집기 기본 사용법대로 i를 누르면 가능하다.
vi ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.allow_root = True --> 원래는 주석처리에 False로 되어있음 대소문자 확인하기
c.NotebookApp.ip = '0.0.0.0' --> 이것 역시 주석처리에 모든 아이피 허용이 되어있지 않음
주피터 노트북 실행하기
설정이 완료됐다면, 주피터 노트북을 열어주자!
jupyter notebook
그러면 http 링크로 ?token=~~~이 있을텐데 ~로 표현한 부분들이 필요하다.
인스턴스 외부 ip를 복사해서 url 창에 붙여넣고, :8888 을 추가로 붙여서 주피터 화면으로 넘어가보자
그러면 토큰값을 입력하라고 뜨는데 ~ 부분을 복사해서 붙여주고, 다시 로그인할 때는 쉽게하기 위해 비번을 지정한다.
비밀번호는 그냥 숫자 4자리로도 가능하다.
pyspark 확인하기
주피터 노트북으로 python 파일을 만들어 pyspark 라이브러리를 확인해주자
import pyspark
pyspark.__version__
from pyspark.sql import Row
from pyspark.sql.types import *
from pyspark.sql import SparkSession
spark = (SparkSession.builder.appName("Authors").getOrCreate())
spark
끝으로 항상 인스턴스를 사용하지 않을 때는 중지를 꼭 해야한다!
정지를 하면 비용 청구가 계속 되기 때문에 꼭 중지를 해두자!!!
'클라우드' 카테고리의 다른 글
[GCP] 빅쿼리와 연동해서 스트림릿 페이지로 확인하기 (0) | 2023.10.18 |
---|---|
[GCP] 구글 클라우드와 Github 계정 연동하기 (0) | 2023.10.17 |
[AWS] SSH config 설정하기 (0) | 2023.10.16 |
[AWS] 아나콘다 주피터 가상 환경 설정하기 (0) | 2023.10.16 |
[AWS] 클라우드 기본 세팅하기 (0) | 2023.10.16 |