본문 바로가기
4. 데이터분석

OAC:Advanced Configuration - Start/Stop using OCI CLI

by Unemployed 2024. 5. 28.

OAC 에서 특정시간에 Instance 를 Start/Stop 하는 방법을 알아보도록 하겠습니다. 

About OAC Start/Stop 

 

OCI 에서 ADW 혹은 DBCS 는 Auto Start/Stop 기능을 콘솔에서 구현할 수 있습니다. 하지만, OAC 는 OCI 콘솔 외 다른 방법을 사용해서 Start/Stop 구현해야 합니다. 이번 포스팅에서는 이 중에서도 OCI CLI 를 통한 방법을 알아보도록 하겠습니다.  

구성을 완료하면 다음과 같은 기능을 수행 할 수 있습니다. 

 

- 특정 시점에 OAC 를 Stop / Start 

- OAC OCPU 변경 

 

OAC Instance Stop/Start 방법 3가지  :

이번 포스팅에서는 위 3가지 방법중에서  OCI CLI 를 사용하는 방법에 대해서 알아보도록 하겠습니다. 

 

아래와 같은 작업을 수행 예정입니다. 

 

TASK 1. 특정 Linux 혹은 Windows server 에 OCI CLI  를 설치합니다. 

TASK 2. 해당 머신에서 아래 CLI 명령어를 수행하도록 셋업 및 수행 스크립트를 만듭니다. 

TASK 3. Crontab 혹은 Windows 스케줄링 기능에서 해당 스크립트를 정기적으로 수행하도록 등록 합니다. 

 

 

1. ( TASK 1)  특정 Linux 혹은 Windows server 에 OCI CLI  를 설치합니다. 

 

Oracle Cloud 에서 Alway Free 로 사용할 수 있는 아래 VM 을 생성하여 CLI 수행 머신으로 사용합니다. 

- 무료 스펙인 A1.Flex 에 오라클 리눅스 클라우드 디벨로퍼를 선택했습니다. (OCI CLI 가 기본적으로 설치되어 있습니다.) 

 

 

- Cloud Shell 을 통해 해당 VM 에 접속합니다. 

 

- 오라클 리눅스 클라우드 디벨로퍼  기본적으로 OCI 가 설치되어 있습니다. (없으면 설치) 

- 우선 아래의 명령으로 Config 를 셋업합니다.

oci setup config

oci 

 

- User OCID  :  API 를 수행할 유저의 OCID

- Tenancy OCID  : 테넌시 OCID 

- API Signing RSA Key : 해당 유저의 API Key ( 생성해도 되고, 이미 생성한 키를 공유 해도 됨) 

- 이외 모두 Defaul 로 입력합니다. 

 

.oci 디렉토리 및 기타 파일들이 생성되었습니다. 

- 신규로 Key를 생성하였다면, 해당 OCI User 에 API Key로 등록 해야 합니다. 

- 아래 명령어를 PC 에서 수행하여 현재 PC 에 현재 디렉토리에 해당  Key 를 가져옵니다. 

 

scp -i "G:\내 드라이브\00.Oracle\54.DEMOKEY\ssh-key-2021-09-15.key" opc@132.145.92.41:/home/opc/.oci/oci_api_key_public.pem .

 

- 해당 Key 를 OCI 콘솔에 해당 사용자 API Key에 업로드 합니다. 

 

* 해당 사용자는 NALYTICS_INSTANCE_USE  권한이 있어야 합니다. 즉 use 권한 이상으로 Policy 가 부여되어 야 합니다.  

* 아래 권한 예시 참조 

# Use permissions (List, Get, Start, Stop)
allow group analytics_power_users to use analytics-instances in compartment MyOACProduction

 

* 관련 문서:

https://docs.public.oneportal.content.oci.oraclecloud.com/en-us/iaas/analytics-cloud/doc/manage-service-access-and-security.html#GUID-AD228332-AC01-4EEE-8994-68D044605D37

 

2. (TASK 2) 해당 머신에서 아래 CLI 명령어를 수행하도록 셋업 및 수행 스크립트를 만듭니다. 

- 아래와 같은 명령을 수행합니다.

- OAC Stop : oci analytics analytics-instance stop --analytics-instance-id [OAC OCID] 

- OAC Start : oci analytics analytics-instance start --analytics-instance-id [OAC OCID] 

oci analytics analytics-instance start --analytics-instance-id ocid1.analyticsinstance.oc1.ap-seoul-1.aaaaaaaaoexm3edqzb4a4blyp4smbn7z2ijmubi2nxsvtd5yt2ynobky2beq

 

 

콘솔에서 OAC 가 다시 시작되는 것을 확인 하였습니다. 

 

이제 이명령을 자동으로 수행하기 위해서 쉘 명령 스크립트를 만들어 보겠습니다. 

-

#!/bin/sh
#Simple Script to start OAC 

. /home/opc/.bash_profile
# Source the profile to load environment variables

oci analytics analytics-instance start --analytics-instance-id ocid1.analyticsinstance.oc1.ap-seoul-1.youroacocid

 

 

 

- 해당 쉘에 실행 권한도 추가합니다. 

chmod +x start_oac.sh

 

- stop_oac.sh 도 동일하게 하나더 만들어 줍니다. 

 

- 아래와 같이 쉘명령을 직접 수행하여 정상 동작을 확인 합니다. 

 

- 유닉스 타임존도 아래와 같이 한국으로 변경합니다. 

 

 

 

 

3. (TASK 3) Crontab 혹은 Windows 스케줄링 기능에서 해당 스크립트를 정기적으로 수행하도록 등록 합니다. 

 

- 아래와 같은 내용을 crontab 에 등록하여 관리합니다. 

 

아래 내용은 월~금 매일 9시에 oac Start , 18시에 OAC Stop 하고 해당 수행 내역을 로그로 쌓는 명령입니다. 

0 9 * * 1–5 /home/opc/start_oac.sh >> /home/opc/start_script.log 2>&1

0 18 * * 1–5 /home/opc/stop_oac.sh >> /home/opc/stop_script.log 2>&1

 

 

해당 시간에 명령어가 잘 동작하는지 확인 합니다. 

* 시간을 바꾼후에는 VM 을 재기동 해야 해당 Cron 에서 변경된 Timezone 이 반영됩니다. 

 

작성자: 장재석(coolguy81@gmail.com) / Cloud Architect
개인 시간을 투자하여 작성된 글로서, 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다

댓글