松田です!
re:Invent期間中はそわそわします。
今回はre:Inventの開催前に公開されたアップデート「AWS PrivateLink がクロスリージョン接続をサポート」についての注意点を共有させていただきます!
アップデート内容
https://aws.amazon.com/jp/about-aws/whats-new/2024/11/aws-privatelink-across-region-connectivity/
以下、和訳の抜粋です。
AWS PrivateLink がネイティブのクロスリージョン接続をサポートするようになりました。これまで、インターフェイス VPC エンドポイントは同じリージョン内の VPC エンドポイントサービスへの接続のみをサポートしていました。今回のリリースにより、お客様はインターフェイスエンドポイントを介して、同じ AWS パーティション内の他の AWS リージョンでホストされている VPCエンドポイントサービスに接続できるようになりました。サービスプロバイダーは、各リージョンで追加のインフラストラクチャをセットアップすることなく、既存および今後のすべての AWS リージョンの顧客が VPCE サービスにアクセスできるようにすることができます。
結論
結論から申し上げますが、今回のアップデートにおいての注意点は以下の通りです。
- AWSサービスへのPrivatelink接続はクロスリージョンに対応していない
- クロスリージョンに対応するのはPrivatelinkの接続先がエンドポイントサービスおよび対応しているSaaSである場合に限る
1つ目ですが、例えば「東京リージョンのVPCエンドポイントからバージニアリージョンS3に接続することはできない」ということです。
また、そもそもエンドポイントサービスとは?からおさらいしますと
https://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/concepts.html#concepts-service-providers
PrivateLinkには2つの要素があります。コンシューマーとプロバイダーです。コンシューマーはVPCエンドポイント経由でプロバイダーが提供するサービスのエンドポイントに接続します。
プロバイダーが提供するサービスのエンドポイントがエンドポイントサービスです。このエンドポイントサービスが接続先である場合にクロスリージョン接続がサポートされます。
アップデートを見て勘違いした私
もともと、あるシステムにて東京リージョンのECSからオレゴンリージョンのBedrockにアクセスする要件がありました。(東京リージョンにはないLLMモデルを利用したかったため)
Privatelink経由でBedrockに接続するという要件もあるため、東京リージョンとオレゴンリージョンのVPCをピアリング接続して、東京リージョンのECSからピアリングを介してオレゴンリージョンにあるVPCエンドポイントにアクセスするという構成を組んでいました。
今回のアップデートを知り、東京リージョンのVPCエンドポイントからオレゴンリージョンのBedrockに直接接続できるようになる!と思い込みました。
よし、早速実装しようと思い、マネージメントコンソールからクロスリージョン対応してVPCエンドポイントを作成しようと試みました。
私のイメージだと、サービスリージョンがus-west-2(オレゴン)である選択肢が出てくると思ったのですが見当たりません。サービス名を見た感じだと、東京リージョンのBedrockのエンドポイントだと見受けられます。(サービスリージョンが「-」となっているのはよくわかりません)
他にリージョンを選択できるところもなかったため、一旦AWS CLIからクロスリージョン対応VPCエンドポイントの作成を試みました。
❯ aws ec2 create-vpc-endpoint \ --vpc-id vpc-0c206f2d81f0c5801 \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.us-west-2.bedrock-runtime \ --subnet-ids subnet-081297ef2f1a963e6 \ --security-group-ids sg-0703c41f5cda3b87f An error occurred (InvalidServiceName) when calling the CreateVpcEndpoint operation: The Vpc Endpoint Service 'com.amazonaws.us-west-2.bedrock-runtime' does not exist
ダメなようです。
ここでもう一回アップデートの内容を見てみました。
https://aws.amazon.com/jp/about-aws/whats-new/2024/11/aws-privatelink-across-region-connectivity/
今回のリリースにより、お客様はインターフェイスエンドポイントを介して、同じ AWS パーティション内の他の AWS リージョンでホストされている VPCエンドポイントサービスに接続できるようになりました。
「VPCエンドポイントサービスに接続できる」と明記されていますが、それ以外(AWSサービスなど)については言及されていません。
もう一度マネージメントコンソールを開いて確認したところ、接続先を「PrivateLink Ready パートナーのサービス」と「NLB と GWLB を使用するエンドポイントサービス」にしたところ、クロスリージョンについての設定項目が出現しました。
これらのことから、「PrivateLink接続のクロスリージョンサポートに対応しているのは、接続先がPrivateLink Ready パートナーのサービス(=対応しているSaaS)」とNLB と GWLB を使用するエンドポイントサービス(=エンドポイントサービス)である場合に限るということがわかります。
最後に
同じようにAWSサービスへのPrivatelink接続がクロスリージョン対応したと勘違いした人もいるのではないでしょうか?
このブログがその方々の一助になれば幸いです!