ngrok代替を探して、CloudFlaredに辿り着いた話

August 07, 2023
Author(著者):
beaver
CloudFlared
ssh

前提

随分と前にはなりますが、ngrokが有料化しましたね。

今回は、ngrok有料化に伴い、代替サービス・手段を模索してたらCloudFlaredに辿り着いたという話になります。

なぜngrokが必要だったか

ユースケースとして、Raspiで構成したロボットなどをインターネット越しで操作したいことが多々あります。

例えば、つい最近になるのですが、新ROBO剣というロボコンのプレ大会に参加しようとしたところ、別イベントが重なってしまったことがありました。

その際に、ロボットだけを持って行ってもらい、遠隔から操作を行うといったことをしたのですが、冒頭の通りngrokが一部有料化してしまい困ってしまいました。

その際は一旦1回線が一時的につながれば問題なかったので、ngrokの無料枠でことなきを得たのですが、ロボットが増えたり、固定のドメインが使えないなど多くの問題が露呈しました。

代替手段1 SSHポートフォワーディング

まず代替手段として考えたのがSSH Portfowardingです。

https://tech.fez-inc.jp/5d386d80756c4295822bef7a7b615907

この記事にあるように、ngrokの代替手段と検索した時にヒットしたためです。

この手段では、sshコマンドに用意されている、RemoteFowardingを使用して接続先のポートを、ネット上のサーバー(ここではLightSail上に用意したインスタンス)にマッピングする方法です。

この方法の利点としては、例えばLightSailなら月額3.5ドル程度で実現が可能と、ngrokよりも安く使うことができることが挙げられます。

また、LightSailのIPをDNSに登録しておけば、固定ドメインでアクセスも可能になります。

ただし、すべての通信経路がLightSailを経由するため、LightSailのリソース状況に大きく左右されます。

代替手段2 CloudFlared

そんなSSHポートフォワーディングを試して、接続できたと喜んでいたのも束の間、見つけたのがCloudFlaredです。

CloudFlaredは、CDNやDNSで有名なCloudFlareが提供しているもので、少し前までCloudflare Argo Tunnelと呼ばれていたようです。

仕組みとしては、ngrokに近く、TunnelをCloudFlareとPC間で作成して、新たに発行されたドメインに紐づけてくれる(Proxyしてくれる)仕組みになります。

このサービスのすごいところが、基本的に無料で使えることと、ドメインを取得(正確にはCloudFlareでDNS管理している)場合に、サブドメインにこのProxyを使えるというところです。

つまり、無料でサブドメインに固定できる上に、ほぼ無制限(公式ドキュメントによると1000Tunnelまで)で使える、ProxyのスピードもLightSailに比較できないほど早い環境が作成できます。

つまり、コスパで考えるなら、

CloudFlared >>> SSHポートフォワーディング(LightSail) > ngrok

パフォーマンスで考えるなら

CloudFlared ≒ ngrok >> SSHポートフォワーディング(LightSail) 

となり、どれをとってもCloudFlared一択となりました。

Proxyできる種類としても、SSHだけでなく、HTTP, UNIX, TCP, RDP, UNIX+TLS, SMB・・と非常に多岐に渡り、SSHできる時点で、なんでもフォワードできそうです!

今後このブログで、CloudFlaredを使って複数ルート登録する方法をお伝えできればと思っています〜。


copyright © 2024 beavers-hive.com