はじめに
こんにちは。クラウド事業部の箕輪です。
検証で使ったインスタンスを停止するのを忘れて、コストが跳ね上がってしまった!という経験はありませんか?
従量課金制のサービスを利用する上で、クラウドコストの最適化は重要な課題の1つです。
特に開発環境やテスト環境といった常に稼働している必要のないリソースは、スケジュールに基づいて自動的に起動・停止させることで、大幅なコスト削減につながります。
そこで今回は、Oracle Cloud Infrastructure (OCI) の機能の一つである「リソース・スケジューラー」を設定して、 インスタンスの停止忘れを予防してみました。
リソース・スケジューラーとは?
リソース・スケジューラーは、定義したスケジュールに基づいて指定したリソースを自動で起動、停止する機能です。
スケジュールは、実行する頻度(1回、日次、週次など)と開始時刻、終了時刻などを設定できます。
現在サポートされているリソースは、以下の4種類です。
- コンピュート・インスタンス
- コンピュート・インスタンス・プール
- Autonomous Database
- ファンクション・リソース
リソース・スケジューラーを活用するメリット
コスト削減
不要な時間帯のリソース稼働を停止することで、クラウド利用料金を大幅に削減できます。
運用効率の向上
手動での起動・停止作業が不要になり、運用管理者の負担を軽減できます。
人的ミスの防止
手動操作による起動・停止の忘れや誤操作を防ぎます。
OCIコンソールでの設定手順
今回は、毎日夜間にコンピュート・インスタンスを停止する設定をします。
スケジュール作成するためのポリシー作成
スケジュールを作成するために、作成するユーザには以下のポリシーが必要です。
Allow group <group_name> to manage resource-schedule-family in tenancy
※リソース・スケジューラはテナンシレベルのリソースのため、対象はテナンシを指定する必要があります。
※<group_name> には、ご自身の環境の値を入力してください。
スケジュール作成
1. OCIコンソールにて左上のメニューを開き、「ガバナンスと管理」>「リソーススケジューラー」> 「スケジューラー」を選択します。
2. 「スケジュールの作成」ボタンをクリックします。
3. スケジュールの基本情報を入力します。
- スケジュール名: スケジュールの識別のための分かりやすい名前を入力します。
- スケジュールの説明: 必要に応じてスケジュールの目的などを記述します。
- 実行するアクション:「停止」を選択します。
- Compartment:スケジュールを作成するコンパートメントを選択します。
4. スケジューラーで停止させる対象リソースを設定します。
5. Apply parameters は今回オプション機能ですので、今回はスキップします。
6. スケジュールを設定します。
- 間隔:「毎日」を選択します。
- 時間:停止する時間を入力します。※時間はUTC時間で入力する必要があります!
- 開始日:スケジュールを開始する日にちをカレンダーマークから選択します。
7. 確認画面で設定した内容を確認します。内容に問題なければ作成に進みます。
スケジュールを動かすためのポリシー設定
作成したスケジュールがリソースを停止するには、スケジュールに対して各リソースへの操作権限をポリシーで付与する必要があります。
Allow any-user to manage <resource_type> in compartment id <compartment_ocid> where all {request.principal.type='resourceschedule', request.principal.id='<ocid_of_resourceschedule>'}
※<resource_type>、<compartment_ocid>、<ocid_of_resourceschedule>には、ご自身の環境の値を入力してください。
動作確認
数日間に渡って動作確認してみたところ、 19時頃にスケジューラーが実行してコンピュート・インスタンスが自動で停止することを確認できました!
まとめ
OCIリソーススケジューラーを活用することで、クラウドコストを最適化し、運用効率を大幅に向上させることができます。 今回ご紹介した手順が参考になれば幸いです。
おわりに
私達クラウド事業部はクラウド技術を活用したSI/SESのご支援をしております。
また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。