Log in to leave a comment
No posts yet
無料のトンネリングツールを使いながら、実行するたびに変わるランダムなURLにストレスを感じる状況は、開発者にとってはお馴染みの光景です。ngrokのようなサービスを使うと、再実行のたびにURLが変わり、その都度StripeやGitHubの設定ページに移動してエンドポイントを新しく入力しなければなりません。単純な反復作業ですが、一日に3〜4回繰り返すだけで20分は簡単に消えてしまいます。年間で計算すると、一人の開発者が80時間もウェブフックアドレスのコピー&ペーストに費やしていることになります。
zrokはこの退屈なプロセスを一瞬で解決します。zrok reserve public localhost:8080 コマンドで、自分専用の固有ホスト名をあらかじめ確保してください。次に共有コマンドを入力する際、予約した名前をマッピングすれば完了です。これでターミナルを再起動しても、PCをリブートしても、外部サービスに登録したウェブフックアドレスは変わりません。一度の設定で、アドレス修正の時間を完全になくすことができます。
ターミナルを複数立ち上げ、一つはサーバー、もう一つはトンネリングツールを手動で実行する方式は、ミスを誘発しがちです。サーバーは動いているのにトンネリングを忘れてしまい、外部APIのレスポンスを損失する状況は非常に厄介です。zrokはOpenZitiネットワークオーバーレイを使用しているため、コンテナ環境との親和性が非常に高いのが特徴です。
最もスマートな方法は、docker-compose.yml ファイルにzrokサービスを直接組み込むことです。openziti/zrok イメージを使用し、.env ファイルに発行されたトークンを入れておくだけで済みます。このように構成すれば、docker compose up コマンド一つでバックエンドサーバーと外部通信用のトンネルが同時に立ち上がります。チームメンバーも別途ツールをインストールしたり設定したりする必要がなく、全く同じ開発環境を共有できるようになります。手動設定によるヒューマンエラーを構造的に遮断する、最も確実な手段です。
ローカルで作業中のAPIを同僚に見せる際、パブリックURLを生成するのはセキュリティ的に不安が残ります。URLさえ知っていれば、誰でも自分のローカルDBを操作できてしまうリスクがあるからです。zrokは公開URLを作らずに安全に通信できる「プライベートシェア」機能をサポートしています。
仕組みはシンプルです。自分が zrok share private http://localhost:8080 を実行すると、固有のトークンが発行されます。このトークンを同僚に伝えれば、同僚は自分のターミナルで zrok access private [トークン] を入力します。これで同僚は自分のPCの localhost:9191 を通じて、私のローカルサーバーにアクセスできるようになります。外部インターネットには露出せず、メンバー間だけで通じる仮想通路ができるのです。別途VPNサーバーを構築することなく、エンドツーエンド暗号化が適用されたコラボレーション空間を即座に作成できます。
データ転送量が増えると、商用サービスの無料プランはすぐに限界に達します。速度が低下したり、帯域制限に引っかかったりして、テストが中断されることもしばしばです。zrokはソースコードが公開されているため、企業内部のサーバーや安価なVPSに直接コントローラーを構築できます。
セルフホスティングで運用すれば、年間100ドル近くかかる有料プランの費用を、月5ドル程度のサーバー維持費に置き換えられます。単にコストを抑えるだけではありません。専用サーバーを使えばQUICプロトコルを有効化できるため、SaaSと比較してネットワークパフォーマンスが目に見えて向上します。レイテンシが短縮されるため、大規模なデータをやり取りするAPIテストも非常に快適になります。ツールの制約に合わせる開発ではなく、自分の環境に最適化されたツールを手に入れることができるのです。