アーキテクト、クラウド エンジニア、DevOps 担当者の中には、「マイクロサービスは小さなモノリスである」とよく言う人がいます。これは、多数のサービス、特にそれらの管理と構成におけるネットワーク ルールとセキュリティの側面を扱う複雑さに起因します。分散システム内の複数のクラスターとクラウドにまたがるマイクロサービスにクライアントがリクエストを送信する場合、セキュリティと正しいルーティング ルールを確保するために各リクエストを追跡するのは面倒な作業になります。理想的には、バックエンド サービスはビジネス ロジックのみを提供する必要があるため、これを実行するべきではありません。ここで、API ゲートウェイ (すべてのリクエストに対する単一のエントリ ポイント) が登場します。API ゲートウェイとは何か、またそれが提供する機能と利点について見てみましょう。 API ゲートウェイとは何ですか?API ゲートウェイは、クライアントとマイクロサービス間のサーバー (または L7 プロキシ) であり、すべてのクライアントのシステムへの集中エントリ ポイントとして機能します。これは、クライアント API 呼び出しを受け入れ、適切なマイクロサービスに転送するリバース プロキシです (下の図 A を参照)。 API ゲートウェイは各クライアントに API を提供することで、基盤となるシステムの複雑さをカプセル化し、クライアントが特定のサービスを呼び出す代わりにシステムと通信できるようにします。また、トラフィックがサービスに到達する前にセキュリティ チェック (認証と承認) を実行するため、サービスはコア機能に集中できます。 図 A – マイクロサービス アーキテクチャにおける API ゲートウェイ実装の概念図 マイクロサービスにおける API ゲートウェイの必要性クライアントとマイクロサービス間の直接通信パターンによって生じる課題により、API ゲートウェイが普及しました。いくつか見てみましょう。 サービス検出とトラフィックルーティングの問題クライアントからマイクロサービスに直接接続するには、クライアントがサービス インスタンスの特定のエンドポイントを認識している必要があります。しかし、サービスの動的なスケーリング (デスケーリング) により、エンドポイントを追跡するとクライアント側の複雑さが増します。さらに、クライアントがサービスに結合されている場合は、クライアント側で構成の変更が必要になるため、スケーリングが問題になります。さらに、クライアントがサービスを直接呼び出す場合、地理ルーティングなどの特定の属性に基づいてルーティング トラフィックを構成することは困難です。 秘密の質問クライアントとサービス間の直接通信のためにサービス エンドポイントを公開すると、セキュリティ上の懸念が生じます。これにより、侵入者の攻撃対象領域が拡大し、バックエンド サービスがパケット スニッフィングや中間者攻撃などの脅威に対して脆弱になります。さらに、マイクロサービスへの直接クライアントは、ビジネス ロジックの提供に集中するのではなく、API 呼び出しの認証と承認の負担をサービスに負わせます。 相互運用性に影響を与える複数のプロトコルマイクロサービス アーキテクチャが提供する柔軟性により、開発者は任意の言語 (Python、Java、Go) を使用してサービスを構築できます。同様に、さまざまな API タイプ (REST、gRPC など) を使用してこれらのサービスを実装することもできます。クライアントからマイクロサービスへの直接通信パターンでは、クライアントは通信するためにさまざまなプロトコルを理解して使用する必要があります。これにより、クライアント アプリケーションにさらに多くのコードとロジックが必要になるため、複雑さが増します。 往復による遅延Amazon.com の製品ページを考えてみましょう。製品の価格、数量、レビューなどの一部の属性は、バックエンドで異なるサービスとして展開されます。クライアントがサービスを直接呼び出した場合、上流のサービスからの応答をキャッシュするメカニズムがないため、必要な情報を取得するには各サービス (製品価格、レビュー、数量など) に個別のリクエストを行う必要があります。これらの呼び出しにより、複数の接続を確立するためのオーバーヘッドが追加され、これらのネットワーク要求によって発生するラウンドトリップによって待ち時間が増加し、ユーザー エクスペリエンスが最適ではなくなります。 API ゲートウェイ トラフィックAPI ゲートウェイは、通常クライアントによって要求されるフロントエンド マイクロサービスからトラフィック管理を抽象化する L7 プロキシです。 API ゲートウェイは HTTP メッセージを読み取って理解できるため (次の図を参照)、トラフィックに対してフィルターを適用したりアクションを実行したりできます。 HTTP メッセージ構造 リクエストは API ゲートウェイで複数のステップを通過します。次の図 (図 B) は、Kubernetes クラスターのエッジにある API ゲートウェイと、リクエストが流れるステージを示しています。 図 B – API ゲートウェイを経由した受信 gRPC リクエストのトラフィック フロー
API ゲートウェイは上記の手順を完了すると、サービスの応答をクライアントに返します。ただし、ゲートウェイの構成方法やその他の機能の実装方法に応じて、ここで説明する手順が異なる場合があることに注意してください。 APIゲートウェイの機能上記の主要機能に加えて、API Gateway は多くの機能を提供します。
API Gateway が提供するこれらすべての機能は、分散サービス システムの管理に大きなメリットをもたらします。 APIゲートウェイの利点API ゲートウェイの実装により、組織は次のようなメリットなどを得ることができます。 アプリケーションセキュリティの向上ゲートウェイは API 管理の集中ポイントとして、サービスと基盤となるインフラストラクチャを一般公開から隠します。これにより、攻撃者が、特にサービスを大量のリクエストで圧倒することによって (DoS 攻撃)、アプリケーションをシャットダウンしようとすることが困難になります。ゲートウェイはバックエンドに到達する前にすべてのリクエストを処理するため、このような攻撃に対してレート制限を適用できます。リクエスト検証、authN/Z、サーキットブレーキング、ポリシー適用などのその他のセキュリティ機能は、ログ記録と監視と組み合わせることで、API ゲートウェイがアプリケーションの全体的なセキュリティに貢献します。 マイクロサービスの処理とスケーリングの柔軟性の向上API ゲートウェイは、外部クライアントを内部マイクロサービスから分離します。これにより、DevOps およびインフラストラクチャ エンジニアは、クライアント アプリケーションの構成を更新することなく、バックエンド サービスに変更を加えることができる高い柔軟性が得られます。クライアントは、バックエンドの変更を意識することなく、ゲートウェイを介してリクエストを送信し、応答を受け取ることができます。 authN/Z や負荷分散などの多くの重要な機能は、ゲートウェイによって処理されます。これらの責任をゲートウェイにオフロードすると、開発者がアプリケーション用に記述するコードが減り、イノベーションが促進され、迅速なリリースが可能になります。 APIプロバイダーの収益化の向上API 収益化とは、サードパーティの消費者向けに API を製品化することです。 API ゲートウェイは、企業に API を収益化して収益を生み出したり、API を維持するための運用コストをカバーしたりするためのより優れた方法を提供します。ゲートウェイはクライアント要求を課金システムに接続し、API プロバイダーに集中型の課金および計測メカニズムを提供します。これにより、企業は API の使用状況を追跡し、従量課金制、階層型、ユニットベースなど、API コンシューマー向けにさまざまな価格モデルを実装してサービスに課金できるようになります。 ユーザーエクスペリエンス(UX)の向上API ゲートウェイは、基盤となるサービスにリクエストを送信して集約することで、クライアントが過剰なリクエストを送信するのを軽減します。つまり、ゲートウェイへの単一のリクエストでクライアント アプリケーションのニーズを満たすことができ、レイテンシが大幅に削減されます。また、リクエストが頻繁に繰り返される場合、ゲートウェイはリクエストをバックエンドに転送せずに、キャッシュされた応答をタイムリーに提供できます。さらに、監視機能とログ機能を備えた API Gateway を使用すると、パフォーマンスの問題の追跡とトラブルシューティングが容易になり、アプリケーションのダウンタイムを最小限に抑えることができます。これらすべてが、アプリケーションのパフォーマンス、信頼性、およびユーザー エクスペリエンスの向上に役立ちます。 3つのオープンソースAPIゲートウェイツールAPI ゲートウェイ ツールを評価する場合、組織はオープン ソース ツール、クラウド サービス プロバイダー、またはエンタープライズ バージョンを探すことができます。オープンソースが最優先事項である場合は、使いやすさ、柔軟性、拡張性などの要素に基づいて、上位 3 つのオープンソース API ゲートウェイ ツールのリストをまとめました。 1. Tyk APIゲートウェイTyk は、REST、GraphQL、gRPC などの複数のプロトコルをサポートする完全にオープン ソースのゲートウェイを提供します。 Redis 以外のサードパーティ依存関係はなく、現在利用可能なゲートウェイの中で最も高速なものの 1 つです。 Tyk API Gateway の機能の一部を以下に示します。
2. Kong API ゲートウェイKong API Gateway は、マルチクラウドおよびハイブリッド クラウドの展開のためのクラウド ネイティブ ゲートウェイです。ゲートウェイは、独自の Kubernetes イングレス コントローラーの助けを借りて、Kubernetes ネイティブでもあります。 Kong は、モジュールとプラグインによる柔軟性と拡張性で知られています。 Kong API Gateway のオープン ソース機能には次のようなものがあります。
3. KrakenD API ゲートウェイKrakenD は、真の線形スケーラビリティを提供するサーバーレス アーキテクチャで構築された高性能 API ゲートウェイです。単一障害点なしでスケーリングするのに役立ちます。 KrakenD はオンプレミス、ハイブリッド、またはクラウド上で実行され、プラグインと埋め込みスクリプトを使用して拡張可能です。 KrakenD のオープン ソース バージョンは、次の機能を提供します。
API ゲートウェイは万能薬でしょうか?いいえ、違います。他のツールと同様に、API ゲートウェイにも独自の課題が伴います。いくつか例を挙げます:
API ゲートウェイのこれらの課題を詳しく調べ、Istio のようなサービス メッシュ プラットフォームを検討することが理想的な理由を理解します: Istio サービス メッシュを使用した API ゲートウェイ。 さらに、既存の API ゲートウェイ インフラストラクチャを使用して Istio を実装するさまざまなシナリオがあります。 |
<<: 量子コンピューティングの現状:現在の状況と今後の方向性
>>: テンセントクラウドはデジタル化を推進し、中小企業の高品質な開発を支援します
4月7日、アリババクラウドは「アリ版GPT」通益千聞の招待入場を発表し、大きな注目を集めた。 4月1...
医療業界の高い収益率と高い利益により、ますます多くの病院が電子商取引を狙うようになりました。医療業界...
Hostkey のオランダ データ センターでは、2*e5-2680v2 (20 コア、40 スレッ...
米国のロサンゼルスとサンノゼのデータセンターに加えて、イオンクラウドのクラウドサーバーには、実は国内...
今日、ほとんどのエンタープライズ IT 組織にとって、ワークロードをパブリック クラウドに移行するこ...
4月18日、「ビリビリの生放送部門が従業員を解雇する可能性」が話題となった。これに対しビリビリは「ラ...
システム設計では、メッセージ ミドルウェアは、サービスを非同期にしたり、システムを分離したり、トラフ...
月収10万元の起業の夢を実現するミニプログラム起業支援プランテンプレートベースのウェブサイト構築と比...
digital-vm は、デフォルトで 10Gbps の高帯域幅にアクセスできる VPS サービスを...
Maple-hostingは主にオランダのサーバーを提供しています。その最大の特徴は、著作権を無視し...
[51CTO.com からのオリジナル記事] Sangfor といえば、情報セキュリティ分野のスター...
カリフォルニア大学サンディエゴ校は、「クラウドファースト」戦略を採用し、3 台のメインフレームを...
数日前、当社はサーバーを提供していたパートナーと小さな衝突を起こしました。スペースプロバイダーは実際...
著者: Chi Wei、所属: 中国移動スマートホームオペレーションセンターセキュリティ製品部ラボガ...
最近、別のメーカーがプライベートクラウド製品を放棄したという噂があります。振り返ってみると、Open...