見出し画像

開発日記(2024/05/19)毎日のアプリダウンロード数を通知してもらうためのコスト

取り敢えず一連の開発に一旦の目処が立って良かったは良かったのですが、若干妥協している部分があるので、最後にそこを確認しておこうと思います。

元々の目的開発モチベの向上なので、できる限りリアルタイムに、つまり臨場感を持って、アプリがダウンロードされたことを知りたいのですよね。

ということで、公式が提供しているウィークリーのレポートよりは、今回実装した現状の通知機能はデイリーでお知らせしてくれますからベターであることは間違い無いですが、欲を言えば"今"ダウンロードされたよ!くらいの臨場感が欲しい。。。

そうすると、仕様としては、それなりの頻度でAPIを叩いて、戻り値の値が増えていれば、その差分を当日の新規ダウンロード数として通知してやるという方法しかないのではないかと考えました。

でもこれはAPIの実行回数が増えることになるので、コストとトレードオフなのですよね。ということでタイトルです。

例えば、3時間おきにAPIを実行するなら、1日8回ほどAPIを実行することになるので、月に240回程度。

ASCのAPIは何度叩いても無料ですから考慮不要として、問題はGCP
(Cloud Functions(GCF)とCloud Schedulre(GCS))とLINEボットのMassaging APIですね。

GCFはASCにダウンロード数を聞きにいく処理とLINEボットにメッセージの配信をリクエストするための処理の2本が実行されることになります。だから月に500回程度実行があるということに。

で、料金体系を確認してみると、そもそもまず、GCPが新規ユーザーには無料枠を$300も付与してくれます。

新規のお客様には、Google Cloud プロダクトを試して概念実証を実施できる $300 相当の無料クレジットを差し上げます。完全な有料アカウントが有効になるまで料金は発生しません。

円安のおかげで¥45,404 クレジットとのこと。ただ有効期限は7末なので、とてもじゃないですけど使いきれないですね。。LLM系か何かお金のかかるトライアルしたいなら今ですが思い当たらないなあ・・・

で、GCF側の課金体系については下記とのこと。

Cloud Functions の料金は、関数の実行時間、呼び出し回数、関数に対してプロビジョニングしたリソースの数に応じて決まります。

で、こちらにも無料利用の枠があって、

無料枠では、200 万回の呼び出しに加えて、1 か月あたり 400,000 GB 秒、200,000 GHz 秒のコンピューティング時間、5 GB のインターネット データ転送を利用できます。

とのこと。太っ腹だなあ。さっきの試算だと呼び出し回数なんて、月500回ですからね。全然余裕ですね。

実行時間のGHz秒というのは電気代のkWhみたいな従量課金の概念ですね。HTTPでテキストデータやりとりしてるだけですから、こちらも余裕でしょう。

ただ、アウトバンドデータだけは無料枠の対象外とのこと。今回のケースだと、LINEボットのAPIにリクエストを送りに行く部分は外部送信ですから、該当しますよね。$0.12/GBとのことですが、これはGB単位の課金なのだろうか。(であれば、1GBなんて絶対行かないので無視できる。)

まあ1GBでも20円とかですから、全然コストに織り込んでもいいですけどね。決済する方がGoogleさんにはコストになってしまいそうな規模ですが・・・

あとは、上記に記載なかったですが、関数のデプロイに課金されるとのこと。よくよく読んでみるとデプロイそのものというより、関数を保存しておくストレージに対する課金ということみたいですね。といっても$0.026/GBですから、さして問題になる額では無いです。

Container RegistryではなくてArtifact Registryに保存すれば、こちらは無料枠があるそうなので、さらに費用を抑えられるとのことですが、そもそもどちらに保存されているのだろう。時間があったら対応するくらいでいいかなと思います。

GCSについては前回の記事で触れた通り3ジョブまで無料とのことなので、現状は(1本なので)考慮不要ですね。

ということで、本件のGCPのコストはまあ月額20円以下と見通しがたちました。無いみたいなもんですね。

次に、LINEボットの料金ですが、無料メッセージ通数は月に200通とのこと。それ以上は従量課金ではなくて送れなくなってしまうみたいですね。

送信先のアカウントは現状自分だけですから、1日3通までなら無料枠で収まりますね。さっきは3時間おきの1日8通で試算していましたが、悲しいことに1日1回ダウンロードがあればいい方なので、50通も送れれば十分と思います。なので、これなら問題ないでしょう。無料!!!

ということで、やりたいことに対するコストは月20円以下ということが分かりました。なんくるないですね。

と、せっかくここまで試算しておいてお恥ずかしいのですが、改めてASCのAPIの仕様(というかセールスレポートの仕様)を見てみたところ、そもそも上記はできないみたいですね。

前日分からしかレポートは確認できないようなので、リアルタイムに当日分のレポートの値が更新されたりはしないみたいです。

確認できるのは前日の実績まで


残念だな〜と思いつつ、できるとなったらその分改めて改修しなくてはだったので、悲しいような嬉しいような。

いずれにせよ、「前日のダウンロード数をLINEで通知してくれる」までが今回の成果となりました。

次回は一度全体のまとめ記事を書こうかな。明日・明後日は飲み会なので、最速22日に更新できたらいいなと思います。おつかれさまでした!

ご覧いただきありがとうございます。とても嬉しいです。