常時ランニングしている IBM Cloud の使用量は変わってないはずなのに請求が来て何事かと思ったら、3月からIBM Cloud Foundry Publicの無料枠が削除されたために今月から請求が発生していました。
気付いていない、いや気付いたかもしれないが忘れていた自分が悪いのですが、IBM Cloudからの通知はどうも解りにくいような気がします(個人の感想です)
IoTの評価用に使用しているCloud Foundry App なので止める訳にも行かず、小マメにOn/Offすることにしました。スクリプトで実行できるようにCLIで実行する手順をメモします。
発端
IBM Cloud は Bluemix の頃から3年以上使用しているのですが、常時ランニングしているAppは1個なので無料枠の範囲でこのところ請求額はゼロが続いていました。
今月になってeメール 「IBM Cloud Billing Notice – May 16, 2020」で $28.64 支払いがあると通知が来ました。
使用量が増えた心当たりが無かったのですが、ググってみたところ詳細に解説されてる方がいらっしゃいました。助かりました。ありがとうございます。
CloudPenguins – jacopen さんweb
IBM Cloud (旧Bluemix) のアカウントを持っている人は今すぐクレジットカードの請求を確認すべき ※追記の追記あり
IBMCloudの使用量は変わってないはずなのに請求が来て何事かと思ったらこれだった。使い方見直さねば。> IBM Cloud (旧Bluemix) のアカウントを持っている人は今すぐクレジットカードの請求を確認すべき ※追記の追記あり – Cloud Penguins https://t.co/TMfW2LdM3Q
— 山添 知久(zoe)/IoT (@zoe6120) May 18, 2020
IBMからのアナウンス
そんな通知あったかなと思い調べたところ、2019-12-11 4:57 JST にこんなメール「We’re Updating Services on IBM Cloud — User Action Required」が来てました。
読んだかもしれませんがスルーしてたのかも。
リンク先の MORE INFORMATION を確認しないと詳細は分からず、しかも現在ははリンク切れです。
アナウンス自体はこちらの様です。
IBM Cloud Foundry Public is making updates to the default Standard plan.
通知は来てるし、読んで理解していない方が悪いと言われればその通りですが。なんとなく釈然としないのは私だけでしょうか。
それはともかく、使用する時だけ起動することで利用時間を削減することにしました。
Cloud Foundry App をIBM Cloud CLIで操作する
IBM Cloud の Cloud Foundry はCLIが有るので、WindowsなりLinuxなりインストールすればコマンドで操作可能です。
スタンドアロン IBM Cloud CLI のインストール
https://cloud.ibm.com/docs/cli?topic=cloud-cli-install-ibmcloud-cli&locale=ja
参考: IBM Cloud Command Line Interface
通常インストールしたIBM Cloud CLIの主なコマンドは以下の通りです。
ログイン $ ibmcloud login ターゲットの設定 $ ibmcloud target -g groupname ターゲットの確認 $ ibmcloud target --cf アプリ一覧 $ ibmcloud cf apps サービス一覧 $ ibmcloud cf services アプリのステータス等の確認 $ ibmcloud cf app app_name $ ibmcloud cf events app_name $ ibmcloud cf logs app_name --recent アプリの開始/停止 $ ibmcloud cf [start|stop] app_name ログアウト $ ibmcloud logout
ラズパイでCLIを使用する
IBM Cloud CLI はLinuxをサポートしていますが、ラズパイのRaspbianは未サポートです。
無理に使う必要は無いのですが、やはり使っておきたいですね。
ラズパイ上でビルドされている方もおられる様で、検索すると見つかります。
しかも、バイナリが公開されています。素晴らしい!
Cloud Foundry CLI binaries for Raspberry Pi
https://github.com/mmb/cf-cli-pi
こちらを有難く使わせて頂きました。
ラズパイにCLIバイナリをインストールしてみた
READMEにあるように /usr/local/bin にダウンロードして、実行権限を追加し、シンボリックリンクを作成します。
$sudo wget https://cf-cli-pi.s3.amazonaws.com/cf_6.42.0_2019-02-03
$ sudo chmod +x cf_6.42.0_2019-02-03
$ sudo ln -s /usr/local/bin/cf_6.42.0_2019-02-03 /usr/local/bin/cf
これでCLIが使えます
$ cf --version
cf バージョン 6.42.0+4947847c5.2019-02-03
ラズパイからシェルスクリプトでIBM Cloud CLIを使用する
cron で実行する際には sudo で実行する方が良いようです。
例:
#!/bin/bash
# login
sudo cf login -a https://api.xx-xxxxx.cf.cloud.ibm.com -u username@example.com -p password -o myORG -s mySpace
# stop my-app-01
sudo cf stop my-app-01
# show my-app-01 event log
sudo cf events my-app-01
# logout
sudo cf logout
パスワードが平文ですが、そこはまあ…
実行結果を確認
eventsを取得してみます。
$ cf events my-app-01
username@example.com として組織 myORG / スペース mySpace 内のアプリ my-app-01 のイベントを取得しています...
時刻 イベント アクター 説明
2020-05-18T18:10:14.00+0900 audit.app.update username@example.com state: STOPPED
2020-05-18T18:00:31.00+0900 audit.app.update username@example.com state: STARTED
2020-05-18T17:50:21.00+0900 audit.app.update username@example.com state: STOPPED
無事に起動/停止できたようです。
まとめ
2019年8月にもIBM CloudのNode.jsのアップデートに伴いアプリが起動しなくなるミスをやらかしたのですが、学習効果も無くミス再びです。
注意を怠っているのはこちらで、弁解の余地はないのですが、メインで使用していないクラウドに割く時間は限られておりどうしても何かコトが起こってからの対応になってしまうのは避けられない気もします。
IBM Cloud に非は無いのかもしれませんが、では今後も変わりなく使い続けるかと言えばそんな訳もなくこれでますますAWSメインになる気がします。
関連記事
IBM Cloud で Cloud Foundryアプリの起動エラーが発生したのは cflinuxfs3 へのupdateに伴い Node.js 4.x がサポート外となったことが原因(解決済み)
追記
2020-05-19 追記: 通知されていないユーザがあり、公式からもアナウンスが出ています。
IBM Cloud で Cloud Foundry Public をご利用いただいているお客様へお詫び申し上げます