오라클 A1 인스턴스 (최대 4코어 24GB 메모리) 생성 자동화 스크립트 한글 가이드
오라클 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 php7.4-curl php7.4-dom php7.4-mbstring php7.4-zip unzip 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 /root/oci-arm-host-capacity/index.php >> /root/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시간 만에 만들었습니다.
다들 성공하시고 제 정보가 도움이 되었으면 좋겠네요 +_+
자세한 설명 너무 감사드려요~ 클리앙에서보고 여기서도 뵙는군요....
그런데 root 권한으로 cat /oci-arm-host-capacity/oci.log 하면 파일, 폴더가 없다고 나오는데 그냥 둬도 될까요??
실제로 ls 해보면 oci.log 파일은 있습니다.
그리고 만약 성공하면 oci-arm-host-capacity 폴더와 크론탭 추가부분만 삭제하면 될까요???
cat ~/oci-arm-host-capacity/oci.log
~ 를 빠뜨리신거 같습니다.
성공 후에는 해당 폴더와 크론탭 추가한 부분 지우시면 됩니다^^ 저는 크론탭 부분만 지웠습니다.
이제 E1을 지우는 중인데 A1 인스턴트 생성한번 해보고 안되면 스크립트를 이용해서 하면 되는거죠?
`sudo apt install zlibc php7.4-curl php7.4-dom php7.4-mbstring php7.4-zip unzip composer -y` 이부분이 제일 어렵네요 ㅠㅠㅠ
아래와 같이 해서 composer 설치는 했습니다
춘천 리전에 AMD instance 하나 가지고 있는 상태인데 그럼 추가로 받을 수 있는 arm instance는 3 ocpu, RAM 23 GB 가 최대인가요(무료 계정일 때)
현재 춘천 리전이나 서울 리전 용량이 여유가 없어서 본문 처럼 크론으로 스크립트 계속 돌려 시도하는 거 같은데 맞맞나요?
cmt alert