WireGuard を試してみました。2拠点(複数拠点)の Docker 環境をVPNで繋げてコンテナ同士をLANで繋げたいという動機からです。
VPNというと本店支店の拠点間接続とかリモートワークで家から会社へ繋げるといった用途が思いつきそうですが、ここでは Docker のコンテナのみを仮想LANで繋げる形です。
というわけで docker-compose としてまとめたものを github に置いてあります。
https://github.com/tr-takatsuka/wireguard-bridge-docker[1]
用途としては、WebサービスのDBスレーブ(セカンダリ)を遠隔地に設置するとか、データのバックアップ先を別業者のクラウドサービスに置くとかを想定しています。
AWSとかが用意した仕組みに全てを依存する設計のものには向いてないかもですが、オンプレサーバーやコンテナレベルで運用してるようなケースでは選択肢になるかもと思います。昨今は「ランサムウェア」が流行語ノミネートもあり得そう(個人の妄想です)なほどにバックアップの重要性は増してそうですし・・。
WireGuard という新しめで且つデファクトになりそうなVPN技術を使って、小難しい設定はナシでとにかくネット越しのコンテナ同士を安全に繋げるならこんな感じかなーと思い作ってみました。
VPNの対象はコンテナのみとしているのでホストOSへの影響もほぼなく(--net=host にはしていない)、上位のルーターの設定変更なども不要。
鍵情報を分離し別ファイルにしてソース管理対象外にしたりと、使い勝手とセキュリティも考慮しています。
使い方などはコチラの README [2] をご参照ください。
(This host) = https://thinkridge.com