오라클 A1 인스턴스는 유료 계정에서는 바로 만들 수 있지만 무료 계정에서는 노가다 작업이 좀 필요합니다.
최대 4코어 CPU, 24GB 메모리로 무료 클라우드 서버를 운용할 수 있어 그 장점은 다들 알고 계실 것입니다.
깃헙과 유튜브 등에서 인스턴스 생성 자동화 방법이 안내되어 있지만 한글 가이드는 없어서 이번에 작성해 보았습니다.
준비사항
1. 리눅스PC(오라클 프리티어 우분투에서 가능)
2. MobaXtrem 등 터미널 프로그램
3. 오라클 클라우드 무료 계정
4. Winscp 등 ftp 접속 프로그램
가이드 시작
1. 오라클 클라우드 접속 후 사용자 설정에서 API 추가 및 키 다운로드
위 이미지 화살표 따라서 클릭해서 전용키와 공용키를 다운받아 둡니다.
API 추가 버튼 해서 나오는 정보는 복사해서 메모장 등에 붙여넣기
2. 리눅스 PC에 MobaXterm 통해 ssh 접속 후 깃 저장소 복제 (노트북에 우분투 설치 후 터미널에서 작업해도 됩니다)
git clone https://github.com/hitrov/oci-arm-host-capacity.git
3. oci-arm-host-capacity 폴더로 이동 후 php 설치 (명령어 복사 해서 한줄씩 붙여넣어서 설치 진행)
cd oci-arm-host-capacity/
sudo apt update
sudo apt install php-fpm -y & apt install nano -y
으로 php 및 nano 설치
php -v
입력해서 php 설치 상태 확인
4. composer 설치 (명령어 복사 해서 한줄씩 붙여넣어서 설치 진행)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo apt install zlibc -y & apt install php7.4-curl -y & apt install php7.4-dom -y & apt install php7.4-mbstring -y & apt install php7.4-zip -y & apt install unzip -y & apt install composer -y
으로 필요한 패키지들을 설치 후
composer install
입력해서 composer를 최종 설치합니다.
5. 오라클 클라우드에서 인스턴스 생성
*예시에는 Ubuntu 22.04, Shape는 Ampere A1으로 선택했으나 우분투 버전은 상관 없으니 20.04 등으로 선택해도 무방
SSH키는 오라클에서 발급받아 저장한 후 생성 버튼 클릭
6. 생성 버튼 누르자마자 F12 눌러서 네트워크->instance 우클릭해서 curl 복사 -> 메모장에 붙여넣기
7. 메모장에 붙여넣은 내용 중에 컨트롤+F로 SubnetID, ImageID, SSH Key 각각 확인해서 다른 메모장에 붙여넣기
*위 정보는 각자 다를테니 예시의 내용은 참고만 하세요.
*ssh key 는 ssh key generator 통해서 발급받은 키를 사용해도 됩니다.
8. Winscp 통해 리눅스 서버에 sftp 접속 후 1번 과정에서 다운받아 둔 파일들 oci-arm-host-capacity 폴더로 복사
*ssh 키는 굳이 복사하지 않아도 상관 없습니다.
9. env 파일 편집
cp .env.example .env
nano .env
변경해야 할 정보들
과정1에서 얻은 정보로 1 완성
과정7에서 확보한 정보로 2, 3 완성
8과정에서 업로드 한 pem 파일 경로 및 파일명 기재 및
OCI_BOOT_VOLUME_SIZE_IN_GBS= 에는 부트볼륨 최대값 200 기재 후 컨트롤+O -> 컨트롤+X 로 편집 완료
변경 선택 사항
*OCI_OCPUS=2
*OCI_MEMORY_IN_GBS=12
*OCI_MAX_INSTANCES=2
*OCI_BOOT_VOLUME_SIZE_IN_GBS=100
이라고 편집한다면 2코어 12기가, 부트볼륨 100기가짜리 인스턴스가 최대 2개까지 생성될 수 있습니다.
10. 로그 파일 설정 및 분당 한번씩 스크립트 실행하도록 설정
touch oci.log
chmod 777 oci.log
crontab -e
1
크론탭에 아래 내용 기재 후 컨트롤+O, 컨트롤+X 하면 자동화 스크립트 세팅 완료
* * * * * /usr/bin/php /oci-arm-host-capacity/index.php >> /oci-arm-host-capacity/oci.log 2>&1
11. 하루에 한 번 정도 ssh 접속해서 cat /oci-arm-host-capacity/oci.log 로 로그 파일 확인 하시면
언젠간 A1 인스턴스 만들어진 것을 보실 수 있을 것입니다.
성공한 경우 Already have an instance(s) 라고 시작하는 로그가 있을 것입니다.
그럼 오라클 클라우드 접속 후 생성된 인스턴스에 공용IP 붙이고 ssh 접속해서 세팅 하시면 됩니다.
참고로 저는 운이 좋았는지 4코어 24GB메모리 200GB용량 A1 인스턴스를 약 8시간 만에 만들었습니다.
다들 성공하시고 제 정보가 도움이 되었으면 좋겠네요 +_+
별도로 만든 compartment 에 생성하려면 스크립트 수정은 해줘야 하더군요..
이거 보고 돌려놨는데 드디어!!!!!!
생성되었습니다!!!!
15일정도 걸린거 같네요.
생성 날짜가 8월 1일인걸로 보아 매월초에 서버 추가되거나 삭제된거 돌려주거나 하는거 같네요
암튼 감사합니다!!!
축하드려요^^
그런데 root 권한으로 cat /oci-arm-host-capacity/oci.log 하면 파일, 폴더가 없다고 나오는데 그냥 둬도 될까요??
실제로 ls 해보면 oci.log 파일은 있습니다.
그리고 만약 성공하면 oci-arm-host-capacity 폴더와 크론탭 추가부분만 삭제하면 될까요???
입력하면 cat: /oci-arm-host-capacity/oci.log: No such file or directory 이렇게 나오는데 어떻게 해결하셨나요?
winscp 에 들어가보면 파일은 있는데 내용은 아무것도 없네요