えいのうにっき

a-knowの日記です

ngrok の有償プランにアップグレードしてみた

動機としては、「こじんまりとした、"かわいい" Webアプリケーションを作っていて、ある程度動きはするけど完成度は低い。まずは、知人友人たちの間でわいわい遊べたら......」というのが始まり。

こういうとき、僕の小さな道具箱(少ない手持ちの選択肢)の中から、まずは GAE Standard Environment でホストすることを考えるのだけど、今回はこのアプリケーションが WebSocket を使っている、というのが、少しやっかいなポイントだった。なぜなら GAE Standard Environment は WebSocket をサポートしていない......。

そこから順繰りに、以下のようなソリューションを検討してみたのだけど、

  • GAE Flexible Environment
    • やりたいことはできそうだったけどシンプルに高そうだった。最低でも$50/monthくらいのコストが発生しそう......?
  • VPSやEC2的なやつ
    • プロビジョニング(この言葉って合ってるんだっけ)や、その後の運用がしんどい。。
  • Google Cloud Run
    • リクエストがないとインスタンスがシャットダウンされるという特徴が、今回のアプリケーション的には相性がよくなかった
  • AWS App Runner
    • AWS の Cloud Run みたいなやつ、くらいの理解しかなかった
    • Cloud Run と違って、リクエストがしばらくない場合にインスタンスはシャットダウンされるけどメモリは保持される?(※1)という情報を見てオッ、と思ったが、なんと WebSocket をサポートしていなかった。デプロイまでやったのに......
      • ※1: アプリケーションがアイドル状態のときにもコンテナインスタンスのメモリをプロビジョニングしておくことができる という記述を見て、そうなのかなと感じました

どれもソリューションとしてはそれぞれ素晴らしいプロダクトである一方、今回の用途がとにかく雑な目的、かつ予算が限られているということもあり、なかなか決めあぐねておりました。

そんなおり、ふと、「いまこの手元の Mac で雑に立ち上げてるやつを、そのまま知人友人に公開できたらいいだけなんだけどな〜」と、思い出したのが ngrok。

ngrok.com

以前に自分が ngrok を試してみたときはまだ世の中に出たての頃だったように記憶してるのだけど、今の ngrok を見てみると

と、いいかんじのことができるようになっていた(※2: 要・有償プランへのアップグレード)ので、今回それを試しにやってみた、という次第。

こちらの記事 ngrokで独自ドメイン、IP制限を利用する とかでもすでに試している方がいたりして、自分でもやってみて問題なく対応することができた。この参照記事が執筆された当時は、カスタムドメイン利用時の SSL 証明書は別途アップロードしなければいけなかったみたい?なのだけど、今回やってみた限りでは自動で適用されたものでエラーなく接続できることを確認した。

とまぁ、「やればできる」ことではあるけどだいぶワンパクなことをやっているとは思っていて、みんなで使うときだけ起動・そうじゃないときは停止、みたいなラフな運用をしばらく続けて、もうちょっとちゃんと使うか〜という気分になったときにはまた何か考えようかな、という、どこまでも雑でいることを大事にしています。

今回の活動は、ある特定のアプリケーションを恒久的に使うために、というよりは、いつでもこんなかんじの雑な使い方ができる ngrok アカウントを自分の道具箱に追加することができた、みたいなかんじで、これはまぁ気分的にも悪くないもんだな、と思ったりしています。