LoginSignup
3
1

OCIインスタンスの自動起動・停止

Last updated at Posted at 2023-11-07

本ブログは、オラクル・クラウドの個人シリーズ・ブログの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はおすすめです。

ステップ

  1. OCL-CLIで起動・停止用のスクリプトを作成する。
    インスタンスの起動:oci compute instance action --action "START" --instance-id <Instance_OCID>
    インスタンスの停止:oci compute instance action --action "SOFTSTOP" --instance-id <Instance_OCID>
  2. 管理サーバから、定時に起動・停止用のスクリプトを実行する。
    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ドキュメントの記載内容の抜粋:
image.png

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
インスタンスの停止、起動または再起動

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1