오라클 클라우드 인프라스트럭쳐(Oracle Cloud Infrastructure) 세팅하기
0. 서론
정말 간만의 포스팅이긴 한데... 요 근래 AWS가 정책이 매우 괴랄하게 변했다..
25년 7월 15일에 엄청난 개악(?)을 단행했는데...
- 기간 반토막: 12개월 월 750시간 프리티어를 주던 정책을 6개월로 줄임
- 대신 용돈 줌: 새로 가입하면 $200 크레딧(현금 포인트)을 주고 "이걸로 6개월 동안 마음껏 써봐!"라는 식으로 바뀜
- 거기다가 요새는 가장 기본 프리티어인 t2.micro 조차도 용량을 수정하기 매우 어렵게 완전히 꽁꽁 숨겨놨다.
덕분에 나름 꼼꼼히 보면서 다시 만들었어도, 기본 8gb 용량이라 제대로 아나콘다 하나 설치를 못한다...
그래서 인스턴스 뿌시고, 다시 만들어봤더니... 이야 한달만에 크레딧 다 쓰고 유료 전환하라고 메일이 와서... 이번에 그냥 다른 대안을 찾아보다가 오라클 클라우드(OCI)를 선택했다.
OCI는 하드 총량도 200Gb나 주고, 기본 성능도 t2.micro보다는 좋다고하고, 무엇보다 "평생 무료"이다.
거기에 더불어서 꽤나 좋은 '암페어' 모델도 평생 무료다(그래서 이건 진짜 매번 생성불가에다가, 이미 다른 '매크로'들이 호시탐탐 노리고 있다)
일년마다 프리티어를 새로 만드는 짓거리를 하지 않아도 되는 셈...
그러나 사람이란게 한번 익숙해지면, 새로운 것을 받아들이는덴 참 시간이 걸리고 어려운지라, 오늘 복습도 할겸 한번 끄적거려본다.
1. 회원가입하기
일단 회원가입은 기본적인 거니까 쭉쭉 진행을 하면 되는데... 여기서 제일 중요한게 회원가입단계에서 바로 '리전'을 선택하게 되어있다.
그리고 aws랑 다르게 oci는 한번 리전을 설정하면 유료로 돌리기 전에는 바꿀 수 없다.
그래서 '서울'이나 '춘천'을 노리게 되는데... 서울은 진짜 너무 빡세서 리스트에조차 없다. '춘천'도 빡빡하긴 마찬가지...
만약 서울/춘천 둘 다 안되면 적어도 Japan East (Tokyo)나 Japan West (Osaka)라도 노리자..
이렇게 회원가입을 하고 나면, 의외로 회원가입에 시간이 꽤나 걸린다. 최장 24시간까지 걸린다는 흉흉한 소문도 들어봤고...
내 경우엔 한 10분? 로딩 화면에 있다가 15분 정도 시간 더 걸릴거라는 페이지로 넘어가며 '메일'을 보냈다고 알람이 왔다.
실제로 메일을 받았으면 내 계정은 잘 만들어 진 셈.
그리고 여기는 따로 mfa를 설정하는게 아니라 아예 가입하면서 mfa를 설정할 수 밖에 없게 만들어 놓는다.
그리고.. 여기 프리티어지만, 진짜 무서운게 aws보다 더 빡빡하게 신용카드 결제 가능 여부를 관리한다는 점이다.. 매달 확인한다는 '썰'이 있는데...
일단 프리티어니까 적당히 잘 했으면 이제 인스턴스를 만들러 가보자.
2. 인스턴스 만들기
아... 여기서부터 꽤나 힘들다. aws처럼 이 친구들도 엄청나게 복잡하게 화면을 구성해 놨기 때문...
게다가 여전히 aws 처럼 수시로 ui를 바꿔 댈 테니 여기서는 스크린샷은 최대한 자제하고 '느낌'으로 전달하려고한다.
인스턴스 만들때 의외로 단계가 꽤나 된다?는 느낌을 받았다
1] Basic Information
1. 이름 및 위치 (Name & Placement)
Name: 원하는 대로 (예: main-server)
Placement: 기본값 유지 (AD-1 하나밖에 없을 겁니다)
2. 이미지 및 셰입 (Image and Shape)
이 부분을 반드시 수정(Edit)해야 합니다.
- Image (운영체제):
기본값: Oracle Linux
추천: Canonical Ubuntu 24.04.
- Shape (하드웨어):
기본값: VM.M.Standard.E2.1.Micro (aws에서의 t2.micro 모델)
일단 기본값 자체도 그다지 나쁘지는 않다고 한다.(심지어 내가 돌리려는게 꽤나 큰 모델이나 프로젝트도 아니고...)
그러나 ARM 프로세서로 OCPU: 4, Memory: 24GB까지 쓸 수 있는 하드웨어도 "평생 무료"라고 한다. 그래서 지금 이 인스턴스는 엄청난 인기! 그래서 한번에 생성은 거의 불가능하다. 보통 이 인스턴스를 쓰고 싶어도 일단 기본값으로 만들어 놓고(얘는 쉽게 생성됨) 거기서 매크로를 돌리는게 일반적이라고 하니...
일단 변경 방법은 다음과 같다.
- Change Shape 클릭
- Ampere 시리즈 선택 (ARM 프로세서)
- VM.M.Standard.A1.Flex 체크
-(여기서부턴 리스트에서 선택인지, 슬라이드 바가 나오는지는 '신비의 전설' 수준이라 명확하진 않지만 어찌되었든) - OCPU: 4 / Memory: 24 GB로 선택
- Select Shape 클릭
당연히 나는 안만들어져서, 기본 마이크로로 만들었다.
2] 시큐리티
아무것도 건드리지 말것
3] 네트워킹 (Networking)
- vnic 이름 만들어주고(이건 나중에 바꿀 수도 있고.. 뭐 대충 아무렇게나..)
- Create new virtual cloud network 선택
아래쪽에 Automatically assing Public IPV4 address 가 체크되면 땡큐인데.. 오라클 홈페이지가 진짜 엄청나게 예민해서 비활성화 되는 경우도 있다. 안되면 나중에 수동으로 붙일 수 있으니 일단 넘어가기
아 그리고 aws랑 다르게 포트(80, 443 등) 여는 건 따로 설정해야 함..
- SSH 키 추가 (Add SSH keys)
당연히 너무나도 잘들 아실테지만.. 이거 잃어버리면 서버 못 들어갑니다.
Generate a key pair for me 선택 (기본값)
Save private key 버튼을 눌러서 .key 파일 다운로드.
public key도 받아도 상관은 없음..
4] 부트 볼륨 (Boot volume)
프리티어는 총 200GB까지 공짜!
근데 여기도 기본 50Gb?로 설정되어 있으니까
Specify a custom boot volume size 눌러서 100GB 정도로 넉넉하게 잡으면 될듯요. (200GB 다 쓰면 나중에 서버 하나 더 만들 때 용량 부족합니다. 뭐 만일을 위해서 좀 남겨두는거고.. 실상 100Gb도 충분하기도 하고...)
이렇게 다 세팅을 하고 나면, 리뷰?로 한번 모든 정보를 싹 보여주고 'Create'가 나오는데.. 그냥 마이크로 했으면 바로
Case A: "Provisioning" (주황색) 상태가 된다.
일 것이고, 욕심을 내서 암페어를 골랐다면, 인터넷 창 아래에 빨간 색으로 오류메시지 즉,
Case B: "Out of host capacity" 에러가 뜬다.
가 될 확률이 높죠.
Case B면, 그냥 속편하게 마이크로로 셰입 바꾸고 만드는게 속 편합니다.
이렇게 해서 인스턴스를 만들었습니다!
2. 퍼블릭 아이피 붙이기
자, 느낌적인 느낌으로 설명드릴께요.
방금 인스턴스를 만들었죠? 그러면 바로 인스턴스 창이 브라우저에 뜰 겁니다.
바로 이 인스턴스 창에서 파란색 링크된 인스턴스 클릭(이 부분은 생략될 수도 있습니다. 만들어지고 바로 '디테일'창으로 들어와졌다면요)
인스턴스 명 아래 여러 탭이 보이는데, 그중에 네트워킹 탭 클릭
스크롤 내려서 Attached VNICs 에서 name 아래 파란 링크 클릭
상단 탭에서 'IP administration'클릭
하단 표에서 오른쪽 끝 점 세개 클릭 Edit
Ephemeral Public IP 선택하고 Update 누르면 끝!
수 분 내로(거의 즉시?) 퍼블릭 아이피가 붙습니다.
자, 이제 퍼블릭 아이피도 얻었겠다, 일단 ssh로 접속해볼까요?
ssh -i "C:\Users\사용자명\Downloads\ssh-key-2026-01-30.key" ubuntu@"퍼블릭 IP 주소"
위 명령어를 복사해서 붙여넣되, [키파일경로] 부분만 실제 파일 경로로 바꿔주세요.
(팁: ssh -i 치고 한 칸 띄운 뒤, 다운로드 폴더에 있는 .key 파일을 터미널 창으로 드래그 앤 드롭하면 경로가 자동으로 입력됩니다.)
오라클 우분투의 기본 아이디는 ubuntu입니다. (opc 아닙니다.)
성공 신호
처음 접속하면 "Are you sure you want to continue connecting?" 이라고 물어봅니다.
yes 라고 타이핑하고 엔터 치세요.
ubuntu@"vnic 이름":~$ 라는 초록색 글씨가 뜨면 접속 성공입니다!
3. 포트개방
aws랑은 다르게 오라클은 조금 보안이 빡세서, 단계가 두개가 필요합니다.
1단계: 오라클 웹 콘솔 설정 (문 열기)
AWS의 Security Group 설정과 똑같습니다.
- Networking 탭: 아까 그 인스턴스 상세 화면에서 중앙의 Networking 탭 클릭.
- 표에서 Subnet이라 써있고, 그 오른쪽에 파란색으로 링크 된 부분 클릭
- 상단 탭에서 시큐리티 클릭
- 시큐리티 리스트가 나오는데, 여기서 디폴트 시큐리티 리스트(파란색 링크) 클릭
- 상단 탭에서 Security rules클릭
- Ingress rules가 나오는데, 여기서 Add ingress rules 눌러서
- Source CIDR: 0.0.0.0/0 (전 세계 허용)
- Destination Port Range: 80,443,8080,8888,8501,5000
- 두 개만 써주고 나머지는 그냥 디폴트 값으로 둔 상태에서
- Add Ingress Rules 클릭
2단계: 서버 내부 설정
이게 제일 중요합니다.
오라클 우분투 이미지는 기본적으로 iptables라는 빡센 방화벽이 켜져 있어서, 위에서 열어도 접속이 안 됩니다.
그러면 어떻게 해야하나... 하면 그냥 터미널에서 쿨하게 방화벽 규칙을 싹 밀어버리고(허용하고) 저장합시다. (어차피 앞단의 오라클 콘솔이 막아주니까요.)
아래 명령어 3줄을 한 줄씩 복사해서 붙여넣으세요.
# 1. 현재 걸려있는 모든 차단 규칙 삭제 (프리패스)
sudo iptables -F
# 2. 앞으로의 모든 접속 허용으로 변경
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
# 3. 재부팅해도 초기화 안 되게 저장 (이거 안 하면 껐다 켜면 다시 막힘)
sudo netfilter-persistent save
끝났습니다.
이렇게 포트도 다 열었구요~
4. 이제 aws처럼 웹서버로 씁시다~
이젠, 이 블로그의 다른 포스팅에서처럼 아나콘다를 깔고, 주피터 서버를 만들면 이제 나만의 작은 주피터 서버가 생성되는 것이죠.
그 사이에 좀 많은 변화가 있어서 이참에 조금 정리해 두려고 합니다.
FTP 포트
일단 과거랑 가장 큰 차이는 FTP 포트(21)가 딱히 안전성이 좋지 않아서 굳이 사용하지 않을거라는 점? 그래서 위에서 포트개방때도 딱히 안열었었죠.
아나콘다 설치
그리고 아나콘다 설치는 https://omnil.tistory.com/72이 링크에서 자세히 설명하고 있습니다.
요 근래 아나콘다 설치 후 source ~/.bashrc해도 기본 패스가 잘 안잡히는 경우가 있는데, 이때는
- export PATH=~/anaconda3/bin:$PATH
- conda init
- source ~/.bashrc
한번 더 강제로 돌려주면 잘 돌아갑니다.
주피터 서버
이게 사실상 제일 크게 변한 부분입니다.
과거에는 주피터 서버로 모든걸 관리했는데, 이제 이 부분이 주피터 랩으로 넘어가면서 명령어에 약간의 변화가 생겼습니다.
- jupyter lab --generate-config
로 config 파일 만들어주고요 - cd .jupyter
로 이동해서 - vi jupyter_lab_config.py
config 파일 열고 - i 눌러서 insert모드 들어가서 enter 두번 치고
c.ServerApp.ip = '0.0.0.0'
c.ServerApp.port = 8888
c.ServerApp.open_browser = False
c.ServerApp.notebook_dir = '/home/ubuntu/'
c.ServerApp.allow_remote_access = True
이렇게 써주고, esc 눌러준 다음 :wq 눌러서 저장하고 나와주시면 됩니다. - jupyter lab password
이걸로 패스워드 진짜 쉽게 설정할 수 있구요 - screen -S jupyter
jupyter notebook
ctrl+a+d
로 스크린 켜고, 웹 브라우저에서 '퍼블릭 IP:8888'로 접속하면 바로 주피터 노트북이 열릴겁니다.
5. 마무리
네, 이렇게 나름 쉽다면 쉽게? OCI를 설정해봤습니다.
평생 무료란게 정말 마음에 드네요.
'Software > AWS' 카테고리의 다른 글
| [AWS/Ubuntu/Linux/Anaconda/Selenium/Python] aws에서 작동하는 selenium 패키지와 chrome, chromedriver를 활용한 python 실행 파일 만들기 (0) | 2019.12.22 |
|---|---|
| [AWS/Linux] wget으로 아나콘다 깔기 (0) | 2019.09.20 |
