こんにちは!クラウド&コンテナネットワークの世界へようこそ。SRE兼クラウドアーキテクトの私です。
AWSやGCPといったメガクラウドの世界では、サーバーを並べてWebアプリを動かすだけでなく、セキュリティをしっかり固めるための「門番」をどう配置するかというネットワーク設計がめちゃくちゃ重要になってきますよね。
インフラの世界に足を踏み入れたばかりの頃は、「ロードバランサー」と言えばALB(Application Load Balancer)やNLB(Network Load Balancer)を思い浮かべる方がほとんどだと思います。Webサイトへのアクセスを上手に分散してくれる、あの頼もしい相棒たちですね。
でも、今日のテーマはちょっと違います。さらに一歩踏み込んだ、セキュリティアプライアンス(ファイアウォールやIDS/IPSなど)をネットワークのど真ん中にスマートに割り込ませるための秘密兵器、AWS Gateway Load Balancer (GLB)と、その裏側で魔法のようにパケットを包み込むGENEVE(ジェネーブ)カプセル化の仕組みを、一緒に紐解いていきましょう!
難しい専門用語や英語のヘッダー名にビビる必要は一切ありません。身近な例えを交えながら、一歩ずつ優しく解説していきますね。
—
1. そもそも Gateway Load Balancer (GLB) ってなんだろう?
まずは、現実世界に例えて考えてみましょう。
想像してみてください。あなたは、すごく厳重なセキュリティが必要な大豪邸のオーナーです。外からやってくる郵便物や荷物は、すべて一度「検査スタッフ(セキュリティアプライアンス)」の部屋を通過させて、怪しいものが入っていないかチェックしてから、家の中に届けたいですよね。
従来のクラウドネットワークでこれをやろうとすると、ルーティングの経路が複雑になったり、セキュリティ機器がボトルネックになってトラフィックがパンクしたりと、インフラエンジニアにとっては頭が痛い「泥臭い工夫」が必要でした。
そこで登場したのが AWS Gateway Load Balancer (GLB) です。
GLBは、いわば「郵便物の仕分けと、検査スタッフの群れをまとめる超優秀なマネージャー」です。
外からやってきた通信(パケット)をいったんすべて受け取り、裏側にたくさん並んだサードパーティ製の仮想ファイアウォール(Palo AltoやCheck Pointなど)のどれかに「はい、この荷物の検査をお願い!」と綺麗に割り振ってくれるのです。
しかも、すごいのはここから。検査が終わった荷物は、ちゃんと元の宛先へと何食わぬ顔で旅立っていきます。この一連の流れを、ネットワークの構成を変に複雑にすることなく、驚くほどシンプルに実現してくれるのがGLBなんです。
—
2. パケットの衣替え?「GENEVEカプセル化」の正体
さて、ここからが今回のハイライト、GENEVE(UDPポート6081)のお話です。
「カプセル化」となんとなく難しそうな言葉が出てきましたが、これも郵便の仕組みで考えると一瞬で理解できます。
郵便物で例えるカプセル化
海外から届いた大切な荷物を、日本のとある地方の検査所へ送るシチュエーションを想像してください。
もともとの荷物(中身のパケット)には、宛先や差出人が書かれていますよね。でも、途中で迷子になったり、特定の検査チーム専用の特別なルートを通ったりさせるために、外側からもう一回り大きな「専用の段ボール箱」に入れて、そこに「これは〇番の検査チーム行きです!」という新しい伝票を貼り付けたくありませんか?
この「もともとのパケットを、別の新しいパケットですっぽり包み込むこと」をカプセル化と言います。
そして、その包み込むときに使われる世界標準の共通フォーマット(ルール)の一つが GENEVE(Generic Network Virtualization Encapsulation) なんです。AWSのGLBでは、このGENEVEという仕組みを使って、通信を UDPポート6081 番で包み込んでやり取りしています。
なぜわざわざ包み込む必要があるの?
「そのまま通せばいいじゃない!」と思いますよね。
実は、セキュリティアプライアンスにパケットを渡すとき、アプライアンス側は「この通信、もともとはどこからどこへ行こうとしていたんだっけ?」という情報(メタデータ)をどうしても知りたいのです。
GENEVEのすごいところは、ただ包み込むだけでなく、「このパケットの元の宛先はここだよ」「GLBの識別IDはこれだよ」という特別なメモ(メタデータ)を、カプセルの中に一緒に同封できる点にあります。
ファイアウォールはこのメモを読み取ることで、「なるほど、この通信はあっちのVPCから来たんだな」と正確に理解し、安全な検査ができるというわけです。
—
3. 実務で役立つ!AWS構成と設定のイメージ
一通り仕組みが分かったところで、実際にAWS上でどのように設定するのか、その雰囲気をつかんでおきましょう。
実務では、主に次のようなステップでGLBとアプライアンスを連携させます。
1. ターゲットグループ(Target Group)の作成: 裏側で働く仮想ファイアウォール(EC2インスタンスなど)をグループ化します。この際、プロトコルとして GENEVE を指定し、ポートに 6081 を設定します。
2. GWLB本体の作成: 上記のターゲットグループを紐付けたGLBをデプロイします。
3. VPCエンドポイント(Gateway Load Balancer Endpoint)の作成: 各アプリケーション用VPCから、GLBへ安全に通信を流すための「出入り口(VPCエンドポイント)」を配置します。
4. ルートテーブルの調整: 「インターネットや他のVPCへ行く通信は、問答無用でこのGWLBエンドポイントを経由しなさい」という道しるべ(ルート)を書きます。
ここでは、AWS CLIを使ってターゲットグループをGENEVEプロトコルで作成する際のサンプルコードを見てみましょう。
# AWS CLIによるGateway Load Balancer用ターゲットグループの作成例
aws elbv2 create-target-group \
--name my-security-appliances-tg \
--protocol GENEVE \
--port 6081 \
--vpc-id vpc-0123456789abcdef0 \
--target-type instance \
--health-check-protocol tcp \
--health-check-port 80 \
--tags Key=Environment,Value=Production
【コードのポイント解説】
--protocol GENEVE: ここがまさに今日の主役!通常のHTTPやTCPではなく、GENEVEパケットを受け渡すための特別なプロトコルを指定しています。--port 6081: GENEVEトンネリングの通信で使われるお決まりのUDPポート番号を指定しています。--health-check: 裏で動いているセキュリティアプライアンスがちゃんと生きているか(死活監視)を定期的にチェックするための設定です。
このターゲットグループに、セキュリティアプライアンスのインスタンスたちを登録してあげれば、準備完了です!
—
4. トラブルシューティングの現場から:よくあるハマりどころ
最後に、実際の現場(SREの現場)で私たちがよく遭遇する「トラブルの勘所」をこっそりシェアしておきますね。
もし、「GLBを導入したはいいものの、なぜかセキュリティアプライアンスを通過したあとの通信がプツッと途切れる…」という現象に出くわしたら、以下のポイントを疑ってみてください。
- セキュリティグループ(SG)の穴あけ忘れ:
GENEVEの通信は UDP 6081番 を使います。ファイアウォール側のインスタンスにアタッチされているセキュリティグループで、インバウンドの UDP 6081 がブロックされていないか、今一度確認しましょう。「あれ、普通のHTTP/HTTPSしか許可してなかった!」というのは、本当によくある新人エンジニアのミスのひとつです(私も昔やりました…笑)。
- 非対称ルーティング(Asymmetric Routing)の罠:
ネットワークの行きと帰りの道順がバラバラになってしまうと、ステートフルなファイアウォールは「えっ、この帰りのパケット、行きを見てないんだけど? 怪しい!」と言ってパケットをドロップ(破棄)してしまいます。GLBはこの非対称ルーティングをうまくよしなに隠蔽してくれる設計になっていますが、カスタムルートテーブルをいじりすぎると迷子になることがあるので注意が必要です。
—
まとめ
いかがでしたでしょうか?
今回は、少し取っつきにくいAWS Gateway Load BalancerとGENEVEカプセル化の仕組みを、郵便の配達や荷物の箱詰めになぞらえて解説しました。
- GLBは、セキュリティアプライアンスの群れへスマートに荷物を振り分けるマネージャー。
- GENEVE(UDP 6081)は、宛先やメタデータという大事なメモと一緒に、パケットをすっぽり包み込む段ボール箱(カプセル化の仕組み)。
クラウドのネットワークは、一見すると複雑な呪文の連続に見えますが、一つひとつの技術が「なぜ現実世界のアナロジーとして作られたのか」を紐解いていくと、驚くほどシンプルで美しい構造をしていることが分かります。
ぜひ、今回の記事を参考に、ご自身の検証環境や実務のネットワーク設計でGateway Load Balancerに触れてみてくださいね。それでは、また次回の技術解説でお会いしましょう!Happy Building!
コメント