IBM Cloud CLI でCloud Foundryアプリを起動/停止する – IBM Cloud Foundry の無料枠が削除されたので小マメにOn/Offしよう

常時ランニングしている 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) のアカウントを持っている人は今すぐクレジットカードの請求を確認すべき ※追記の追記あり

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 をご利用いただいているお客様へお詫び申し上げます

IBM Cloud Foundry Public プラン変更のお知らせ

コメントを残す

メールアドレスが公開されることはありません。

fourteen + four =