208-AWS SAP AWS 「理論・実践・一問道場」非標準メソッド

 

理論

AWS Global AcceleratorとAmazon API Gatewayのエッジ最適化されたAPIエンドポイントには、それぞれ異なる特性があります。以下に、これらのサービスの主要な違いを表形式で比較します。
特徴
AWS Global Accelerator
Amazon API Gateway(エッジ最適化APIエンドポイント)
目的
ユーザーのリクエストを最適なAWSリージョンのエンドポイントにルーティングし、全体的なパフォーマンスを向上させる
ユーザーがAPIに到達する距離を最短にすることでAPIレスポンスの高速化
利用シナリオ
- アプリケーションのエンドポイント(ALB、EC2、ELBなど)へのトラフィック最適化 - 複数リージョンにまたがるアプリケーション
- RESTful APIを公開 - APIのパフォーマンスを最適化するためにエッジ最適化を使用
トラフィックのルーティング
AWSのグローバルネットワークを使用し、最適なリージョンにトラフィックをルーティング
エッジロケーションを使用し、APIへのアクセスを最適化
非標準RESTメソッドのサポート
サポートあり (LINK, UNLINK, LOCK, UNLOCKなどに対応)
標準的なRESTメソッド(GET, POST, PUTなど)には対応しているが、非標準メソッドはサポートが限定的
グローバルなネットワークの利用
あり (AWSグローバルネットワークでルーティング)
あり (API Gatewayのエッジロケーションを利用)
接続先の設定
複数のAWSリージョンにまたがるサービスに接続可能
単一のAPI Gatewayエンドポイントに接続
遅延低減
グローバルに最適なエンドポイントにトラフィックをルーティングして遅延を低減
エッジ最適化により、ユーザーの最寄りのエッジロケーションでAPIリクエストを処理
用途に適したターゲット
アプリケーション全体のパフォーマンスを向上させる
APIのパフォーマンス向上に特化
トラフィックの分散
複数リージョンに対してトラフィックを分散し、最適化
一つのリージョンに対してAPIリクエストを処理
コスト
地理的に分散されたエンドポイントにトラフィックをルーティングするためコストが発生
エッジ最適化の使用においてはAPI Gatewayのコストが発生

要点

  • AWS Global Accelerator は、アプリケーション全体のトラフィックを最適化し、複数リージョンでの高可用性や低遅延を実現するために使用されます。非標準RESTメソッドのサポートがあり、グローバルなアプリケーションパフォーマンスを向上させます。
  • Amazon API Gatewayのエッジ最適化APIエンドポイント は、主にAPIの遅延を低減するために使用され、世界中のユーザーに対してAPIのパフォーマンスを最適化します。ただし、非標準RESTメソッドへの対応には限界があります。
これらのサービスは、使用目的やアプリケーションの要件に応じて適切に選択することが重要です。
ユーザーのリクエストは基本的には同じです。しかし、そのリクエストがどのように処理されるかは、AWS Global AcceleratorAmazon API Gatewayで異なります。

ユーザーのリクエストの流れ(比較)

AWS Global Acceleratorの場合:

  1. ユーザーがリクエストを送信します。
  1. リクエストは、最寄りのAWSのエッジロケーションに到達します。
  1. AWS Global Acceleratorが、最適なリージョンにリクエストをルーティングします(例えば、ユーザーが日本からアクセスしていれば、東京リージョンのサーバーにルーティング)。
  1. 最適なサーバーから応答が返され、ユーザーに届けられます。

Amazon API Gatewayの場合:

  1. ユーザーがリクエストを送信します。
  1. リクエストはAPI Gatewayに到達します。
  1. API Gatewayは、そのリクエストに応じて、バックエンド(例えば、Lambda関数やEC2インスタンス)に処理を委任します。
  1. バックエンドからの応答をユーザーに返します。

重要な違い:

  • Global Acceleratorは、リクエストを最適なリージョンにルーティングして、全体のパフォーマンスを向上させます。ユーザーは最寄りのエッジロケーションを通じて、最速で応答を受けます。
  • API Gatewayは、APIリクエストを管理し、適切なバックエンドに処理を委託する役割を果たします。APIの管理や認証、スロットリングなどを行います。

要するに:

  • Global Acceleratorは、リクエストの「ルーティングの最適化」や「パフォーマンス向上」を担います。
  • API Gatewayは、リクエストを受けて、アプリケーションに必要なデータやサービスを提供する「API管理」や「処理」の部分を担当します。
つまり、ユーザーのリクエストの最終的な目標は同じですが、それを実現する方法が異なるのです。

実践

一問道場

問題 #208
トピック 1
あるソフトウェア・アズ・ア・サービス(SaaS)プロバイダーは、Application Load Balancer(ALB)を通じてAPIを公開しています。ALBは、us-east-1リージョンに展開されたAmazon Elastic Kubernetes Service(Amazon EKS)クラスターに接続しています。公開されたAPIには、LINK、UNLINK、LOCK、UNLOCKという非標準のRESTメソッドが含まれています。米国以外のユーザーからは、これらのAPIに対して応答時間が長く、一貫性がないという報告があります。ソリューションアーキテクトは、運用オーバーヘッドを最小限に抑えつつ、この問題を解決する必要があります。
どのソリューションがこれらの要件を満たしますか?
A. Amazon CloudFrontディストリビューションを追加し、ALBをオリジンとして設定する。
B. Amazon API Gatewayのエッジ最適化されたAPIエンドポイントを追加し、ALBをターゲットとして設定する。
C. AWS Global Acceleratorにアクセラレーターを追加し、ALBをオリジンとして設定する。
D. APIを2つの追加AWSリージョン(eu-west-1とap-southeast-2)に展開し、Amazon Route 53にレイテンシーに基づくルーティングレコードを追加する。

解説

C
AWS Global Acceleratorを使用することで、APIのパフォーマンスを向上させることができます。以下のポイントに関して解説します:
  1. AWS Global Acceleratorの概要: AWS Global Acceleratorは、AWSのグローバルネットワークを活用して、トラフィックを最適なリージョンのエンドポイントにルーティングするサービスです。このルーティングは、クライアントの場所、エンドポイントのヘルス、設定されたポリシーに基づいて最適化されます。これにより、世界中のユーザーに対して低レイテンシで高パフォーマンスなアクセスを提供することができます。
  1. ALBをオリジンとして設定する: Global Acceleratorを利用する場合、ALB(Application Load Balancer)をオリジン(接続先)として設定することができます。これにより、Global Acceleratorがユーザーからのリクエストを最適なALBエンドポイントに転送し、APIへのアクセスのパフォーマンスを改善します。
  1. 非標準RESTメソッドへの対応: APIで使用される非標準RESTメソッド(LINK、UNLINK、LOCK、UNLOCK)についても、AWS Global Acceleratorはサポートしています。これらのメソッドがAPIに組み込まれている場合でも、Global Acceleratorを使用して、ユーザーが安定した応答を得られるようにすることができます。

このソリューションの利点:

  • パフォーマンスの向上:AWSのグローバルネットワークを活用することで、APIリクエストの遅延を削減できます。特に、米国以外のユーザーに対しても、より高速で安定したアクセスを提供できます。
  • 運用オーバーヘッドの削減:Global Acceleratorは、トラフィックルーティングを自動的に最適化し、管理の手間を最小限に抑えることができます。
  • 非標準RESTメソッドのサポート:APIで非標準メソッドを使用していても、Global Acceleratorは問題なく機能し、全てのHTTPメソッドをサポートします。
したがって、このソリューションは、APIのパフォーマンス向上と運用効率化を実現し、特に地理的に分散したユーザー向けに最適です。
209-AWS SAP AWS 「理論・実践・一問道場」MQTTブローカー207-AWS SAP AWS 「理論・実践・一問道場」SQL Server
Loading...
minami
minami
みなみの成長 🐝
Announcement

🎉 ブログへようこそ 🎉

名前: みなみ一人会社
性別:
国籍: China 🇨🇳
政治スタンス: 民主主義支持者
完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
独学で合格できる学習法や勉強法、試験対策を発信中!

📚 発信内容

  • 💻 IT・システム開発
  • 🏠 不動産 × 宅建士
  • 🎓 MBA 学習記録