本ブログは、オラクル・クラウドの個人シリーズ・ブログの1つです。
初めに
土日祝など、長時間にわたりOCI(Oracle Cloud Infrastructure)インスタンスを使用しない場合は、コストを節約するために停止することをお勧めします。
OCIにて、インスタンスを自動的に起動・停止させたい場合、可能ですか?可能であれば、その実現方法について質問がある方に対し、解決方法を紹介したいと思います。
回答はまず可能です。インスタンスのタイプにより、やり方は少し異なります。
インスタンス・タイプ | ネイティブのスケジュール機能 | CLI/APIで実現 |
---|---|---|
Autonomous Database | あり | 可能 |
Compute | なし | 可能 |
Oracle Base DB | なし | 可能 |
MySQL DB Service | なし | 可能 |
Oracle Analytics Cloud | なし | 可能 |
OCI Data Integration | なし | 可能 |
Always Free ADBは、ネイティブの起動・停止スケジュール機能を含まない。
Autonomous Database
実現方法-1:OCIコンソールより起動・停止のスケジュールを設定する。
注意点:UTC時間となる。(JSTへの換算を忘れずに)
ADBの詳細画面 →「他のアクション」 →「自動開始/停止スケジュール」
次は、毎日のJST 18時 (UTC 9時)に自動停止する例です。
設定後、次のように、ADBの詳細画面で確認できます。
ADBは停止中の状態になってもスケジュールを設定できる。
実現方法-2:OCI-CLIで起動・停止用スクリプトを作成 (考え方は、次のComputeインスタンスと同様)。
ADBの起動:oci db autonomous-database start --autonomous-database-id <ADB_OCID>
ADBの停止:oci db autonomous-database stop --autonomous-database-id <ADB_OCID>
Computeインスタンス
APIでPython、Javaなどの言語でも実現可能ですが、OCI-CLIはおすすめです。
ステップ
- OCL-CLIで起動・停止用のスクリプトを作成する。
インスタンスの起動:oci compute instance action --action "START" --instance-id <Instance_OCID>
インスタンスの停止:oci compute instance action --action "SOFTSTOP" --instance-id <Instance_OCID> - 管理サーバから、定時に起動・停止用のスクリプトを実行する。
Linux OSの場合:crontabを利用
Windows OSの場合、Task Schedulerを利用
Linuxの実施例: 毎日18時(OSのタイムゾーン)、自動停止用スクリプトを呼び出す。
[opc@linux8 ~]$ crontab -l
00 18 * * * /home/opc/shell/compute_auto_stop.sh
-
--action
引数:"SOFT"なしで"STOP"を指定できますが、個人的に"SOFTSTOP"の使用をお勧めします。 - 管理用サーバは24時間稼働であり、料金を節約するため、低スペックでもよい。OCI Always Free Tier (Linuxのみ)でも動ける。
- 管理用サーバに、OCI-CLIのインストールとセットアッが必要。インストール方法については、この記事をご参照ください。
- 起動・停止対象インスタンスにタグをつけて、対象だけを起動・停止させるのは、よく利用されるケースです。
Oracle Base DB
これ以降の実現方法は、上記のComputeインスタンスと同様
DBノードの起動:oci db node start --db-node-id <DB_Node_OCID>
DBノードの停止:oci db node stop --db-node-id <DB_Node_OCID>
起動・停止対象は、DB systemではなく、DBノードです。
MySQL DB Service
DB Systemの起動:oci mysql db-system start --db-system-id <DB_System_OCID>
DB Systemの停止:oci mysql db-system stop --shutdown-type FAST|IMMEDIATE|SLOW --db-system-id <DB_System_OCID>
Oracle Analytics Cloud
OACの一時停止:oci analytics analytics-instance stop --analytics-instance-id <Analytics_Instance_OCID>
OACの再開:oci analytics analytics-instance start --analytics-instance-id <Analytics_Instance_OCID>
OAC一時停止中、課金が完全に止まるのではなく、通常の15%の課金が引き続き発生します。再開すると、通常の課金に戻ります。完全に課金を止めたい場合、OACインスタンスの削除が必要です。
OCI Data Integration
ワークスペースの起動:oci data-integration workspace start --workspace-id <Workspace_OCID>
ワークスペースの停止:oci data-integration workspace stop --workspace-id <Workspace_OCID>
以上です。
関連記事
オラクル・クラウドの個人シリーズ・ブログ
参考資料
MOS (My Oracle Support)
OCI Compute - How to Automate Stop and Start of OCI Instances (Doc ID 2876796.1)
OCI Compute - How to Schedule Start / Stop of an OCI Virtual Machine (Doc ID 2853159.1)
OCI Public PaaS/IaaS - What happens to the billing when you pause an Oracle Cloud Analytics instance (Doc ID 2934259.1)
MOSドキュメントの記載内容の抜粋:
OCI-CLI コマンド
Docs » db » autonomous-database
Docs » compute » instance
Docs » db » node
Docs » mysql » db-system
Docs » analytics » analytics-instance
Docs » data-integration » workspace
OCI ドキュメント
Schedule Start and Stop Times for an Autonomous Database Instance
インスタンスの停止、起動または再起動