AWSで拠点間VPN接続をするのであれば、通常はマネージドサービス(AWSサイト間VPN接続)を使います。しかし、0.048USD/hourの費用、1か月(744時間)で35ドル強の費用が掛かり、個人で使うには厳しい金額です。
そこで、できるだけ安く拠点間VPNを行うための方法を模索し、定期的にQiitaに載せていたのですが、ようやく実現したのでこの記事でまとめておきます。
節約のポイント
- AWS側のVPNサーバとしてEC2を利用し、ソフトウェアはLinuxベースのstrongSwanを使用
EC2のインスタンスタイプは、現状AWSで最安値であるT4g.nanoを利用- リザーブドインスタンスが余っていたため、今回はt3.nanoで構築しています
- OSはminimalイメージを活用し、EBS 2GBで運用
- 自宅側の固定IP費用を削減するため、IPv6で接続
接続構成
AWS側
EC2にLinuxインスタンスを立て、strongSwanを利用してIPSecトンネルを張ります。T3に比べて20%OFFで利用できる、Arm系のT4gインスタンスを使う、、、予定だったのですが、t3.nanoのリザーブドインスタンスが手持ちに余っていたため、今回はそちらを利用しています。
###自宅側
VPNルータとしてYAMAHAのRTX1210を利用し、光回線はIPoE接続のフレッツ光コラボを利用します。固定IPは費用が掛かるため、半固定で付与されているIPv6アドレスを利用してVPNトンネルを張ります。IPv6アドレスが変更されることは滅多にないと予想されるため、その際は、再度一から設定をし直すこととします。
strongSwanのインストール・設定
strongswanを設定する際は、strongswan5.8より推奨化されているswanctlを利用します。OSにubuntu 20.04 LTSを利用すると、strongSwan5.8系がインストールされ、swanctlも容易に利用できるのですが、EBSで8GB課金されてしまうという問題があります。
今回はできるだけ安く運用するという方針のもと、Amazon Linux 2のminimalインスタンスを利用し、EBS 2GBで運用します。(0.576USD≒約60円の節約)
strongSwanのインストール方法は以下の記事を参照してください。
Amazon Linux 2 minimalイメージにstrongSwan5.9.1をインストール
strongSwanとRTX1210間でIPSecトンネルを張るための設定方法は以下の記事を参照してください。
strongSwanとRTX1210の拠点間VPN接続(IKEv2, IPv4 over IPv6)
費用
通信費を除き、3.042 USD(約320円)になりました。なんと91%OFFです!T4g系を利用して3年分の利用契約をすればさらに安くなります!新規で購入するのであれば、リザーブドインスタンスよりもSaving Planを利用すると安いインスタンスタイプが出た際に容易に対応できるようになるかと思います。
- T3.nanoリザーブドインスタンス コンバーチブル3年間 2.85USD
- EBS 0.096USD/GB × 2(GB) = 0.192 USD
参考:過去に投稿したQiitaのリンク
- LightsailでSecureNATを有効化したSoftEther VPN Serverを構築する
- 当初はSoftEther VPN Serverを利用しようと考えていました。通信料削減のためにLightsailを利用できないか検証しましたが、ルートテーブルがいじれないので VPNServer側でNATが必要なことに気づき、LightSailの利用は諦めました。
- T4gインスタンスにIPv6を有効にしてSoftEther VPN Server を構築する
- SoftetherでL2TPv3を利用して接続する作戦でしたが、VPNトンネルは張れても、トンネルとブリッジ接続をしようとするとインターネットにつながらなくなったため諦めました。。。
- strongSwanでIPv4 over IPv6のVPNトンネルを構成する
- SoftEtherは諦め、strongSwanに切り替え。strongSwanのインストールに手間取りましたが、strongSwan同士の検証は特にトラブルもなく利用できました。
- strongSwanとRTX1210の拠点間VPN接続(IKEv2, IPv4 over IPv6)
- strongSwanとYAMAHAルータで検証。ちょっと設定変える必要がありましたが何とか接続成功。調べるときにIKEv1とIKEv2の情報が入り乱れていて、結局信用できるのは公式サイトの情報だと改めて感じた次第。
- Amazon Linux 2 minimalイメージにstrongSwan5.9.1をインストール
- strongSwanの検証ではUbuntuを利用していたため、AmazonLinux2のminimalイメージに入れられないか検証。