Facebook Twitter
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > 【Oracle Cloud】リソーススケジューラーの使い方

【Oracle Cloud】リソーススケジューラーの使い方

ブログ
Oracle Cloud
2025.05.08

 

こんにちは!s.ichimuraです。

 

今回は、OCI(Oracle Cloud Infrastructure)リソース・スケジューラの使い方についてご紹介いたします。

はじめに

OCIを利用している中で、様々な用途に応じたリソース運用方法があると思います。
例えば、深夜帯のみ運用するリソースや業務時間内だけ使用するリソースなど、実稼働時間が限られているケースは少なくありません。
これらのリソースを自動で適切な時間のみ稼働させることができれば、無駄なコストの削減や管理作業の効率化に繋げることができます。
今回ご紹介するリソース・スケジューラを利用することで、「リソースを自動で適切な時間のみ稼働させる」ことが可能となります。

 

リソース・スケジューラの概要

リソース・スケジューラは、定義したスケジュールに基づいてリソースの停止/起動を自動で行うことができる便利なサービスです。
例えば、「開発環境で構築したコンピュートインスタンスを業務時間である平日の9時から18時の間のみ稼働させる」という要件があった場合、リソース・スケジューラで「平日の18時に対象インスタンスを停止」「平日の9時に対象インスタンスを起動」という2つのスケジュールを作成することで要件を満たすことができます。

 

現在、リソース・スケジューラでは「Autonomous Database」「Instance(コンピュート)」「Instance Pool」「Functions」の4種類のリソースがサポートされています。
OCI公式ドキュメントによりますと、「将来のリリースで他のリソースをサポートする場合があります」とのことですので、今後のアップデートにも期待したいです。

 

それでは、実際にリソース・スケジューラの設定をOCIコンソールの画面を用いてご紹介いたします。
今回ご紹介するのは、「開発環境で構築したコンピュートインスタンス2台を業務時間の平日9時から18時の間だけ稼働させる」というケースを想定しています。

 

開発環境にコンピュートインスタンス2台ということで、次のような構成で構築しております。

 

 

上記構成図内のVCNやコンピュートの作成/設定については、今回の主題ではないため省略いたします。

また、リソース・スケジューラを操作するにはユーザーに適切なポリシーが必要です。

必要に応じて、コンソール操作するユーザが属しているグループに対し以下のポリシーを付与します。

Allow group <コンソール操作するユーザが属しているグループ名> to manage resource-schedule-family in tenancy

 

・リソース・スケジューラの設定

リソース・スケジューラの作成は、OICコンソールで以下のように進めていきます。

今回は「平日の18時に対象インスタンスを停止」のスケジュール作成画面で説明していきます。

 

①コンソールのメニューから「ガバナンスと管理」→「リソース・スケジューラ」を選択します。

 

 

②リソース・スケジューラの画面から「スケジュールの作成」を選択します。 

 ※リソース・スケジューラはテナンシに作成されるリソースであるため、スケジュールの一覧には現在テナンシのリソースがすべて表示されます。

 

 

③基本情報の入力では、「スケジュール名」「スケジュールの説明」に適当な値を入力します。
 次に「実行するアクション」では、「起動」と「停止」のうち実行したいアクションを選択します。

スケジュール名:test-schedule-act-stop

スケジュールの説明:平日18時にインスタンスを停止するスケジュール

実行するアクション:停止

 

 

④リソースの選択では、「静的」「動的」のどちらかを選択し、対象リソースを選択します。

 ※どちらの方式でも1スケジュールで適応されるのは、最大200リソースまでとなります。

 

項目 設定内容
静的 スケジュール実行の対象となるリソースを1つずつ選択する方式。
動的

検索とフィルタで指定した条件を満たすリソース全てにスケジュールを適応させる方式。

 

リソースの選択方法:静的

リソース:instance01、instance02

 

 

 

⑤スケジュールでは、「フォーム・インターフェース」「Cron式」のどちらかを指定しスケジュールを設定します。

 

・フォーム・インターフェース

 

項目 設定内容
間隔

下記の選択肢からスケジュールの間隔を選択します。

「1回のみ、毎時、毎日、毎週、毎月」

繰返し間隔

何時間(日,週,月)ごとにスケジュールを実行するかを数値(1~99)で入力します。

 

例えば、3を入力すると3時間(日,週,月)ごとの実行となります。
 ※1の場合毎時間(日,週,月)となります。

Day(s) of the week

「間隔」でを選択すると表示される選択肢です。日〜土曜日の選択肢のうち何曜日に実行するかを選択します。

 

例えば、月曜日と水曜日を選択すると「週のうち月曜日と水曜日にスケジュールを実行」となります。

Day(s) of the month

「間隔」でを選択すると表示される選択肢です。1日〜31日の選択肢のうち何日に実行するかを選択します。

 

例えば、10日と20日を選択すると「月のうち10日と20日にスケジュールを実行」となります。
 ※選択肢の中に「過去」というものがありますが、これは各月の最終日を指します。

時間

スケジュールを実行する時間を24時間(UTC)表記で入力します。

 

例えば、09:00と入力すると日本時間で18:00に実行されます。
 ※「間隔」で毎時を選択している場合、毎時09:00に実行という少しわかりにくい表現となりますが、時間の「09」部分が1回目の実行時間として参照され、分の「00」部分が以降の実行時間として参照されます。そのため、「09:15」と入力すると「毎時15分に実行(初回実行は9時15分)」となります。

開始日

スケジュールの実行を開始するを選択します。

終了日(オプション)

スケジュールを終了するを選択します。終了日はオプションのため未入力にするとスケジュールを実行させ続けることができます。


 ※ここでの終了という言葉が指しているのは「スケジュールの無効化」となります。そのため、設定したスケジュールが削除されるのではなく、無効化状態となります。

 

間隔:毎週

繰返し間隔:1

Day(s) of the week:月曜日、火曜日、水曜日、木曜日、金曜日

時間:9:00

開始日:2025年1月17日

終了日:-

 

・Cron式

 

 

項目 設定内容

繰り返しの詳細

cron式は次の5つの項目で区切られます。


分(0~59) 時(0~23) 日(1~31) 月(1~12) 曜日(1~7 or mon~sun)


その他特殊文字として以下を使うことができます。
*:全ての値が含まれているものとして扱う
,:1つの項目に複数の値を入力する際の個別区切り文字
-:1つの項目に複数の値を入力する際の範囲区切り文字
/:繰り返し間隔を入力する際の区切り文字


 ※注意点として30分未満の繰り返し間隔でスケジュールはできない仕様となっているため分の部分に*/15などと指定することはできません。

開始日 フォーム・インターフェースと同じ設定内容。
終了日 フォーム・インターフェースと同じ設定内容。

 

繰り返しの詳細:0 9 * * mon-fri

開始日:2025年1月17日

終了日:-

 

 

 

⑥確認画面
基本情報、リソース、スケジュールが正しく設定されている事を確認し、スケジュールの作成を押します。また、確認画面の中に「通知」という欄がありますが、こちらは通知を設定できるという項目ではなく、イベント・サービスを使いスケジュールの作成、更新、削除、有効/無効化を通知する事ができます、という情報となります。

 

 

上記までの手順で同じように「平日の9時に対象インスタンスを起動」スケジュールを作成します。

 

 

・ポリシーの設定

リソース・スケジューラの作成が完了しましたら、次にリソース・スケジューラに対して「対象リソースを操作する権限」を付与する必要があります。

そのため、ポリシーにて下記の内容を設定します。

Allow any-user to manage <resource_type>
in compartment id <compartment_ocid> where all
{request.principal.type='resourceschedule',
request.principal.id='<ocid_of_resourceschedule>'}

※request.principal.id='<ocid_of_resourceschedule>'を設定しないことで全てのリソース・スケジューラにポリシーを適応させる事もできます。

 

項目 設定内容
<resource_type>

次のリソースタイプの識別子から対象リソースの識別子を入力します。


autonomous-databases、instances、instance-pools

<compartment_ocid>

対象リソースが配置されているコンパートメントのOCIDを入力します。

<ocid_of_resourceschedule>

作成したスケジュールのOCIDを入力します。

 

 

運用経過

上記で設定したスケジュールを運用した経過が以下となります。

 

 

グラフの値の通り、平日9時から18時の間だけインスタンスが起動していることが分かります。逆にこのグラフの空欄の部分がスケジュールを組んだことでコスト削減できた時間であり、必要な時間だけ起動させておくというスケジュールがいかに効果的であるかが分かります。

 

注意点

リソース・スケジューラを作成する中で注意する必要がある点をまとめます。

 

・リソースの選択上限

1つのスケジュールで対象とできるのは200リソースまでであり、超える場合は同じ内容でスケジュールを作成する必要があります。

 

・リソースのフィルタ

リソースの選択で動的を選択した場合に、フィルタした結果の上から200リソースが対象となります。
そのため誤ったフィルタをすると想定外のリソースが対象に含まれてしまいます。

 

・スケジュールの時間(UTC)

スケジュールで指定する時間はUTCとなるため、日本時間で運用する場合は9時間前の時刻を入力する必要があります。
 例:日本時間の18時に実行したい場合→9:00(UTC)

 

・終了日の入力

終了日を設定した場合は、終了日を迎えるとスケジュールが無効化されます。
そのため、スケジュールを実行する期間が変更となった場合は、終了日を変更する必要があります。

 

・ポリシー

OCIDを指定してポリシーを設定している場合、各スケジュールごとにポリシーが必要となるので、設定わすれやOCIDの指定を誤るとスケジュールが動作しなくなります。

 

まとめ

最後に本記事のまとめとなります。

 

1つ1つのリソースの稼働はコスト的に大きなものではないかもしれません。しかし、リソースの数リソースの稼働期間が大きくなればなるほど、広い目で見てコストがかかってきます。

リソース・スケジューラを利用することで、必要な時間のみリソースを稼働させることができます。1つ1つのスケジュールは小さなコスト削減かもしれませんが、積み重ねることで確実なコスト削減に繋がっていきます。

また、アップデートによりOCI Functionsが定期実行可能となったことで、より効率的なスケジューリングが可能となりました。

ぜひ皆さまもリソース・スケジューラを利用してみてください。

 

本記事が、皆さまのお役に立てれば幸いです。

 


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。