oracle 클라우드 인스턴스 생성 & python 개발 환경 구축

털난 개발자·2022년 2월 7일
1

첫 글로 오라클 클라우드에 인스턴스를 생성하고 python 개발 환경을 구축하는 방법을 소개하고 자합니다.

먼저 AWS 프리티어를 사용하지 않고, 오라클 클라우드를 사용해서 인스턴스를 만드는 이유는, 오라클 클라우드가 평생 무료이기 때문입니다. ^^
하지만... 어느새 소비자를 농락하며 유료로 바꿀 가능성이 크죠

간단한 프로젝트 시에 추전드립니다.

일단 oracle 클라우드에 회원 가입을 위해 아래 링크에서 회원가입을 진행해주세요.
https://signup.cloud.oracle.com/?sourceType=_ref_coc-asset-opcSignIn&language=en_KR

VM 인스턴스 생성

1. VM 인스턴스 생성 클릭

2. 이름 변경

3. 이미지 및 구성 편집

자신이 원하는 os에 맞는 이미지와 cpu, 메모리 용량을 변경하기고 싶다면 오른쪽 상단에 "편집"을 클릭해주세요.

클릭하면 아래와 같은 화면이 나오는데 "이미지 변경"을 클릭해 os를 변경해주세요

3-1. 이미지 선택

centos, unbuntu과 같은 일반적인 os를 설치하기 위해서는 "이미지 소스"에서 "플랫폼 이미지"를 선택하고, 원하는 이미지를 선택해주세요. 저는 ubuntu 20.04 버전으로 진행하겠습니다. 옵션을 통해 버전과 변경할 수도 있습니다.

이미지선택을 클릭해 설정을 저장해주세요

3-2. 인스턴스 사양 변경

shape의 기본 사양은 VM.Standard.E2.1.Micro이며 항상 무료라고 태그가 달려있습니다. 변경하시려면 change Shape를 눌러 변경하세요

항상 무료 태그가 달려 있는 옵션은 VM.Standard.E2.1.Micro가 유일해서.... 변경하지 않고 진행하겠습니다.

4. SSH 접속을 위한 설정

AWS를 비롯한 대부분의 클라우드 인스턴스 생성시 키를 등록하여 SSH에 접속할 수 있습니다. 해당 부분을 건너 뛰고 진행한다면, 추후 SSH 접속이 어려울 수 있습니다.

디폴트로 설정되어 있는 "자동으로 키 쌍 생성" 방식으로 진행해보도록 하겠습니다.

오라클에서 자동으로 공용키와 개인키(전용키)를 생성해줍니다. "전용키 저장"을 클릭해 반드시 다운받아 주세요. "공용 키 저장"을 클릭해 공용키도 저장합니다.

다운 받은 키를 기억할 수 있는 장소에 보관해주세요!


※ "공용 키 붙여넣기" 방식으로 진행할경우, putty gen과 같은 키 생성 프로그램으로 공용키와 개인키를 만들고 공용키 아래에 넣어주시면 됩니다.
해당 방식으로 하면 비밀번호를 생성할 수 있어 보다 보안이 강화됩니다.

5. 용량 설정

부트 볼륨 크기(용량)을 지정하고 싶은 경우에는 변경하고 해당 옵션을 선택하시고, 원하는 용량을 입력해주세요

6. 인스턴스 생성 완료

"생성"을 클릭해 인스턴스를 생성합니다.


인스턴스 생성 확인

"프로비전 중"이라는 글씨와 노란색 네모가 표시됩니다. 인스턴스 생성 중입니다. 몇 분 이내에 생성이 완료됩니다. 잠시 기다려주세요

인스턴스 생성 완료

"실행 중"이라는 문구가 보이면 생성이 완료되었습니다.

공용 IP 주소 (public ip)가 인스턴스 별로 주어지며, 이 IP로 ssh 접속을 할 수 있습니다.
다른 설정을 통해 IP주소를 변경할 수도 있습니다.
"복사"를 클릭합니다.

SSH 접속

SSH Tool 선택

ssh의 접속을 도와주는 다양한 tool이 있습니다. 대표적으로 putty, xshell, mobaxterm이 있는데, 저는 mobaxterm을 선호합니다.
putty는 너무 못생겼구요.
xshell은 낫베드~
mobaxterm의 장점은 윈도우의 탐색기처럼 파일들을 볼수 있는 장점이 있습니다.

언급한 3개의 툴 이외에도 다양한 툴이 있으니 본인이 선호하는 프로그램을 선택하시면 됩니다. 저는 mobaxterm을 예로 설명하겠습니다.

Session 생성

"Session"을 클릭합니다

SSH 설정

  1. "SSH"를 클릭합니다.
  2. 오라클 인스턴스의 공용 IP를 "Remote host"에 입력해주세요
  3. SSH의 기본 포트 22번임으로 현재는 변경할 것이 없습니다.
  4. "Advanced SSH settings"를 클릭합니다. 개인키를 사용해서 접속하기 위합입니다.
  5. "Use private key"에 체크 하고 오른쪽에 파일 모양의 버튼을 클릭합니다.
  6. 인스턴스 생성시에 다운로드 받은 "ssh-key-2022-02-07.key"와 같은 private키를 선택합니다.
  7. "OK"를 선택해 설정 완료 후, 접속 시도!

인스턴스 로그인

이런 화면이 뜬 다면, 거의 성공입니다! ubuntu이미지로 인스턴스 생성시 기본 ID는 "ubuntu"입니다. ubuntu를 입력해주세요

접속 완료

로그인 오류가 뜨지 않으면 접속 성공입니다.

만약, "공용 키 붙여넣기" 방식으로 putty gen에서 키 생성후, 비밀번호를 추가로 설정했다면, ID 입력후 비밀번호를 입력해주세요

pyton 개발 환경 구축

파이썬 설치 확인

ubuntu에 파이썬이 설치되어 있는지 확인하기 위해 python 명령어를 입력해 주세요

ubuntu@instance-20220207-2145:~$ python

Command 'python' not found, did you mean:

  command 'python3' from deb python3
  command 'python' from deb python-is-python3

이렇게 명령어가 뜨면 python3를 입력해 한번더 확인해 주세요

ubuntu@instance-20220207-2145:~$ python3
Python 3.8.10 (default, Sep 28 2021, 16:10:42)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit() # 파이썬 종료

위와 같이 버젼과 파이썬 스크립트가 나오면 파이썬이 제대로 설치되어 있습니다. 만약에 파이썬 설치가 되어 있지 않다면, 구글 검색을 통해 파이썬을 설치해주세요

가상환경 설치

vscode, 파이참, anaconda 등의 IDE에서 파이썬의 라이브러리의 버젼관리 및 의존성 관리를 위해 가상 환경을 구성합니다.

  1. 우선 sudo apt update -y명령어로 우분투 패키지를 업데이트하세요

  2. sudo apt install -y python3-venv으로 파이썬 가상환경 구성해주는 패키지를 설치해주세요

ubuntu@instance-20220207-2145:~$ sudo apt install -y  python3-venv
Reading package lists... Done
Building dependency tree
Reading state information... Done
<생략>
  1. 2개의 디렉토리를 생성합니다. 하나는 가상환경 설정 정보를 저장하는 디렉토리이고, 나머지 하나는 소스코드를 저장하기 위한 디렉토리입니다. 각각의 이름은 "venv","project"로 하겠습니다.
ubuntu@instance-20220207-2145:~$ pwd
/home/ubuntu
ubuntu@instance-20220207-2145:~$ mkdir venv project
ubuntu@instance-20220207-2145:~$ ls
project  venv

  1. venv로 이동해 원하는 이름의 가상환경을 생성합니다. python3 -m venv myvenv은 가상환경 생성 명령어입니다.
ubuntu@instance-20220207-2145:~$ cd venv/
ubuntu@instance-20220207-2145:~/venv$ pwd
/home/ubuntu/venv
ubuntu@instance-20220207-2145:~/venv$ python3 -m venv myvenv
ubuntu@instance-20220207-2145:~/venv$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb  7 14:07 ./
drwxr-xr-x 6 ubuntu ubuntu 4096 Feb  7 14:04 ../
drwxrwxr-x 6 ubuntu ubuntu 4096 Feb  7 14:07 myvenv/

  1. 가상환경 활성화, 생성한 가상환경 폴더 -> bin 디렉토리에서 . activate 명령어를 입력해 가상환경을 실행합니다. 가상환경이 실행되면 (myvenv)가 가장 앞에 표시됩니다.
ubuntu@instance-20220207-2145:~/venv$ cd myvenv/
ubuntu@instance-20220207-2145:~/venv/myvenv$ ll
total 28
drwxrwxr-x 6 ubuntu ubuntu 4096 Feb  7 14:07 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb  7 14:07 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb  7 14:07 bin/
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb  7 14:07 include/
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb  7 14:07 lib/
lrwxrwxrwx 1 ubuntu ubuntu    3 Feb  7 14:07 lib64 -> lib/
-rw-rw-r-- 1 ubuntu ubuntu   70 Feb  7 14:07 pyvenv.cfg
drwxrwxr-x 3 ubuntu ubuntu 4096 Feb  7 14:07 share/
ubuntu@instance-20220207-2145:~/venv/myvenv$ cd bin/
ubuntu@instance-20220207-2145:~/venv/myvenv/bin$ ls
Activate.ps1  activate.csh   easy_install      pip   pip3.8  python3
activate      activate.fish  easy_install-3.8  pip3  python
ubuntu@instance-20220207-2145:~/venv/myvenv/bin$ . activate
(myvenv) ubuntu@instance-20220207-2145:~/venv/myvenv/bin$

  1. wheel 패키지 설치
(myvenv) ubuntu@instance-20220207-2145:~/venv/myvenv/bin$ pip install wheel
Collecting wheel
  Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Installing collected packages: wheel
Successfully installed wheel-0.37.1

소스코드 생성 및 실행

  1. "project" 폴더로 이동해 우분투에서 실행시킬 파이썬 파일을 테스트 용도로 설정합니다.
vi main.py
# main.py
import time
while True:
    print(time.time())
    time.sleep(10)

  1. 테스트 파일 실행하면 아래와 같이 시간이 출력됩니다.
(myvenv) ubuntu@instance-20220207-2145:~/project$ python3 main.py
1644243496.2141902
1644243506.2243013

2-1. 백그라운드에서 파이썬 파일 실행하는 방법
nohup명령어를 사용하게 되면 백그라운드에서 파이썬을 실행할 수 있으며, 로그도 함께 저장할 수 있다. 로그는 'nohup.out'에 저장된다.

(myvenv) ubuntu@instance-20220207-2145:~/project$ nohup  python3 main.py &
[1] 14046
(myvenv) ubuntu@instance-20220207-2145:~/project$ nohup: ignoring input and appending output to 'nohup.out'

2-2. 로그 확인

1644243790.5407374
1644243800.550863

마치며...

오라클 클라우드에서 인스턴스를 생성하고 파이썬 개발 환경을 구축하는 방법을 알아봤습니다.
이 방법을 응용하여 api, django 등의 서비스를 배포할 수 있습니다.
블로그 첫 글이라 처음에는 정성들여 썼지만...뒤로 갈수록 점점 대충적은 느낌이네요....ㅎㅎ
다음 포스트에서는 더 좋은 내용으로 찾아뵙겠습니다.
감사합니다.

1개의 댓글

comment-user-thumbnail
2023년 5월 17일

감사합니다. 잘봤습니다. 덕분에 잘 사용하게 되었습니다!

답글 달기