본문 바로가기
분석환경구축하기/GCP

[GCP] #02 GCP Compute Engine VM 인스턴스 초기 세팅하기

by DoBeFree 2020. 4. 30.
반응형

<시리즈 목차> 

1화 : [GCP] #01 GCP Compute Engine VM 으로 분석서버 구축하기
2화 : [GCP] #02 GCP Compute Engine VM 인스턴스 초기 세팅하기
3화 : [GCP] #03 GCP Compute Engine VM에 파이썬(Python) 분석환경 구성하기
4화 : [GCP] #04 GCP Compute Engine VM에 R 분석환경 구성하기
5화 : [GCP] #05 분석을 위한 Google CloudSQL SQLServer 구축&GCE 파이썬 분석서버와 연결하기
6화 : [GCP] #06 Google Bigquery GCE 파이썬서버에서 활용하기
7화 : [GCP] #07 GCP Compute Engine VM에 아파치 에어플로우(Airflow) 설치하여 ETL 환경 구축하기
8화 : [GCP] #08 GCP Compute Engine VM에 제플린(zepplien), 스파크(Spark), 스칼라(Scala) 설치하기
9화 : [GCP] #09 Google Cloud Storage 저장소를 GCE 파이썬 서버에서 활용하기



이번 글은 GCP Compute Enigne VM 인스턴스를 만들고 진행해야할 초기 세팅에 대해서 다룬다.

GCP 인스턴스를 만드는 법은 이전글인 [GCP] #01 GCP Compute Engine VM 으로 분석서버 구축하기에서 참고할 수 있다

들어가기 앞서

우리가 저번 장에서 만든 Compute Engine Vm 은 마우스로 조작하는 일반적인 환경과는 달리 아래와 같이 검정화면에 명령어(커맨드,Command) 를 통해 컴퓨터를 조작하는 환경을 갖고 있습니다. 이러한 검정 화면을 쉘(Shell)이라 하고 입력하는 코드는 $ 로 구분할 예정이다.

이러한 쉘에 들어가기 위해 VM 인스턴스 페이지에서 연결탭에 SSH 버튼을 눌러준다.

SSH 버튼을 누르면 아래와 같은 쉘 화면이 새창으로 팝업되고 이후 VM인스턴스의 제어는 이 쉘에서 진행할 예정이다.

 

1. 우분투 sudo 패스워드 설정하기

우리가 생성한 VM 인스턴스는 자동으로 sudo 명령어에 대해서 비밀번호를 요구하지 않도록 설정되어 있다. 다만, su 명령어처럼 sudo 비밀번호가 필요할때를 대비하여 sudo 비밀번호를 재생성 해줘야 한다.

$ sudo passwd

설정한 패스워드를 테스트하여 정상적으로 잘 설정되었는지 확인한다.

# sudo 명령어가 잘 작동하는지 확인
sudo echo "hello world!"

# root 계정 전환시 설정한 sudo 패스워드가 잘 작동하는지 확인
su

2. JDK11 세팅하기 (or JDK8)

파이썬이나, 스파크 등 대부분의 분석환경에서는 JDK(Java Development Kit)설치가 필요합니다. 하지만 우리가 만든 VM 인스턴스에는 JDK가 기본적으로 세팅돼 있지 않기 때문에 JDK를 우선 설치해야 한다.

대부분의 분석환경에는 JDK 8 or 11 이 필요하기 때문에 안정적인 분석환경을 위해 최신버전인 Java11 버전으로 설치를 추천한다.

STEP01 : JDK11 설치 여부 확인하기

아래 bash 명령어를 통해 java 설치여부를 확인하여 JAVA 설치 여부와 버전을 확인한다.

$ java -version

$ java -version

bash 명령어 실행후 #1-1과 같은 메시지가 출력된다면 java 설치가 필요한경우 이다. 하지만 만일 #1-2와 같은 출력결과가 나올 경우 jdk11 이 설치된 경우이니 추가 설치 대신 세팅확인으로 넘어가면 된다.

  • #1-1 : JDK11이 설치되지 않은 경우
#1-1 출력결과

Command 'java' not found, but can be installed with:
apt install openjdk-11-jre-headless  # version 11.0.13+8-0ubuntu1~20.04, or
apt install default-jre              # version 2:1.11-72
apt install openjdk-16-jre-headless  # version 16.0.1+9-1~20.04
apt install openjdk-17-jre-headless  # version 17.0.1+12-1~20.04
apt install openjdk-8-jre-headless   # version 8u312-b07-0ubuntu1~20.04
apt install openjdk-13-jre-headless  # version 13.0.7+5-0ubuntu1~20.04
Ask your administrator to install one of them.
  • #1-2 : JDK11이 설치돼있는 경우
#1-2 출력결과

openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

STEP02 : JDK11 설치하기 

아래 명령어를 입력하여 JDK11을 설치한다.

$ sudo apt-get update
$ sudo apt-get install openjdk-11-jdk

STEP03. JDK11 $PATH 환경변수 등록(bash_profile 생성을 통한 환경변수 세팅하기)

 

$ echo $JAVA_HOME

#위 bash 명령어 입력 시 아무 결과도 나오지 않으면 $PATH에 $JAVA_HOME이 지정되지 않은 것입니다. 
#따라서 $JAVA_HOME을 설정하고 $PATH에 JAVA경로를 추가하도록 합시다.

JDK11 을 설치완료 했다면 어디에 JDK가 설치됐는지 알려줘야 한다. 이러한 과정을 환경변수를 등록한다고 하는데, 설치된 JDK 역시 환경변수에 등록해야 한다. Ubuntu 20.04LTS은 환경변수에 대한 설정을 ~/.bashrc 를 통해서 진행하지만 기존 디폴트 설정들은 수정하지 않고 사용자가 수정한 사항만 별도로 저장하고 관리하기위해  ~/.bash_profile 파일을 만들어 환경변수를 설정하자.

$ vi ~/.bash_profile

# 위 명령어를 실행하면 메모장 처럼 vi 에디터 화면에 접근 가능합니다.
# ------------------------------| vi 에디터 화면 |------------------------------

# 내용을 추가하는 방법은 esc키 -> a 키를 누른후 
# 하단에 표시된 문구가 INSERT MODE로 바뀌었을 때 수정하면된다.

#----------------------이 아래를 입력합니다.------------------------
# 인스턴스를 킬 때 마다 아래 bash_profile을 실행하는 명령어
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# JAVA_HOME 추가하기
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

# 이 후 esc키 -> 콜론(:) -> wq 입력 후 엔터를 눌러 vi 를 저장 후 빠저 나온다.

vi 에디터를 통해 .bash_profile 설정을 수정했으면 수동으로 수정사항을 업데이트 해야한다. 업데이트는 아래 bash 명령어를 통해 업데이트 할 수 있다.

$ source ~/.bash_profile

설치와 적용이 완료되었다면 아래 명령어를 통해 JDK11에 환경변수 세팅이 완료되었는지 확인 할 수 있다.

$ echo $JAVA_HOME
$ echo $PATH

<결과>

 

<참고> java8 설치하기

GCP VM인스턴스에 java8을 설치하기 위해서는 수동으로 저장소를 등록해 준 후 설치해야 성공적으로 설치할 수 있다.

# 수동으로 java 저장소를 등록.
$ sudo add-apt-repository ppa:webupd8team/java

# 지정한 저장소를 통해서 java8을 설치
# 저장소를 수동으로 지정하지 않을경우 오류가 나곤 합니다.
$ sudo apt install openjdk-8-jdk

# 에러 내용 
#E: Unable to locate package openjdk-8-jdk

만일 jdk8을 다운받을 저장소를 지정하지 않고 java8을 설치할 경우 아래와 같은 에러가 뜰 수 있다.
에러 내용 --> E: Unable to locate package openjdk-8-jdk
만약 위 에러 없이 설치가 된다면 저장소를 수동으로 지정하지 않고 설치를 진행해도 된다.

만약 설치가 성공적으로 됐을 경우 아래와 같은 결과가 나온다.

$ java -version

# 실행 결과
openjdk version "1.8.0_222" 
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

마찬가지로 ~/.bash_profile를 통해서 JDK8에 대한 환경변수를 세팅한다.

$ vi ~/.bash_profile

# 위 명령어를 실행하면 메모장 처럼 vi 에디터 화면에 접근 가능합니다.
# ------------------------------| vi 에디터 화면 |------------------------------

# 내용을 추가하는 방법은 esc키 -> a 키를 누른후 
# 하단에 표시된 문구가 INSERT MODE로 바뀌었을 때 수정하면된다.

#----------------------이 아래를 입력합니다.------------------------
# 인스턴스를 킬 때 마다 아래 bash_profile을 실행하는 명령어
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# JAVA_HOME 추가하기
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

# 이 후 esc키 -> 콜론(:) -> wq 입력 후 엔터를 눌러 vi 를 저장 후 빠저 나온다.

 

마찬가지로 작성한 세팅을 아래 명령어를 통해 적용해 준다.

$ source ~/.bash_profile

 

이제 VM인스턴스에 가장 기본적인 부분들을 세팅했으니, 다음 부터는 Anaconda Python 설치, CloudSQL을 통한 분석 DB구축 등 실제 데이터 분석에 필요한 환경들을 VM에 구성해볼 예정이다.

반응형

댓글