LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

サービス・製品 | 

リソース停止忘れを解消!OCIリソース・スケジューラを使ったリソース管理

こんにちは。クラウドサービス部の石井です。

クラウドサービスを利用する大きなメリットの1つは、使用した分だけ支払いが発生する従量課金制です。そのため、多くの人はリソースを使わないときには停止してコストを抑えますが、停止を忘れてしまい不要なコストが発生することもよくある話です。

そこで、Oracle Cloud Infrastructure(以下、OCI)では、2024年5月に「リソース・スケジューラ」という機能が提供開始されました。リソースの自動停止・起動をスケジュール管理でき、コストの無駄遣いを防ぎます。今回は、このリソース・スケジューラについて解説します。

リソース・スケジューラとは

リソース・スケジューラは設定したスケジュールに従い、指定したリソースを自動で停止・起動できる機能です。手動での操作ミスを防ぎ、コスト管理をより効率化できます。現時点でサポートされているリソースは、以下の4種類です。

  • コンピュート・インスタンス
  • インスタンス・プール
  • Autonomous Database
  • ファンクション

サービス提供当初、ファンクションはサポートされていませんでしたが、2024年9月9日にサポートが追加されました。現在はサポートされていないリソースでも、リソース・スケジューラでサポートされる可能性があるため、今後の機能拡張に期待できます。

対象リソースの指定方法は2種類あり、特定のリソースを対象とする「静的」と、スケジュール実行時に条件と一致するリソースを対象とする「動的」から選択できます。ただし、いずれの方法でも1つのスケジューラで処理できるリソースは25個までです。25個以上のリソースを管理する場合は「静的」を選択し、必要な数だけスケジューラを作成する必要があります。

リソース・スケジューラの使用例として、ラックの検証環境ではコンパートメントごとに毎日22時にコンピュート・インスタンスを停止するスケジュールを設定しています。使用するときのみコンピュート・インスタンスを起動するルールとしているため自動起動の設定は不要ですが、やはり停止し忘れる人がいるためこのような運用を取り入れています。

リソース・スケジューラの作成

ここからはリソース・スケジューラの作成方法について説明します。

事前準備

ポリシー設定

リソース・スケジューラを作成するにあたり、作成するユーザには以下のポリシーが必要です。

Allow group <group_name> to manage resource-schedule-family in tenancy

リソース・スケジューラはテナンシ・レベルのリソースのため、対象はコンパートメントではなくテナンシを指定する必要があります。

スケジュールの作成

OCIコンソールにログインし、「ガバナンスと管理」->「リソース・スケジューラ」->「スケジュール」を選択し、スケジューラの一覧ページに遷移します。

基本情報

「スケジュールの作成」ボタンをクリックすると、スケジュールの作成画面が表示されます。必要事項を入力したら、「次」をクリックします。

スケジュール名 スケジュールの名前。1から1024文字、すべての文字(大文字と小文字)、行送りと改行およびNULLを除く特殊文字が使用可能
スケジュールの説明 スケジュールの説明。オプションのため入力せずとも構わない
実行するアクション 起動もしくは停止を選択
スケジュールの作成における基本情報の設定画面

リソース

対象のリソースを指定します。「検索とフィルタ」では以下の4つのカテゴリからリソースの検索とフィルタができます。

  • コンパートメント
  • リソース・タイプ
  • ステータス
  • タグ

コンパートメントの選択は、リソース作成時と同様に階層構造の画面から行います。選択できるコンパートメントは1つのみのため、複数のコンパートメントのリソースを選択したい場合は、コンパートメントのフィルタは行わないでください。

また、指定したコンパートメント直下にあるリソースしか選択できないため、子コンパートメントのリソースも合わせて対象にしたい場合は、コンパートメントのフィルタは使用できません。

スケジュールの作成におけるリソースの指定画面。コンパートメントから指定する場合。

リソース・タイプは冒頭で説明した4種類から選択します。

スケジュールの作成におけるリソースの指定画面。リソース・タイプから指定する場合。

ステータスは以下の3種類から選択します。

  • AVAILABLE
  • RUNNING
  • STOPPED
スケジュールの作成におけるリソースの指定画面。ステータスから指定する場合。

スケジュール

スケジュールの指定方法はフォーム・インタフェースかCron式を選択できます。日時はいずれもUTC形式で指定する必要があるため注意してください。

スケジュールの作成におけるスケジュールの指定画面。フォーム・インタフェースで選択する場合。
スケジュールの作成におけるスケジュールの指定画面。Cron式で選択する場合。

確認

指定したスケジュール設定を確認します。この画面で変更はできませんが、必要に応じて通知やポリシーの設定を行うリンクが記載されています。内容に問題がなければ「スケジュールの作成」をクリックし、スケジュールを作成します。

スケジュールの作成における確認画面

スケジュールを動かすためのポリシー設定

作成したスケジュールが各リソースの停止・起動を実行するには、次のようなポリシー設定を行い、スケジュールに対して各リソースへの操作権限を付与する必要があります。

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

ここで指定するリソース・タイプ、コンパートメントは、停止・起動を行うリソースのリソース・タイプ、コンパートメントです。

実行済みのスケジュールの確認

スケジュールの詳細画面から、最新の作業リクエスト7件を確認できます。この作業リクエストは実行履歴だけでなく、スケジュールの変更履歴も含まれるため、最新7件の実行履歴ではないことにご注意ください。

実行済みのスケジュールの確認

リソース・スケジューラを使ってみて

実際にこのリソース・スケジューラを使用してみて感じた良かった点と、今後の改善を期待している点を紹介します。

良かった点

動的に対象リソースを指定できる

スケジュールを作成した時点では新しいインスタンスを作成する予定がなくても、後から追加が必要になることはよくあります。最初に「静的」で対象のインスタンスを指定していた場合、新しいインスタンスもスケジュール対象とするなら既存のスケジュールを修正して登録するか、新たにスケジュールを作成する必要があります。しかし、「動的」でインスタンスを指定していた場合は自動的に対象に含まれるため、設定漏れによる自動停止・起動の失敗を防げます。

複数のコンパートメントのリソース状況をまとめて確認できる

スケジュール作成画面で、複数のコンパートメントのリソース状況をまとめて確認できる点はとても便利です。例えば、ある時点でテナント内のすべての起動中のリソースを確認したい場合、今まではすべてのコンパートメントにアクセスして状態を確認する必要がありました。しかし、スケジュール作成画面でステータスをフィルタすれば一目で確認できます。テナント内すべてのリソースの状態を確認するためには、各リソースへのアクセス権が必要であることに注意してください。

今後の改善を期待している点

対象リソースにBaseDBが無い

BaseDBを停止する際は、DBシステムのページへアクセスし、ノード情報を表示する必要があります。この手順がひと手間かかるため、初めてBaseDBを使用する人はノードの停止方法がわからず、停止を忘れてしまうことがよくあります。OCIを使う方はBaseDBも使っていることが多いため、このプロセスを簡略化する機能が追加されると、より利用者のニーズに合った機能になると思います。マニュアルにはBaseDBについての記載もあり、今後追加される可能性が高いため、早期の実装が期待されます。

フィルタ条件が1つしか選択できない

現状、フィルタ条件は1つしか選択できないため、特定のコンパートメントのステータスが「RUNNIG」のリソースのみを抽出するような複数条件での絞り込みができません。リソース・スケジューラがテナント全体のリソースを管理するため、テナントの管理者が利用者に代わってスケジュールを作成するというケースもあると思いますが、その際にコンパートメントの指定かつステータスやリソース・タイプをフィルタ条件にしたくても、現在の仕様では指定できません。複数のフィルタ条件を指定できるようになると、管理がさらに効率化され利便性が大きく向上すると思います。

リソース・スケジューラがテナントのリソース

テナントのリソースにおいて、リソース・スケジューラはコンパートメントによるアクセス制限ができず、他の利用者の作成したスケジュールにもアクセスできてしまいます。そのため、誤って他の利用者の作成したスケジュールを削除してしまうリスクがあります。コンパートメントによる権限分離はOCIのメリットだと言えますが、リソース・スケジューラにおいてはそのメリットを活かせません。この点が改善されると、運用管理の効率性と安心感が大幅に向上することが期待されます。

おわりに

これまでは、自動停止や起動を行うためにはインスタンスを用意し、cronなどを使ってコマンドベースで操作する必要がありました。その手間や複雑さから、実装を諦める方も多かったのではないでしょうか。しかし、リソース・スケジューラを使えば簡単に自動停止・起動ができるので、ぜひ試してみてください。

ラックでは、お客様のシステム環境の課題に合わせた、OCI、AWS、Azure、Google Cloudのご提案をしています。マルチクラウドやハイブリッドクラウドも含めたシステム構成に関するお悩みがありましたら、ぜひお気軽にお問い合わせください。

「クラウドインテグレーション関連」に関するお問い合わせ

この記事は役に立ちましたか?

はい いいえ