HeatWave MySQLの自動起動・停止をがんばってみる

目次

はじめに

以前に、OCI Resource Scheduler を利用して自動で起動と停止してみよう! という記事にて、コンピュート・インスタンスの自動起動・停止処理を紹介させていただきました
しかし、記事執筆時点(01/05時点)のOCI Resource Schedulerではコンピュート・インスタンスとAutonomous Database、OCI Functions以外はサポートされていないため、そのままではHeatWave MySQLなどのリソースは自動起動・停止を行うことができません
そこで、本記事ではOCI Functionsを利用してHeatWave MySQLの自動起動・停止を実施してみたいと思います

前提条件

本記事で記載します手順は、以下に紹介するチュートリアルやブログ記事を参考として、ポリシー等を事前に設定済みであることといたします

手順

functionを作成します

起動用: wakeup-mysql、停止用: shutdown-mysqlとし、ランタイムはPythonを使用いたします
※以降は起動用のwakeup-mysqlをベースにして記載させていただき、停止用のみの設定などは適宜注釈を入れさせていただきます

カレントディレクトリの移動

使用ライブラリの定義

requirements.txtに

を追記します
※バージョンは記事執筆時点のPython SDKの最新バージョンです

スクリプトの作成

事前に確認しておいたDBシステムのOCIDを start_db_system() の db_system_id パラメータとして設定し、func.pyとして保存いたします
停止処理の場合は、start_db_system() の箇所を下記のように変更いたします

oci.authやoci.mysqlの詳細は、Python SDKのリファレンスをご参照願います

デプロイ

上記コマンドを実行し、lifecycle-appにデプロイします

スクリプトの実行確認

手動実行でスクリプトの確認を行います
停止処理はshutdown-mysqlで確認します

OCI Resource Schedulerの設定

以前の記事(OCI Resource Scheduler を利用して自動で起動と停止してみよう!)とほぼ同一設定であり、重要な変更点はリソース指定の箇所のみとなるため、リソース設定画面のみを記載させていただきます

同様に停止処理も作成いたします
※起動・停止の各アクションですが、OCI Functionsの実行時にパラメータ付与されませんでしたので、同一スクリプトでパラメータで分岐させるなどはできないようです

OCI Resource Schedulerのアクションの確認



OCI Resource SchedulerからOCI Functionsが実行され、HeatWave MySQLの起動・停止を行えていることが確認できました

まとめ

以上のようにOCI Functionsを組み合わせることで、HeatWave MySQLの自動起動・停止を実現することが可能となります
ただ、OCI Functionsを構築するためにはプログラミング知識が少なからず必要となりますし、エラーがあった場合などにはロギングサービスに出力されている情報から原因を特定する必要があるなど、少々敷居が高いのも事実としてあるかと思います
しかし、OCI FunctionsとOCI Resource Schedulerを組み合わせることで、非常に幅広いリソースを対象として、特定の時間に処理を実行させることも可能になります

OCI Resource Schedulerの対象サービスが拡充されるまでは、本記事で紹介したような単純なスクリプトでも、自動起動・停止を実現することができますので、ご一考願えれば幸いです

スマートスタイルTECHブログについて

スマートスタイルTECHブログでは、日頃OCIのサポート業務に従事している有資格者で構成された技術サポートチームがOCIに関する技術情報を発信しています。データベースのお困りごとはお気軽にご相談下さい。

よかったらシェアしてね!
  • URLをコピーしました!
目次