Azure Container Service で Kubernetes を使う記事を前回書きました。
今回は Azure Container Service(ACS) を立ち上げっぱなしにしているとお金が結構かかるので、節約する方法をご紹介します。
Azure Contaner Service の料金について
ACS は、Virtual Machines (VM) をコンテナー サービスにクラスタリングする無料のサービスです。VM と、関連するストレージとネットワーク リソースの使用した分だけをお支払いいただきます。
と、書いてあるとおりでコンテナーの管理サービスは無料ですが、中で動くVMなどのリソースの分お金がかかります。
具体的には今回サンプルで作ったリソースグループ内は全部で30リソースあり、次のようになっています。
特に仮想マシンはノード5つ分とマスター3つ分で合計8台あります。F2sで作成しましたので、8,727.12(円/月) * 8 (台) = 69,816.96(円/月)と中々痛い金額になってしまいます。
その他ストレージやパブリックIPアドレスなども出費はあるのですが、仮想マシンと比べれば微々たるものです。
仮想マシンを使わないときは割当を解除する
結論から言うと、Azure CLI などを使用してリソースグループ内の仮想マシンをすべて割当を解除すれば良いです。コマンドはこちらです。k8s-southeastasia
をお使いのリソースグループ名に置換してください。
az vm deallocate --ids $(az vm list -g k8s-southeastasia --query "[].id" -o tsv) --no-wait
--ids
オプションで複数のリソースIDを受け取って処理してくれます。
仮想マシンを使うときに開始する
開始もほぼ同様に次の通りです。同じようにk8s-southeastasia
をお使いのリソースグループ名に置換してください。
az vm start --ids $(az vm list -g k8s-southeastasia --query "[].id" -o tsv) --no-wait
Tips:仮想マシンをシャットダウンするだけでは課金は止まらない
実は stop
というコマンドもあるんですが、こちらは仮想マシンをシャットダウンをするだけで割当を解除しません。
az vm stop --ids $(az vm list -g k8s-southeastasia --query "[].id" -o tsv) --no-wait
なにがダメかというと、シャットダウンしただけでは課金は止まりません。
ポータルで確認すると次のような画面になっています。
ちゃんと注意が出ていますね。理由はこちらにも書いてあります。必ず割当を解除するようにしてください。
まとめ
stop を使いたくなりますが deallocate を使いましょう。