GASからCloud Functions移行の際にはLogginコストに注意
Google Cloud PlatformのCloud Functionsはとても便利な機能です。
エンジニア本職でない方で簡単なスクリプトを書く際は、通常Google Apps Script(以下、「GAS」)を使われると思いますが、30分の制限時間があったり、実行の安定性を欠く、管理が難しい、ライブラリに乏しい等の課題も存在します。
GASに限界を感じた際に、次に検討をすることになるのがサーバーレスで機能するAWSのLambdaや今回のCloud Functionsになると思います。
Bigqueryなどの他のGCPサービスとの親和性から私はよくCloud Functionsを利用しているのですが、GASと同じ要領で丁寧にコードを書いてしまうと無駄にコストがかかってしまうのでご注意ください。
スクリプトを書く際は、デバッグのためにLogger.logやconsole.log、printなどの機能を使ってログを出力することが一般的だと思います。
特に個人でちょっとしたスクリプトを書いているような場合だとついついログの出力部分を多めに盛り込んだまま残してしまうなどもあるのではないでしょうか。私はありました。
そのようなログ確認用のコードを残したままCloud Funtionsを利用すると、Cloud Loggingというサービスで面白いように課金されてしまうので注意が必要です。
ちなみにこれが毎回数十万単位でログを吐き出すスクリプトを1日4回起動させていた際の課金額。ずば抜けて高いわけではないものの、無駄でしかないコストです。
Cloud Functionsを活用する際には無駄なログ出力をしていないか、コードをしっかりとレビューし最適化をして利用するようにしましょう。
誰でもが非常に便利かつお手軽にクラウドサービスを活用できるようになった一方で、クラウド破産なんて言葉も出てきているように、知らず知らずのうちに高額の請求になってしまう、、なんてことも他人事ではありません。
サービス利用のコストはしっかりとモニタリングをする体制を構築しておくのが望ましいでしょう。