Cloud Platform

[Oracle Cloud Infrastructrue] 오라클 A1(ARM) 인스턴스 생성 스크립트

비소_ 2023. 1. 6.

개요

2023.01.04 - [Cloud Platform] - [Oracle Cloud Infrastructure] 오라클 클라우드 배포 과정 정리(1)

 

[Oracle Cloud Infrastructure] 오라클 클라우드 배포 과정 정리(1)

클라우드 플랫폼 프리 티어 비교 Google GCP Oracle Cloud Amazon EC2 네이버 Cloud Platform 무료 사용 VM 종류 e2-micro E2.1.Micro t2.micro Micro-g1 무료 사용 VM 개수 1개/월 2개 1개 1개 CPU 2 vCPU 1/8 OCPU 1 vCPU 1 vCPU RAM 1GB

biso.tistory.com

위 글에서 설명했듯이, ARM 프로세서 기반인 A1 인스턴스는 최대 4OCPU, 24GB RAM을 유연하게 사용할 수 있도록 제공함과 동시에 상시 무료로 사용할 수 있기 때문에 그 인기가 높다.

따라서, 이미 한국 리전도 리소스 리밋이 걸려있는 상태이다. (회원가입 시에는 서울과 도쿄만 리밋이라고 뜨는데 상황을 보아하니 춘천, 오사카 등도 다 걸려있는 모양)

 

유료 계정으로 업그레이드를 한다면 대기하지 않고 바로 생성할 수 있으나,

혹시 모르는 과금때문에 선뜻 업그레이드를 하지 않는 분도 계실꺼라 생각한다. (Me too..)

우선, 유료 계정 업그레이드 시 100달러가 테스트용으로 출금되었다 다시 입금된다. (회원가입 때랑 동일)

또한 업그레이드를 했더라도 프리 티어 제공량 까지는 과금없이 무료로 계속 쓸 수 있다.

다만, 책정 방식이 조금 오차가 있는 것인지, 커뮤니티를 보면 최대 200GB 스토리지를 쓸 수 있는데 197GB를 생성했음에도 과금이 되고 있다는 분도 있었다. (이 부분은 안전하게 한 5 ~ 10% 빼고 쓰면 되긴하겠지만..무섭다)

 

따라서, 이번 글에서는 무료 계정에서 A1 인스턴스를 생성하기 위한 스크립트를 작성하고 실행하는 과정을 정리했다.


준비사항

  1. 리눅스 PC (24시간 돌려야 하니 개인 PC보단, 프리티어 VM을 사용하는 게 좋아보인다.)
  2. 해당 PC에 접속할 수 있는 터미널
  3. 오라클 클라우드 계정
  4. 파일질라 같은 FTP 프로그램

과정

리눅스 PC 접속 후 스크립트 clone

git clone https://github.com/hitrov/oci-arm-host-capacity.git

oci-arm-host-capacity 폴더로 이동 후 php 설치

cd oci-arm-host-capacity/ #이동
sudo apt update
sudo apt install php-fpm -y [& apt install nano -y] #나노 에디터는 선택사항

#설치 후 상태 확인
php -v

#필요한 패키지 설치
#길어서 끊어 썼는데 &로 연결해서 사용하거나, 혹시나 안되면 하나씩 해보세요.
sudo apt install zlibc -y & apt install php7.4-curl -y & apt install php7.4-dom -y 
sudo apt install php7.4-mbstring -y & apt install php7.4-zip -y & apt install unzip -y & apt install composer -y

#composer 설치
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
composer install

인스턴스 생성

이미지 버전은 상관없음.

키는 가지고 있는 키를 업로드하거나 자동으로 생성된 키 쌍을 저장(추후 필요)

볼륨은 추후 설정할 수 있음.

cURL 복사

Ctrl + F12로 개발자도구 키고, 생성버튼 클릭.

이후 네트워크 탭에서 instances/ 로 보낸 실패한 요청을 찾고 cURL 복사.

필요한 정보 추출하기

subnetId, imagedId, ssh_authorized_keys 추출해서 다른 메모장에 정리해놓는다.

사용자 설정에서 API 추가 및 키 다운로드

내 프로파일에 들어가서 API 키를 추가한다.

전용 키와 공용 키는 다운로드한다.

추가하고 나오는 팝업 정보는 복사해서 메모장에 기록해둔다.

출처 : https://www.clien.net/service/board/cm_nas/17330089

FTP 프로그램을 이용해 oci-arm-host-capacity 폴더로 업로드

ssh key는 상관없다고 한다.

env 파일 편집

cp .env.example .env
vi .env #다른 에디터 가능

API 키 추가하고 나온 팝업 정보로 해당 정보 수정

인스턴스 생성 클릭해서 얻은 subnetId, imageId, ssh key 복사/붙여넣기

KEY_FILENAME은 FTP로 옮긴 API 키 이름을 적어주면 된다. (경로 포함)

첫번째 SSH KEY 아님!! 옮긴 API Key 이름!!!
살짝 아래 쪽에 PUBLIC_KEY 에다가 ssh key 복사/붙여넣기

마지막으로 원하는 볼륨 사이즈를 기재한다.

나머지도 마찬가지로 본인이 원하는대로 변경해주면 된다.

로그 파일 설정

touch oci.log
chmode 777 oci.log
crontab -e #이후 에디터 선택은 본인이 원하는대로

크론탭 마지막에 아래 내용 작성 (경로는 본인에 맞게 수정)

* * * * * /usr/bin/php /oci-arm-host-capacity/index.php >> /oci-arm-host-capacity/oci.log 2>&1

Nano 에디터 기준 Ctrl + O로 저장 후 엔터, Ctrl + X로 나온다.

로그 확인

1분에 한 번씩 요청을 보내기 때문에, 생각날 때 가끔 확인해주면 된다.

tail oci.log

잘 되고 있으면 생성 버튼 클릭했을 때처럼 똑같은 응답이 로그에 기록된다.

예전에도 오래걸렸는데, 요즘엔 아마 더 힘들지 않을 까 싶다.

어차피 쓴 만큼 나오기 때문에 괜찮다 싶으면 그냥 유료 계정으로 업그레이드 하는 것이 좋아보인다.


참고자료

https://www.clien.net/service/board/cm_nas/17330089

 

오라클 A1 인스턴스 (최대 4코어 24GB 메모리) 생성 자동화 스크립트 한글 가이드 : 클리앙

오라클 A1 인스턴스는 유료 계정에서는 바로 만들 수 있지만 무료 계정에서는 노가다 작업이 좀 필요합니다. 최대 4코어 CPU, 24GB 메모리로 무료 클라우드 서버를 운용할 수 있어 그 장점은 다들

www.clien.net

https://github.com/hitrov/oci-arm-host-capacity

 

GitHub - hitrov/oci-arm-host-capacity: This script allows to bypass Oracle Cloud Infrastructure 'Out of host capacity' error imm

This script allows to bypass Oracle Cloud Infrastructure 'Out of host capacity' error immediately when additional OCI capacity will appear in your Home Region / Availability domain. - GitHu...

github.com

댓글