目次
初めまして。10月よりBeeXにジョインした榊原と申します。
これから空き時間にどんどんアウトプットできたらと考えています。
どうぞよろしくお願いします。
◆目的
お客様のAWSマルチアカウント環境で「環境内通信は各アカウントに存在するセキュリティVPCにて必ずインスペクションさせる」という要件をみたすため、AWS Gateway Load Balancer(以下GWLB)が必要と判断し、導入のための技術検証を行いました。本記事はその検証を振り返り、知識整理のため内容をまとめたものです。 今回は前編でGWLBの作成まで行います。
◆結論と分かったこと
・セキュリティアプライアンスがなくともGWLBの動作確認が可能。
・アカウント間を跨いでGWLBを用いることは可能。
・GWLBのターゲットとなるアプライアンスを搭載したEC2は透過的な検査を行うためのリソースなので、pingは通らない。
◆GWLBとは
GWLBリリース前まではサードパーティ製のセキュリティアプライアンスをクラウド上で用いる際、アプライアンスを搭載したEC2インスタンスの監視や、監視の結果異常があった際はLambdaを用いたルーティングの変更等の仕組みが必要で、ネットワーク構成や管理が複雑化していました。この問題解決のためにリリースされたのがGWLBです。GWLBを用いることで、サードパーティ製のセキュリティアプライアンスを用いる際にその可用性を担保しつつ、透過的な検査が可能となります。ちなみにGWLBを使用する際は、GWLBそのものに加えて、GWLBエンドポイント(以下GWLBE)とGWLBEサービスが必要です。
◆構成図
今回の構成図は以下の通りです。S3は送信先のインスタンスに必要なパッケージソフトが入ったAWS提供のバケットです。今回インスタンスに接続する際にセッションマネージャを用いましたが、構成図からは省いております。
◆検証手順
1. VPCリソースの作成
VPCリソースの作成手順は省略しますが、以下のリソースを作成します。
・各アカウント内のVPCリソース(VPC、サブネット、ルートテーブル、インスタンス)
・セキュリティアカウント側のVPCエンドポイント(インスタンスがパッケージソフトをインストールする際、S3へのアクセスに必要)
※S3はAWS提供のものなので個人で作成する必要はありません。また、ルートテーブルの薄グレー部分はこれから作成するリソース関連の記述なので、この時点ではまだ設定できません。
※インスタンスはどちらもAmazon Linux 2です。
完成後の構成図は以下の通りです。各VPC、サブネットのCIDR表記は一致していなくても大丈夫です。
2. ターゲットグループの作成
セキュリティアカウント側でGWLB用のターゲットグループを作成します。
EC2コンソールの「ターゲットグループ」から「Create target group」をクリックします。
Basic configurationは「Instances」を選択します。
Target group nameは自由。(下図①)
Protocolは「GENEVE」を選択。(下図➁)
VPCはセキュリティアカウント内に作成したものを指定。(下図➂)
Health check protocolは「TCP」。(下図④)
上記の設定を確認後、「Next」を押す。(下図⑤)
Register targetsで送信先インスタンスを選択し、「include as pending below」を選択。(下図①➁)
Targetsにインスタンスが追加されたのを確認後、「Create target group」を選択。(下図➂)
3. GWLBの作成
EC2のコンソール画面からロードバランサーを選択後、「ロードバランサーの作成」を選択。(下図①➁)
次の画面で、Load balancer typesから「Gateway Load Balancer」の「Create」を選択。(下図➂)
Load balancer nameは自由。(下図①)
VPCはセキュリティアカウント内に作成したものを指定。(下図➁)
Mappingsはセキュリティアカウント内に作成した二つのサブネットを指定。(下図➂)
Default actionではセキュリティアカウント内に作成したターゲットグループを指定。(下図①)
その後、「Create load balancer」を選択。(下図➁)
下のような画面が出れば、GWLBの作成は完了です。
ちなみにこの時点で、ターゲットのHealth Statusは「Unhealthy」ですが、後ほどターゲットのインスタンスにApacheをインストールすることで解消します。なので現時点では放っておいて大丈夫です。
この時点でのリソース図は以下の通りです。
◆最後に
本記事ではGWLB動作確認準備のため、GWLBの作成までを行いました。
後編では追加のリソース作成と動作確認テストを行います。
ここまでご覧いただきありがとうございました。