oracleにAlwaysFreeを回収されたくない
サーバーをoracle cloudにした
サイトを作ってまだちょっとしかたってませんが、サーバーをロリポップからociのalways freeのあの無料サーバーにしました。
もともとはロリポップを借りてサイトを使用していました。私のサイトはnext.jsでフロントエンド、headlessCMSとしてバックエンドでwordpressを使用しています。そして、next.jsでビルドした静的なページをアップロードしていました。
一応wordpressを更新するたびに自動でビルドされる仕組みは作っていたんですが、いい加減毎回毎回ビルドしてそのビルド時間待つのめんどくせぇなと。そう思ったとです。
しかしそこで思い出しました。数年前にoraclecloudのAlwaysFree枠のインスタンスを取って、しばらく放置していたことを。あの最大4OCPU,24GB相当のarmサーバー無料で使えることを。一応プロセスは動かしていたので問題なくログインできました。ただ、改めてAlwaysFreeの説明を見ると、
重要
アイドル状態のコンピュート・インスタンスの再利用
アイドル状態のAlways Freeコンピュート・インスタンスは、Oracleによって再利用されることがあります。7日間の期間中に次のことが当てはまる場合、Oracleは仮想マシンおよびベア・メタル・コンピュート・インスタンスをアイドルとみなします:
- 95%ileのCPU使用率が20%未満
- ネットワーク使用率が20%未満
- メモリー使用率が20%未満(A1シェイプにのみ適用)
こんなことが書いてありました。
まずいです。今まではそれなりに重いプロセスを永遠と実行していましたが、これからちゃんと整備すれば全然メモリ20%以上も行かないことも多いです。普通の無料サーバーなら簡単に突き抜ける制限ですが、今回の場合はせぷっくが高すぎるゆえの制限ですね。
私は一度設定ミスにより二つ確保していたインスタンスのうちの一つを手放しています。もう一つのインスタンスだけは何としてでもリソースの回収は避けなければならない。そうして私は作り上げました。
Dynamic Dummy Mem
動的にダミーメモリを作ってくれるサービスです。
コンフィグで決めたメモリのサイズになるまでメモリの量を監視して、動的にダミーメモリを作ってくれます。
つまり、4GBに設定していて、現在のメモリの総使用量が4GB以下の場合は、合計4GBになるまでメモリを足してくれます。そして、4GBを超えている場合、それ自体が消費するメモリは0になります。
まあ、自分は少ししかメモリを利用していないのに、oracleから見たら、常に4GB以上は使っているように見えるわけです。
そのため、アイドル状態とはみなされず、リソースの回収もされなくなるわけですね。
インストール
使い方はgithubにあります。
以下のリポジトリからリリースをダウンロードして
https://github.com/Kannuki-san/dynamic-dummy-mem
以下のコードでインストールしてください。
sudo apt install ./dynamic-dummy-mem_x.y.z_all.deb
アンインストールは以下の通りです。
sudo apt remove dynamic-dummy-mem
その他
dummy-mem-status #今の状態を確認
watch -n1 dummy-mem-status #状態を確認
ubuntu以外の方はソースもサービス化のテンプレも置いてあるので自分でやってください。
ちなみにreadme.mdはAIに作らせました。