こんにちは!今週のAKARI Tech Blogは、DX Solution 事業本部 VPoEの丸尾が担当します!
今回は、リモートからオフィスネットワークへアクセスする方法を検討しましたので、ご紹介します。 ユースケースとしては、アウトバウンドIPをオフィスのIPアドレスに固定したい場面を想定しています。
開発環境ではオフィスのIPアドレスからのみアクセスを許可することがありますが、これではリモートワーク時に接続できません。 弊社ではしばらくTailscale Exit Node 機能を活用していましたが、コスト面を考え移行を検討しました。
比較表
まず、比較表をお見せします。
Tailscale Exit Node | AWS SSM + SOCKS プロキシ | |
---|---|---|
技術 | WireGuard ベース | SSMエージェント経由のTCP トンネリング + SOCKSプロキシ |
パフォーマンス | 高 | やや低 |
セットアップの難易度 | 低 | 中程度 |
権限管理 | Tailscaleのユーザー管理に準拠 | AWS IAM管理に準拠 |
コスト | $6/user/mo または$18/user/mo | 約 $5/mo/instance |
弊社では結論として、AWS SSMを使うことにしました。それぞれを詳しく見てみましょう。
Tailscale exit node
Tailscaleは、WireguardベースのVPNサービスです。燈のサーバー管理でもTailscaleを使っております。
Tailscaleはセットアップが非常に簡単で、アプリをインストール後、Google SSOでログインするだけでマシンをネットワークに参加させることができます。
Tailscaleにはexit nodeという機能があり、特定のインスタンスをexit nodeに指定すると、ユーザー側のトラフィックを全てexit node経由にできます。(ユーザー側で簡単にON/OFF可能です)
exit node機能を使うと、アウトバウンドIPアドレスをオフィスのIPアドレスに固定できます。
価格についてですが、企業プランとしてStarter($6/user/mo)または Premium($18/user/mo)が選択できます。弊社ではサーバー管理でSSH機能を利用したいためPremiumプランを契約しています。しかし、オフィスネットワークアクセスの用途のみを考えるとオーバースペックで高価だと感じました。
AWS SSM + SOCKS proxy
AWS Systems Manager(SSM)とは、インスタンス管理のためのマネージドサービスです。 Advanced インスタンスティアを有効にすると、オンプレミスサーバーも管理可能になります。
Advanced インスタンスティアを有効化し、社内ネットワークの踏み台サーバーにSSM Agentをインストールすることで、リモートからのアクセスやポートフォワードが可能になります。 また、Dante などの SOCKS プロキシサーバーを踏み台サーバーにインストールすれば、SOCKSプロキシを利用できます。
メリットとして、コストを大幅に抑えられる点があります。課金単位がインスタンスごとなので、ユーザー単位課金のTailscale Premium($18/user/mo)に比べ、約 $5/mo/instanceで利用できます。
ただし、Tailscaleと比べるとセットアップはやや煩雑です。ターミナルでSession Managerプラグイン経由のコマンド実行や、ブラウザでのSOCKSプロキシ設定が必要になるため、設定のハードルはやや高めです。
まとめと今後
今回はコスト面から AWS SSM へ移行することを決定しましたが、パフォーマンスやセットアップの手間を考えると、他の選択肢も検討の余地があります。 例えば、ALB(Application Load Balancer)にIdP認証(Google認証など)を組み込む方法も考えられます。全ての開発コンポーネントでIdP認証が利用できるわけではありませんが、可能な範囲で認証基盤を強化するのも有効です。
We're hiring
燈では、今回のような開発環境や全社基盤の構築を行うソフトウェアエンジニアを募集しています!少しでも興味を持っていただけたらカジュアル面談をしていただけると嬉しいです!