翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
プライベートエンドポイントと Application Load Balancer を使用して、Amazon API Gateway API を内部 Web サイトにデプロイする
作成者: Saurabh Kothari (AWS)
概要
このパターンは、オンプレミスネットワークからアクセスできる内部 Web サイトに Amazon API Gateway API をデプロイする方法を示しています。プライベートエンドポイント、Application Load Balancer、AWS PrivateLink、Amazon Route 53 で設計されたアーキテクチャを使用して、プライベート API のカスタムドメイン名を作成する方法を学習します。このアーキテクチャは、API でのドメインベースのルーティングに役立つカスタムドメイン名とプロキシサーバーの使用の意図しない結果を防ぎます。たとえば、ルーティングできないサブネットに仮想プライベートクラウド (VPC) エンドポイントをデプロイする場合、ネットワークは API ゲートウェイに到達できません。一般的な解決策は、カスタムドメイン名を使用してからルーティング可能なサブネットに API をデプロイすることですが、プロキシ設定でトラフィック (execute-api.{region}.vpce.amazonaws.com
) が AWS Direct Connect に渡されると、他の内部サイトが機能しなくなる場合があります。最後に、このパターンは、インターネットからアクセスできないプライベート API とカスタムドメイン名を使用するための組織の要件を満たす上で役立ちます。
前提条件と制限
前提条件
アクティブなAWS アカウント
Web サイトと API のサーバー名表示 (SNI) 証明書
オンプレミス環境から AWS Direct Connect または AWS Site-to-Site VPN を使用して設定された AWS アカウントへの接続
オンプレミスネットワークから解決され、DNS クエリを Route 53 に転送する、対応するドメイン (domain.com など) を含むプライベートホストゾーン
オンプレミスネットワークからアクセス可能なルーティング可能なプライベートサブネット
制限
ロードバランサー、ルール、その他のリソースのクォータ(以前は制限と呼ばれてい)の詳細にについては、Elastic Load Balancing ドキュメントの Application Load Balancer のクォータを参照してください。
アーキテクチャ
テクノロジースタック
Amazon API Gateway
Amazon Route 53
Application Load Balancer
AWS Certificate Manager
AWS PrivateLink
ターゲットアーキテクチャ
次の図は、Application Load Balancer のリスナールールに基づき、Web トラフィックを Web サイトターゲットグループ、または API ゲートウェイターゲットグループに誘導するApplication Load Balancer を VPC にデプロイする方法を示しています。API ゲートウェイのターゲットグループは、API ゲートウェイの VPC エンドポイントの IP アドレスのリストです。API ゲートウェイは、API をそのリソースポリシーでプライベートにするように設定されています。このポリシーは、特定の VPC エンドポイント以外からの呼び出しをすべて拒否します。API ゲートウェイのカスタムドメイン名は API とそのステージに api.domain.com を使用するように更新されました。Application Load Balancer のルールが追加され、ホスト名に基づきトラフィックがルーティングされます。

この図表は、次のワークフローを示しています:
オンプレミスネットワークのユーザーが内部 Web サイトにアクセスします。リクエストは ui.domain.com と api.domain.com に送信されます。次に、リクエストはルーティング可能なプライベートサブネットの内部 Application Load Balancer に解決されます。SSL は ui.domain.com と api.domain.com の Application Load Balancer で終了します。
Application Load Balancer に設定されたリスナールールは、ホストヘッダーをチェックします。
a。ホストヘッダーが api.domain.com の場合、リクエストは API ゲートウェイのターゲットグループに転送されます。Application Load Balancer は、ポート 443 を介して API ゲートウェイへの新しい接続を開始します。
b。ホストヘッダーが ui.domain.com の場合、リクエストは Web サイトのターゲットグループに転送されます。
リクエストが API ゲートウェイに到達すると、API ゲートウェイに設定されたカスタムドメインマッピングによってホスト名と実行する API が決定されます。
自動化とスケール
このパターンの手順は、AWS CloudFormation または AWS Cloud Development Kit (AWS CDK) を使用することで自動化できます。API ゲートウェイコールのターゲットグループを設定するには、カスタムリソースを使用して VPC エンドポイントの IP アドレスを取得する必要があります。describe-vpc-endpoints
ツール
Amazon API Gateway は、任意のスケールで REST、HTTP、WebSocket API を作成、公開、維持、監視、保護する上で役立ちます。
Amazon Route 53 は、高可用性でスケーラブルな DNS Web サービスです。
AWS Certificate Manager (ACM) は、 AWS Web サイトとアプリケーションを保護するパブリックおよびプライベート SSL/TLS X.509 証明書とキーの作成、保存、更新に役立ちます。
AWS Cloud Development Kit (AWS CDK) は、AWS クラウドインフラストラクチャをコードで定義してプロビジョニングするのに役立つソフトウェア開発フレームワークです。
AWS PrivateLink は、VPC から VPC の外部サービスへのプライベート接続の作成に役立ちます。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
SNI 証明書を作成し、その証明書を ACM にインポートします。 |
| ネットワーク管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
API Gateway にインターフェイス VPC エンドポイントを作成します。 | インターフェイス VPC エンドポイントを作成するには、Amazon Virtual Private Cloud (Amazon VPC) ドキュメントのインターフェイス VPC エンドポイントを使用して AWS サービスにアクセスするの指示に従います。 | クラウド管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
アプリケーションのターゲットグループを作成します。 | アプリケーションの UI リソースのターゲットグループを作成します。 | クラウド管理者 |
API ゲートウェイエンドポイントのターゲットグループを作成します。 |
| クラウド管理者 |
Application Load Balancer を作成します。 |
| クラウド管理者 |
リスナールールを作成します。 | リスナールールを作成して、以下を実行します。
| クラウド管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
プライベートホストゾーンを作成します。 | domain.com のプライベートホストゾーンを作成します。 | クラウド管理者 |
ドメインレコードを作成します。 | 以下の レコードセットを作成します。
| クラウド管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
プライベート API エンドポイントを作成して設定します。 |
| アプリ開発者、クラウド管理者 |
カスタムドメイン名を作成します。 |
| クラウド管理者 |