ngrokが超絶便利!だけど不満もあるという話

仕事

動機

Webアプリケーションの開発を請けていると、途中経過などお客さんに動作を見てもらいたいときがある。

そういうときのためにVPS契約しておくとか、あるいはAWSなどIaaSをそのときだけ立ち上げてデプロイして~とやるのが王道だと思う。

ただ開発自体をローカル環境でやっていると、いちいちサーバー立ち上げるとかデプロイするためにアップロードするとか面倒くさい。。

その都度手作業するのを自動化するためにCI/CDを組むというのも良いのだろうけど、本番サービスでもないし、テスト環境ですらない、レビュー環境を必要なときだけ作るためだけにそれをするのもイマイチモチベーションが上がらない。

そんな人達のために存在するのがngrok

こいつは超絶スグレモノ。

ngrok

準備はngrokにアカウント登録して、ngrok.exe(Windowsの場合)をダウンロードして、コマンドプロンプトから起動するだけ。

例えば、僕は今仕事でSpring Bootを使ったWebアプリケーションの開発をしているので、
http://localhost:8080
でデバッグしている。

この環境をそのままインターネットからアクセスできるようにするには以下のコマンドを打つ。

> ngrok.exe http 8080 --region jp

これはローカルの8080ポートhttp(s)でアクセスできるようにする、という意味。
最後の–region jpはなくても動くけど、アメリカ経由のアクセスになるので物理的な距離によるネットワーク遅延があるため、付けた方がスピードが速い。

コマンドを叩くと以下のように表示される。

ngrok by @inconshreveable                                                                               (Ctrl+C to quit)

Session Status                online
Account                       chaki (Plan: Free)
Version                       2.3.35
Region                        Japan (jp)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://cb3d6e32.jp.ngrok.io -> http://localhost:8080
Forwarding                    https://cb3d6e32.jp.ngrok.io -> http://localhost:8080

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

これを立ち上げている限りは、Forwardingに記載されている
http(s)://xxxxxxxx.jp.ngrok.io
にアクセスすることで直接ローカルの8080番にアクセスできるようになっている。
このURLをお客さんに教えて見てもらうことができる。
xxxxxxxxの部分はngrokを起動する毎にランダムな文字列が付与されるので、都度変わる)

確認してもらうタイミングを終えたらCtrl+Cやコマンドプロンプトを閉じてシャットダウンしてしまえば良い。

しかもSSLにも対応しているし、パラメータのオプションでベーシック認証をかけることだって可能。

日本リージョンにだって対応しているし、無料でここまでできるとは…まさに至れり尽くせり。最高か!

すごく便利…だけど不満もある

これまで書いた通りのことがngrokを使って無料でできるのは素晴らしいことだ。
また、外部に公開するタイミングが少なければこれで十分だと思う。

ただ、僕のケースでは

  • お客さんにURLを告知するものの、いつ見てもらえるかわからないので、ある程度の期間立ち上げっぱなしにしておく必要がある
  • その間にOSアップデートなどによる再起動がかかることがあると、ngrokのURLが変わってしまい、その度にURL変更の通知をしないといけない

特にランダムに変わるURLが一番のネックだった。

ngrokの有償プランにアップグレードすれば、カスタムサブドメインが使えるようになって、この不満から解消されるのだろうけど…
これだけのために毎月約500円を支払うのはなぁ…正直毎回URL伝える作業をガマンして続けようかなと思うレベル。

コメント

タイトルとURLをコピーしました