AWS VPC LatticeがGAされたので触ってみた
AWS VPC LatticeがGAされました
re:Invent2022で発表されていたVPC Latticeが3/31にGA(一般利用)になりました!
東京リージョンでも利用可能です。
AWS VPC Latticeとは何か
AWS VPC Lattice(日本語コンソールでは格子と表現されます)とはVPC向けのリバースプロキシサービスです。
各種コンピュートサービスを接続するELBのようなイメージですが、VPCをまたいで接続する機能が内包されているのが特徴です。
現時点では HTTPとHTTPS をサポートしています。
また、ELBでHTTPSのために必要だったTLS証明書が、VPC Latticeでは デフォルトのDNS名に対応するワイルドカード証明書が用意されます (カスタムドメインやTLS証明書も利用可能です)。
接続できるサービスとしては、Lambda、EC2 (Auto Scaling Group(ASG)) 、ECS、ALB、VPCがあります。
各コンピュートサービスで独自に作成したメソッドを、アクセス制御等も含めて一律に管理できるといったサービスとなります。
AWS VPC Lattice Workshopをやってみた
日本語のWorkshopが公開されていますので、実際にやってみました。
シナリオとしては、1つのLambdaと2つのEC2(VPC別、Auto Scaling Group設定済)、1つのクライアントVPCを一つのLatticeで接続できるようにするというものです。
全体構成イメージ
手順の詳細は記載しません。概要だけまとめています。
STEP1:サービス間通信
この章ではLatticeの基本的な使い方を学びます。
Latticeの構成として、アクセスの上位層から順に、
- サービスネットワーク
- サービス
- ターゲットグループ
が存在しますが、今回は下から順に作成を進めます。
ターゲットグループにはLambdaやEC2を指定しますが、このWorkshopではEC2がASG配下にありますので、ASGをターゲットとして設定します。ここはELBと同じ感覚ですね。
サービスにはリスナールールが存在して、そこにターゲットグループを設定するという形で、ここも完全にELBと同じですね。
サービスが作成できると、サービスネットワークに追加して、サービス間通信が出来るようにします。
こうすることでサービス間のアクセス制御の管理が出来るようになります。
全体を作ると、サービスごとにサービスネットワーク内にドメインが作成され、そのドメインを利用すると別のサービスからのアクセスが可能になります。
WorkshopではクライアントVPCのEC2からアクセスして確かめています。
この時点では何も制限をかけていないので、どのサービスからでもアクセスが出来てしまう状態です。
ちなみに、Workshop内でアクセス確認する際に、httpとhttpsはしっかりと確認しましょう。アクセスできない!と思ったら、httpだったというちょっとしたミスを私は引き起こしてしまいました、、、
STEP2:アプリケーションレイヤーセキュリティ
STEP1でサービス間の接続が確認できたので、アクセス制御をしていきます。
ポイントはサービスごとにアクセス制御をメソッドごとにも制御できるという点です。例えば、AサービスからBサービスへのGETは許可するが、POSTは拒否するという柔軟な設定も可能です。
また、サービス内のリソースにロールを設定する必要もなく、サービスのIAMロールを内部のリソースにassume-roleするだけで出来るので、IAMロールの管理が増える事もなく非常に便利です。
実際にWorkshopの中でも検証することが可能です。
これを使うと複雑なサービスを構築している場合でも、Lattice内で管理を完結出来るので、サービス管理者としては嬉しいです。
STEP3:オブザーバビリティ
サービスを提供するにあたって、確実に必要なログ設定もLatticeでできます。出力先としては、S3、Cloudwatch Logs、Kinesis Data Streamが選択できるので、他のAWSサービスと同様のログ管理が可能となっています。
あとは上手くフィルタリングなどで監視を行えば良いことになります。
まとめ
簡単にworkshopをまとめてみました。
Latticeのサービス概要から実際のアクセス制御の確認など一通り体験できるので、とても参考になりました。
今後どこまでサービスが統合されていくか分かりませんが、複雑なコンピュートサービス間連携がひとまとまりになり、管理・構成・運用がシンプルになってとても良いサービスだなと感じました。
続報などあればまた記事にしていきたいと思います。
最後にリソースの削除は忘れずにやってください!
気付かずに放置すると結構な金額が請求されます。。
Discussion