ngrokを使ってお手軽にWebサーバを公開する話

これはうちのWebサーバの古いMBP
趣味で作ってるLINEbotが乗っています。

f:id:iine_programming:20190827194929p:plain

VPSクラウドを使わずに自宅サーバを立てようと思ったときに、
一般家庭用のLANで固定IPをどう実現するかっていうのが結構厄介です。
いいねも遊び・勉強用に自宅サーバを立てたいなあと思うも、そこがネックになっていました。

そんなときにインターネットで見つけたのが、ngrokというアプリ。

ngrok.com


ngrokを使うと、ローカルのネットワークを外部公開することができます。

使い方

使い方はこれだけ。

①ngrokのダウンロード

②ngrokの実行

# httpの8080ポートを公開したい場合
ngrok http 8080 


実行するとこんな画面になります。
httpとhttpsの2つのアドレスが用意されており、
必要に応じて使い分けることができます。
LINEbotのMessaging APIの場合はHTTPS通信が必須なのでありがたいです。

ngrok by @inconshreveable                                       (Ctrl+C to quit)
                                                                                
Session Status                online                                            
Account                       ひよりあや (Plan: Free)                           
Version                       2.3.34                                            
Region                        United States (us)                                
Web Interface                 http://127.0.0.1:4040                             
Forwarding                    http://*********.ngrok.io -> http://localhost:8080 
Forwarding                    https://**********.ngrok.io -> http://localhost:8080
                                                                                
Connections                   ttl     opn     rt1     rt5     p50     p90       
                              0       0       0.00    0.00    0.00    0.00        

また、ngrokはアカウント登録を行うことができ、
アカウント登録を行わないと8時間ほどで接続が切れてしまうようです。
いいねは現在Freeプランで登録をしています。

まとめ

ngrokを使うと、自前でWebサーバを用意するときに必要なポート解放や固定IPの設定をスルーすることができます。
また、HTTPSのURLも発行してくれるため、SSL通信を行うための準備も必要ありません。
無料でTCPのトンネリングを時間制限無しでやってくれるのはなかなか凄いことではないでしょうか。
プログラミングしたPCからアプリをサッとそのまま公開して見せたり、っていう使い方もいいかも。

※最近、同様のサービスとしてserveoというアプリケーション無しで同じことができるものがあり、そちらも気になっています。