謎のアドベントカレンダー、第 17 話です。
前日の、
に続き、今度は割と最近の話です。
AWS の Client VPN エンドポイントを 2 回削除して 3 回作った話です。
(テストを含めるとそれぞれ +1 回かな?)
1 回目 : 手作業で作成
筆者の職場では、AWS 上の開発環境のマシンがあります。
そして、(当初は)ここに、障害対応時に自宅などから接続することを考えました。
(というか、AWS に引っ越す前のオンプレ時代にも似たような構成で運用していて、AWS に引っ越すのを機に接続方法を考えた、という流れです)
もちろんここに SSH なり RDP なりで接続しても良いのですが(いまなら「ブラウザから接続」もありますね。Windows だと日本語入力が不自由ですけど)、パブリックアクセス大開放!というのもちょっとアレなので、Client VPN を噛ませて接続することにしました。
Client VPN が出た当初は CloudFormation 未対応で、本運用に入るギリギリまで待ちましたが対応しなかったので諦めてマネジメントコンソールからポチポチやって作りました。
そして概要を JAWS-UG 名古屋 で発表しました。
で、本運用に入ろうとしたまさにそのとき、CloudFormation 対応に。
2 回目 : CloudFormation で作成
手作業で作成したエンドポイントを削除しつつ CloudFormation で作成しました。
おかげで、メンバー用に用意した接続用のファイルを、すべて再ダウンロード→一部加筆修正→再配布する羽目に。
この時点では、通信料金が高額になるのを恐れて VPN 接続時のインターネットへのルーティングは無効にしました。
(スプリットトンネルはまだサポートされていませんでした)
VPN 接続時に手元のパソコンから直接インターネットに出ていけないので多少不便ですが、VPN は障害対応時ぐらいしか使わないので「このままで良いか」となりました。
そんなこんなで月日は流れ…コロナがやってきました。
自宅から仕事をするために、Client VPN の利用者を「障害対応する人たち」から「開発メンバー全員」に拡大しました。
その際、試しに既設のエンドポイントでスプリットトンネルを有効にしてみたのですが、肝心の開発環境のマシンに繋がらなくなったので、一旦諦めました。
ちょっと不便でしたが「手元で直接インターネットにアクセスしたいときは一旦 VPN を切る」ルールにしました。
(運用でカバー)
…まあ、面倒ですね。
というわけで、
3 回目 : CloudFormation で作成(スプリットトンネル有効化)
また作り直しました。
当然、メンバー用に用意した接続用のファイルを、すべて再ダウンロード→一部加筆修正→再配布する羽目に(2 回目)。
手間は掛かったものの、みんな喜んでくれました。
めでたしめでたし…ではなかった
後日、消さずに残しておいたスプリットトンネル未対応のエンドポイントを消すタイミングで、何気なく
- スプリットトンネル有効化
- 接続用のファイルを再ダウンロード→一部加筆修正
して VPN 接続してみたところ、 インターネットにも開発環境マシンにもあっさり繋がって通信できました。
要は、 エンドポイントを作り直さずとも、スプリットトンネル有効化後に接続用ファイルを再ダウンロードすれば良かった わけです。
そのあたりについては、こちらの記事にも後から加筆修正する形で残しています。
まあ、いずれにしてもメンバーへの接続ファイル再配布は必要だったわけで、無駄だったのは「新規エンドポイントを生やすこと」ぐらいではあったのですが。
o...rz
18 日目の記事に続きます。