Amazon Web Services ブログ

PrivateLink、VPC Lattice、EventBridge、Step Functions により、VPC やアカウントの境界を越えて AWS リソースを安全に共有

ある時点で、AWS のすべてのお客様が、できるだけ早く将来に移行したいと言っています。モダナイゼーションの取り組みを簡素化し、成長を促進し、クラウドに適応すると同時に、コストも削減したいと考えています。これらの顧客は通常、組織のさまざまな部門が管理する多様なテクノロジースタック上で実行されている、オンプレミスで実行されている大規模なレガシーアプリケーションスイートを所有しています。さらに困難なことに、これらの組織は多くの場合、厳しいセキュリティとコンプライアンスの要件を満たさなければなりません。

共有の準備をする
Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、Amazon Elastic Container Service (Amazon ECS) コンテナサービス、Amazon Elastic Kubernetes Service (Amazon EKS) コンテナサービス、独自の HTTPS サービスなどの AWS リソースを、Amazon Virtual Private Cloud (Amazon VPC) と AWS アカウントの境界を越えて共有し、Amazon EventBridge を介してイベントドリブンアプリを構築したり、AWS Step Functions でワークフローをオーケストレーションしたりするために使用できるようになりました。既存のワークロードを更新し、最新のクラウドネイティブアプリをオンプレミスのレガシーシステムに接続し、すべての通信をプライベートエンドポイントとネットワーク経由でルーティングできます。

これらの新機能は Amazon VPC Lattice AWS PrivateLink を基盤として構築されており、ネットワークの設計と制御のための新しいオプションが多数用意されています。また、すべてのテクノロジースタックを統合してオーケストレーションするための優れた新しい方法もいくつか用意されています。たとえば、既存のオンプレミスアプリケーションを利用するハイブリッドイベント駆動型アーキテクチャを構築できます。

現在、一部のお客様は AWS Lambda 関数または Amazon Simple Queue Service (Amazon SQS) キューを使用してデータを VPC に転送しています。このような差別化されていない重労働を、よりシンプルで効率的なソリューションに置き換えることができるようになりました。

これらすべてをまとめることで、場所に関係なく、モダナイゼーションの取り組みを加速し、アプリケーション間の統合を簡素化するのに役立つ一連のサービスを利用できます。EventBridge と Step Functions は PrivateLink および VPC ラティスと連携して動作し、HTTPS ベースのパブリックアプリケーションとプライベートアプリケーションをイベント駆動型アーキテクチャとワークフローに統合することができます。

重要な用語と概念は次のとおりです:

リソースオーナー VPC — 共有するリソースがある VPC。この VPC の所有者は、1 つ以上の関連するリソース設定を使用してリソースゲートウェイを作成し、AWS Resource Access Manager (RAM) を使用してリソースコンシューマー (別の AWS アカウントなど) や、EventBridge と Step Functions を使用してイベント駆動型のアーキテクチャとワークフローを構築する開発者などのリソースコンシューマーとリソース設定を共有します。リソースオーナーとは、この VPC の管理と給餌を担当する組織内の人物 (おそらくあなた) と定義しましょう。

リソースゲートウェイ — ゲートウェイに関連付けられているリソース設定で示されるように、クライアントがリソースオーナー VPC 内のリソースにアクセスできるように、VPC への入口を提供します。1 つのリソースゲートウェイで複数のリソースを利用することができます。

リソース — リソースオーナー VPC 内の HTTPS エンドポイント。これは、データベース、データベースクラスター、EC2 インスタンス、複数の EC2 インスタンスの前にあるApplication Load Balancer、AWS Cloud Map を介して検出可能な ECS サービス、Network Load Balancer の背後にあるAmazon Elastic Kubernetes Service (Amazon EKS) サービス、または AWS Site-to-Site VPN または AWS Direct Connect を介してオンプレミスで実行されているレガシーサービスになります。

リソース構成 — 特定のリソースゲートウェイを介してアクセスできるリソースのセットを定義します。リソースは IP アドレス、DNS 名、または (AWS リソースの場合) ARN で参照できます。

リソースコンシューマー — リソースオーナー VPC 内のリソースに接続して提供されるサービスを使用するアプリケーションの構築を担当する組織内の担当者。

リソースの共有
このパワーのすべては、さまざまな方法で活用できます。この記事ではその1つに焦点を当てます。

まず、私はリソースオーナーの役割を果たします。VPC コンソールで リソースゲートウェイをクリックし、ゲートウェイがないことを確認し、リソースゲートウェイの作成をクリックして開始します:

名前 (main-rg) と IP アドレスタイプを割り当ててから、ゲートウェイを配置する VPC とプライベートサブネットを選択します (これは 1 回限りの選択であり、新しいリソースゲートウェイを作成しない限り変更できません)。また、インバウンドトラフィックを制御するために最大 5 つのセキュリティグループを選択します:

下にスクロールして、必要なタグを割り当て、リソースゲートウェイの作成をクリックして次に進みます:

新しいゲートウェイは数秒でアクティブになります。感謝の気持ちを込めてうなずき、リソース設定を作成をクリックして先に進みます:

次に、最初のリソース構成を作成する必要があります。リソースオーナー VPC のプライベートサブネット上の EC2 インスタンスで HTTPS サービスを実行しているとしましょう。サービスに DNS 名を割り当て、インスタンスの IP アドレスを返す Amazon Route 53 エイリアスレコードを使用します:

この例では、パブリックホストゾーンを使用しています。すでにプライベートホストゾーンのサポートに取り組んでいます。

DNS のセットアップがすべて完了したら、リソース設定の作成をクリックして次に進みます。名前 (rc-service1) を入力し、タイプとしてリソースを選択し、先に作成したリソースゲートウェイを選択します:

下にスクロールして EC2 インスタンスをリソースとして定義し、DNS 名を入力し、ポート 80 と 443 の共有を設定します:

ここで、少し寄り道をして、RAM コンソールに移動してリソース共有を作成し、他の AWS アカウントがリソースにアクセスできるようにします (これはオプションであり、クロスアカウントシナリオにのみ該当します)。サービスごとに 1 つのリソース共有を作成することもできますが、ほとんどの場合、共有を 1 つ作成し、それを使用して関連サービスのコレクションをパッケージ化します。これを実行して、共有サービスと呼びます:

回り道から戻って、リソース共有のリストを更新し、作成したリソース共有を選択して、リソース構成の作成をクリックします:

リソース設定は数秒で準備完了です。

まとめと計画時間
先に進む前に、簡単にまとめて計画を立てましょう。私が (リソースプロバイダーの役割で) これまでに持っていることは次のとおりです:

  • MainVPC — 私のリソースオーナー VPC。
  • main-rg — MainVPC のリソースゲートウェイ。
  • rc-service1 main-rgのリソース設定です。
  • service1 — MainVPC のプライベートサブネットの EC2 インスタンスで固定 IP アドレスでホストされている HTTPS サービス。

さて、次は何でしょう?

共有 — これが最初の、そして最もわかりやすい使用法です。AWS リソースアクセスマネージャー (RAM) を使用してリソース設定を別の AWS アカウントと共有し、別の VPC からサービスにアクセスできます。一方 (リソースコンシューマーとして)、共有されているサービスに接続するための簡単な手順をいくつか実行します:

  • サービスネットワーク — サービスネットワークを作成し、リソース設定をサービスネットワークに追加し、VPC に VPC エンドポイントを作成してサービスネットワークに接続できます。
  • エンドポイント — VPC に VPC エンドポイントを作成し、そのエンドポイントを介して共有リソースにアクセスできます。

モダナイズ — 従来の Lambda または SQS 統合を削除して、差別化されていない面倒な作業を取り除くことができます。

ビルド — EventBridge と Step Functions を使用して、イベント駆動型アーキテクチャを構築し、アプリケーションをオーケストレーションすることができます。このオプションを選びます!

EventBridge とステップ関数によるプライベートリソースへのアクセス
EventBridge と Step Functions により、Slack、Salesforce、アドビなどの SaaS プロバイダーのものなど、パブリック HTTPS エンドポイントに簡単にアクセスできるようになりました。12 月 1 日のリリースにより、プライベート HTTPS サービスの利用も同様に簡単になりました。

リソースコンシューマーとしては、EventBridge 接続を作成し、共有されたリソース設定を参照して、イベントドリブンアプリケーションからサービスを呼び出すだけです。私がすでに知っていることはすべてまだ当てはまり、民間サービスにアクセスする新たな力を得ました。

EventBridge 接続を作成するには、EventBridge コンソールを開き、統合メニューの接続をクリックします:

既存の接続 (今のところなし) を確認してから、接続を作成をクリックして次に進みます:

接続の名前 (MyService1) と説明を入力し、 API タイプとして プライベートを選択し、前に作成したリソース設定を選択します:

下にスクロールすると、接続しているサービスの認証を設定する必要があります。カスタム設定基本認証を選択し、サービスのユーザー名パスワードを入力します。また、クエリ文字列に Action=Forecast を追加して (認証にはたくさんのオプションがあることがわかります)、作成をクリックします:

接続は数分で作成され、準備が整います。次に、 HTTP タスクを使用して接続を選択し、API エンドポイントの URL を入力し、HTTP メソッドを選択して Step Functions ワークフローで使用します:

これで、Step Functions ワークフローでプライベートリソースを利用できるようになりました!

この接続をイベントバスとパイプの EventBridge API デスティネーションターゲットとして使用することもできます。

知っておくべきこと
これらの素晴らしい新機能について知っておくべきことがいくつかあります:

料金 — VPC へのデータ転送にかかる GB 単位の料金を含め、ステップファンクションEventBridgePrivateLink VPC ラティスの既存の料金が適用されます。

リージョン – 21の AWS リージョンで Resource Gateway と Resource Configurations を作成、使用できます: 米国東部 (オハイオ州、バージニア州北部)、米国西部 (カリフォルニア州北部、オレゴン州)、アフリカ (ケープタウン)、アジア太平洋 (香港、ムンバイ、大阪、ソウル、シンガポール、シドニー、東京)、カナダ (中部)、ヨーロッパ (フランクフルト、アイルランド、ロンドン、ミラノ、パリ、ストックホルム)、中東 (バーレーン)、南米 (サンパウロ)。

開発中 — 前述したように、プライベートホストゾーンのサポートに取り組んでいます。また、EventBridge と Step Functions を通じて、他のタイプの AWS リソースへのアクセスをサポートすることも計画しています。

Jeff;

原文はこちらです。