#はじめに
Cloud サービス利用しているとき、スケジューリングタスクの実行が必要な場合があります。例えば:インスタンスの自動起動・停止をスケジュールする
記事を作成時点、オラクルは、クラウドネイティブ機能としてスケジューリングを提供していません。その機能リリースされる可能性がありますが、それまでは、これは実行可能な代替手段としての方法を検討しました。
#方法
OCIコンピューティングインスタンスでのCRONジョブを設定、OCI CLIを利用してOCIを操作
#環境
OS: Oracle-Linux-7.9
#手順
##STEP1: OCI CLI インストール
下記の記事を参照
Oracle Cloud : コマンド・ライン・インタフェース(CLI) をインストールしてみた
##STEP2: 必要タスクのシェル作成
例1: Computeインスタンス起動停止
ファイル:/home/opc/ocicli/ocicompute.sh
#!/bin/bash
oci compute instance action --instance-id $1 --action $2
if [ $? -eq 0 ]
then
echo "Success"
exit 0
else
echo "Failure"
exit 1
fi
$1
- instance-id (例:ocid1.instance.oc1.ap-tokyo-1.anxhiljr5tza4ciczisonvcjybtimu4b2eciaq3kqzvegzp7os3ub6odvzxa)
$2
- action (例:start , softstop , stop )
※通知やエラー処理などを省略させてください。
インスタンス起動使用例:
/home/opc/ocicli/ocicompute.sh ocid1.instance.oc1.ap-tokyo-1.anxhiljr5tza4ciczisonvcjybtimu4b2eciaq3kqzvegzp7os3ub6odvzxa start
例2:DBインスタンスシェイプ変更
ファイル:/home/opc/ocicli/changedbshape.sh
#!/bin/bash
oci db system update --db-system-id $1 --shape $2
if [ $? -eq 0 ]
the
echo "Success"
exit 0
else
echo "Failure"
exit 1
fi
$1
- db-system-id (例:ocid1.dbsystem.oc1.ap-tokyo-1.anxhiljr5tza4ciczisonvcjybtimu4b2eciaq3kqzvegzp7os3ub6odvzxa)
$2
- shape (例:VM.Standard2.1 ,VM.Standard2.2 )
※通知やエラー処理などを省略させてください。
シェイプをVM.Standard2.2に変更使用例:
/home/opc/ocicli/changedbshape.sh ocid1.dbsystem.oc1.ap-tokyo-1.anxhiljr5tza4ciczisonvcjybtimu4b2eciaq3kqzvegzp7os3ub6odvzxa VM.Standard2.2
##STEP3: 実行権限追加
例:
chmod u+x /home/opc/ocicli/ocicompute.sh
chmod u+x /home/opc/ocicli/changedbshape.sh
##STEP3: CRON 設定
例1:毎日9時インスタンス起動、20時インスタンスを停止
0 9 * * * /home/opc/ocicli/ocicompute.sh ocid1.instance.oc1.ap-tokyo-1.anxhiljr5tza4ciczisonvcjybtimuwb2eciaq3kqzvegzp7os3ub6obyrxa start
0 20 * * * /home/opc/ocicli/ocicompute.sh ocid1.instance.oc1.ap-tokyo-1.anxhiljr5tza4ciczisonvcjybtimuwb2eciaq3kqzvegzp7os3ub6obyrxa softstop
例2:毎月1日DBインスタンスのシェイプをVM.Standard2.2に変更
毎月25日DBインスタンスのシェイプをVM.Standard2.4に変更
0 0 1 * * /home/opc/ocicli/changedbshape.sh ocid1.dbsystem.oc1.ap-tokyo-1.anxhiljr5tza4ciczisonvcjybtimu4b2eciaq3kqzvegzp7os3ub6odvzxa VM.Standard2.2
0 0 25 * * /home/opc/ocicli/changedbshape.sh ocid1.dbsystem.oc1.ap-tokyo-1.anxhiljr5tza4ciczisonvcjybtimu4b2eciaq3kqzvegzp7os3ub6odvzxa VM.Standard2.4
#参考資料:
https://mytechretreat.com/5-ways-to-schedule-serverless-functions-on-oracle-cloud-infrastructure/