こんにちは。拓です。

つい先日まで、自分の作ったウェブアプリをインターネット上へ公開(デプロイメント)するためにGoogle Cloudが提供するApp EngineというデプロイサービスとMemorystore for Redisというデータベースサービスを使っていたんですが、これの月額のコストがまあ高くて財布がカツカツ状態になってしまってました。

そこで、**「もっと安くデプロイできる方法なんかないかなぁ…」**と探してたら、今の自分に役立ちそうな方法を三つ見つけました。

  1. 「Google Cloudを使い続けるのであればデータベースサービスをFirestoreに変えることで安く抑えられる」という方法。
  2. 「Cloudflareというサービスでアプリのデプロイ簡単に安くできるよ」という方法。
  3. 「ngrokというサービスを使うと無料でインターネット上にアプリ公開できるよ」という方法。

このうち二つ目のCloudflareを使う方法については、**「私の作ったアプリの場合、現時点では使えない」**ということが分かりました。

Cloudflareの公式ドキュメントやコミュニティでの回答によると、**Pythonで動くアプリに向けたサービスはまだ試用段階で制限が多く、一部のライブラリで構成されたアプリしかデプロイできないようで、私のアプリはそのCloudflareで対応しているPythonライブラリを使ってなかったため、このサービスは使えませんでした。**詳しい内容は別の記事に書いてるのでそちらをご覧ください↓

CloudflareでFlaskアプリはデプロイできないっぽい?

さて、残るはあと二つの方法なんですが、Google CloudのFirestoreを使う方法は、Memorystore for RedisからFirestoreに切り替えると無料枠が使えるので、今まで7,000円近くかかっていた月額料金を、アクセス数がまだ低い今のうちはこれがまるまるタダにできる可能性があります。これはおいしい!

とはいえ、今より安くなるもののApp Engineの利用にかかっていた月額料金自体はそのままです。これには毎月計6,000円程度かかってます。また、データベースをFirestoreに切り替えるためにデータセットに使っているファイルタイプを変えたり、設定ファイル(yamlファイル)の設定をいじらないといけないので少々面倒なんです。

これを試す前に三つ目の「ngrok」というサービスについて知っておきたい!そう思い色々調べて実践してみました。

結論から言うと、「メチャ使えるんだけど、期待してたものとはちょっと違った。」というのが正直な感想です。

それがどういうことなのか?ngrokって一体どんなサービスで、何ができてるのか?どう設定すればいいのか?どんな時に使えるのか?今回はそれをできるだけカンタンにまとめました。

こうしてまとめておくと、後々自分が見返した時に役に立ちます。なのでほぼ自分のためなんですが、僕と同じように「**アプリ作ったのにデプロイにコストかかりすぎてしんどいよ…」**という方の助けに少しでもなれればと思います。