proxy
ngrok

ngrokを利用して開発環境をグローバルに公開する

https://www.328.moe/post/ngrok/ のコピーです。

1年前くらいから利用してたんですが、最近また調べてたので
メモ書きとして残す。

ngrokはNATやFW以下にあるローカル環境を、
インターネット越しアクセスが可能にできるサービスです。

開発環境で作成したWebアプリケーションを、
ちょっとだけインターネット越しに誰かに見せたい時とか、
APIの検証でどうしてもグローバルに出さないといけない場合
(例えばTwilioでローカル環境のTwimlを読ませたい時とか)があって
ちょっと見せたいだけなのに、
AWSにインスタンス立て公開するのも少し面倒なので
どうやろうか悩んでいた時にngrokを見つけました。

ngrokはbrewで入れたりできるので導入はすごく簡単です。
v1のときは無料でsubdomainを固定化できたんですが、
v2から有料オプションになっちゃったようで少し残念です。

あとは、扱えるセッション数が限られているので、
2人で同時アクセスしたりすると片方弾かれたりします。
それだけ聞くと不便な感じもしますが、
特定の人にちょっとだけ閲覧できるURLを作成して公開する分にはとても便利です。

インストール方法とか、扱い方とかはいろんなサイトで紹介されてるし
公式サイトのDocsにも載ってるので割愛しますが、
ngrokコマンド実行時にregionの指定だけやっておいたほうがいいです。
それか、~/.ngrok2/ngrok.yml に記述しておく。

$ ngrok http 2280 --region=ap

ドキュメントにも書いてあるんだけど、デフォルトはusになっています。
なので、全ての通信がus経由になってしまうため
ngrokから発行されたURLからアクセスするともっさり感すごいです。

ちなみに今は、us, eu, ap, auの4リージョン選べるようです。

あとは、企業ネットワークから使う場合は
ちゃんとセキュリティポリシーの確認をしましょう。
あとでセキュリティチームに怒られる可能性もあります。

あとは、開発環境のデバッガーをうっかり
上げたまま公開するのも注意が必要です。
過去にCakePHPでDebugKitを有効にしたまま公開しちゃって
環境変数に埋め込んだキーを取っ替える作業が
発生したりしたこともあったので気をつけたいところです。