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가지 :
- 콘솔 사용 : Pause and Resume using the Console
- Rest API 사용 : Pause and Resume a Service using the REST API
- OCI CLI 사용 : Pause and Resume using the Command Line
이번 포스팅에서는 위 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
* 관련 문서:
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
개인 시간을 투자하여 작성된 글로서, 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다
'4. 데이터분석' 카테고리의 다른 글
OCI Data Catalog - LiveLabs! (0) | 2024.08.18 |
---|---|
Oracle Analytics Cloud (OAC) :사용자 및 관리자 계정 생성 및 권한 관리 - Advanced (0) | 2024.05.20 |
Oracle Analytics Cloud (OAC) : Role Based Filter 적용하기 (0) | 2024.05.20 |
Oracle Analytics Cloud(OAC) :Advanced Configuration - Mail Settings (0) | 2024.04.15 |
Oracle Analytics Cloud(OAC) :Advanced Configuration - Track Usage (0) | 2024.04.12 |
댓글