アプリケーション・プログラミング・インターフェース(API)は、ソフトウェア・アプリケーションがデータ、主要な機能や特徴を交換できるようにする一連のルールまたはプロトコルです。APIを使用すると、企業はそれぞれにカスタム統合を構築することなく、社内サービスとサードパーティ・サービスの両方を使用できるようになります。Postmanの2025年「State of the API Report」によると、10社中8社以上がAPI ファーストのストラテジーをある程度採用しており、25%の企業は自社が完全にAPIファーストであるとみなしています。
API Gatewayは、APIのやり取りを効率化し、クライアント・アプリケーションがさまざまなサービスに(各サービスのAPIを通じて)アクセスできるようにすることで、現代のIT環境において重要な役割を果たしています。これらのサービスは、異なるプログラミング言語で開発されたサービス、多様なプラットフォームでホストされているサービス、またはクラウド 、エッジ、オンプレミス環境で広くデプロイされているサービスであっても対象となります。
API Gatewayは、ファーストパーティまたはサードパーティーのアプリケーションにアクセスする内部ユーザーと、顧客またはビジネス・パートナーのような外部ユーザーの両方にサービスを提供できます。フェデレーテッド・システムでは、企業は複数のゲートウェイを使用して、APIグループまたはユーザー・タイプに応じて異なるセキュリティー・プロトコルと標準を適用します。
API Gatewayには、多くの場合、次の2つの主要なアーキテクチャー・レイヤーがあります。
コントロール・プレーンは、セキュリティー・ポリシーの設定、API要求のロギングと監視、ルーティング・ルールの定義など、構成と管理を担います。
データ・プレーンは、コントロール・プレーンが設定したルーティング・ガイドライン、セキュリティー・プロトコル、およびデータ制約を適用しながら、API要求をリアルタイムでルーティングします。
クライアントからAPIへのデータ要求は、API呼び出しと呼ばれます。API Gatewayは、API呼び出し(API要求とも呼ばれる)を受信し、それを1つ以上のバックエンド・サービスにルーティングし、要求されたデータを収集し、単一の結合された応答としてクライアントに配信します。それ以外の場合、クライアントは関連する各サービスまたはデータ・ソースにアクセスするために、複数のAPIと直接インターフェースする必要があります。
医療システムの例を挙げると、API Gatewayを使用して、患者がユーザー向けアプリケーションを通じて複数のバックエンド・サービスに接続できるようにすることが可能です。患者はノートPCや電話を使用して、医療記録の確認、予約のスケジュール、支払いやメッセージ送信を行うことができます。API Gatewayは単一のエントリー・ポイント(エンドポイント)として機能するため、ユーザーは各サービスにアクセスするために複数のプラットフォーム間を移動する必要がありません。また、暗号化、承認の適用、その他のセキュリティー対策をサポートし、機密性の高い患者データの保護に役立ちます。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
API Gatewayの実装方法を確認する前に、API自体とAPI Gatewayの違いを理解することが重要です。APIは多くの場合、WebベースのプロトコルHTTPまたはHTTPSを介して、さまざまなソフトウェア・アプリケーションが通信できるようにする一連のルールとプロトコルです。オフィスビル内のフロアのようなもので、各フロアは特定のサービスを表しています。データを取得するには、クライアントは対応するフロアに訪れて内部のサービスにアクセスする必要があります。
一方、API Gatewayは、オフィスビルの玄関のようなもので、クライアントが各フロアに到達するために使用しなければならない単一の通過ポイントです。多くの構成では、ゲートウェイはドア係としても機能します。つまり、訪問者の認証情報をチェックして、どのフロアにアクセスする権限があるかを判断します。また、クライアントが自分で各フロアを自ら探索できるようにせず、クライアントに代わって要求された情報やサービスを取得し、それを1つのパッケージとしてクライアントに返します。
API Gatewayは、組織が一貫した安全で効率的なAPIエクスペリエンスをユーザーに提供するのに役立ちます。主な機能と責任は次のとおりです。
ゲートウェイは統合APIエンドポイントとして機能し、着信呼び出しを受信して認証し、組織のポリシーに基づいて処理して適切なバックエンド・サービスにルーティングします。次に、ゲートウェイはその結果を集約し、複合形式でAPIクライアント(多くの場合、ユーザー向けのアプリまたはWebサイト)に返します。このプロセスにより、ユーザーは1回のAPI呼び出しで複数の要求を実行し、1つの一貫性のある応答を受け取ることができます。一部の構成では、ゲートウェイはワークフロー・オーケストレーション・レイヤーと並行して動作し、マルチステップの自動化されたタスクを調整してビジネス機能を合理化できます。
API管理は、企業内でAPIを作成、公開、管理するスケーラブルなプロセスです。マルチクラウド企業のf5によると、現代の組織は何千ものAPIを同時に管理することが多く、可視性、制御、ガバナンスが継続的な課題となっています。API Gatewayは、要求のルーティング、バージョン管理、負荷分散、トラフィック管理などの管理タスクを一元化することで、この複雑さを簡素化します。また、API GatewayはAPI呼び出しのログを生成し、分析ツールと統合することでAPIのオブザーバビリティーを向上させ、チームはAPIの使用パターンをより深く洞察できるようになります。
APIセキュリティーとは、APIを悪用、悪意のある攻撃、その他のサイバーセキュリティーの脅威から保護する慣行と手順を指します。API Gatewayは、認証、承認、その他の権限およびアクセス制御を管理することで、APIセキュリティーの適用に役立ちます。トランスポート層セキュリティー(TLS)やオープン認証(OAuth)などの暗号化プロトコルを使用して、安全なネットワークを維持し、安全な接続を促進します。
レート制限、つまりユーザーごとに特定の数のリクエストを許可することで、分散型サービス妨害(DDoS)攻撃を防ぐことができます。最後に、API Gatewayはシステム内のすべてのAPIのガバナンスと監視を行い、不整合、シャドーAPI、その他のセキュリティの脆弱性から保護します。
API Gatewayは、API要求、応答、エラーを監視し、ログに記録できます。企業はこの分析データを使用して、APIのトラフィックとパフォーマンスをより深く理解し、トラブルシューティングを改善し、セキュリティーを強化します。ログとメトリクスは可視性を向上させ、チームがエラーやセキュリティーの脅威を迅速に特定できるようにするだけでなく、エラーがどのように、なぜ発生するかについてのコンテキストを提供し、長期的なシステム・ヘルスに貢献します。
API Gatewayは企業内の効率性を向上させ、バックエンド・サービスが高パフォーマンスと高可用性を実現できるよう支援し、ユーザー・エクスペリエンスにおける信頼性と応答性の向上に貢献します。応答の圧縮により、ゲートウェイは大きな応答を小さなファイルに変換できるため、帯域幅の消費量と読み込み時間が削減されます。キャッシュは、企業が頻繁に参照されるデータを保管するのに役立ち、コストとサーバー負荷を最小限に抑えながらパフォーマンスを向上させます。企業はセキュリティー上の理由からレート制限を実装することがよくありますが、最終的にこの施策は安定性を促進し、サーバーが過負荷になるのを防ぎ、APIアクセスが公平に分散されることも保証します。
API Gatewayのデプロイメントには共通のコア機能がありますが、アーキテクチャーと実装によって異なる場合があります。一般的なフレームワークには次のようなものがあります。
マイクロサービス・アーキテクチャーは、アプリケーションを独立して機能する小さな部分に分割する、高レベルのソフトウェア開発アプローチです。各マイクロサービスは単一の機能を担い、自律的にデプロイおよび拡張できます。同時に、サービスはAPIを介して簡単に通信できるため、大規模なプログラムのモジュール型ビルディング・ブロックとしても機能します。2023年のGartner社のレポートによると、ほぼ4分の3の組織がマイクロサービスを使用しており、さらに23%が将来的にこのフレームワークを実装する見通しです。
マイクロサービス環境では、多くの場合、API Gatewayが南北トラフィックを処理し、外部クライアントからのAPI呼び出しを適切なバックエンド・サービスにルーティングします。これらの多くは主に東西トラフィック、またはマイクロサービス環境内のサービス間の通信を処理するサービス・メッシュと連携して動作します。いくつか例外があり、特に最新の設定では、API Gatewayは内部トラフィックをルーティングするように構成することができます。ただし、ゲートウェイは別のアーキテクチャー・レイヤーに配置される傾向があり、サービス・メッシュは各サービスと一緒にデプロイまたは統合され、内部接続を促進および管理します。
マイクロサービス環境では、API Gatewayが重要な役割を果たし、組織は1回のAPI呼び出しで要求されたリソースを返すことができます。例えば、Eコマース企業では、製品情報、料金体系、インベントリーごとに個別のサービスを有する場合があります。API Gatewayを使用すると、企業は1回の要求で各サービスから情報を取得したり、機能にアクセスしたりできます。この合理化されたワークフローは、企業が時間の経過とともに新しいサービスやAPIを追加し、マイクロサービス環境が複雑になるにつれて特に役立ちます。
Kubernetesは、企業のコンテナ化された環境下におけるサービスのデプロイ、拡張、管理を支援するオープンソース・オーケストレーション・システムです。このシステムでは、アプリケーションが依存関係と併せてバンドルされた軽量コンテナとしてパッケージ化されます。Kubernetesはマイクロサービス・アーキテクチャで頻繁に使用されますが、モノリシック、サーバーレス、その他のフレームワークもサポートできます。オーケストレーション・プラットフォームは、現代のクラウド・インフラストラクチャーにおいて非常に重要な役割を果たし、開発者がアプリケーションを一度構築すれば、どこにでもデプロイできるようにします。
API Gatewayは、コンテナ化されたKubernetesクラスターと複数の方法でやり取りできます。
複数のKubernetesクラスターの前でデプロイする場合、API Gatewayはロード・バランサーと統合して、トラフィックを正しいクラスターに転送して、単一のインスタンスが過負荷にならないようにします。
Kubernetesクラスターのエッジにデプロイされると、API GatewayはIngressコントローラーとして機能できます。Ingressコントローラーにより、トラフィックはKubernetesクラスターに入り、要求されたサービスへと転送され、再び返されます。
Kubernetesクラスター内にデプロイされると、API Gatewayは、内部のコンテナ化されたサービス間の通信を処理するサービス・メッシュを補完し、連携して動作することができます。この統合により、負荷分散、サービス検出、トラフィック・ルーティング、エンドツーエンドの暗号化のパフォーマンスが改善されます。
サーバーレス・モデルでは、開発者はアプリケーションを動作させるサーバーと直接やり取りしません。代わりに、クラウド・プロバイダーがサーバーのプロビジョニングと管理を担うため、開発者はコードの作成とデプロイにのみ注力できます。
サーバーレスのコンテキストでは、API Gatewayはマイクロサービス環境のゲートウェイと同様に機能します。ただし、長期にわたるサービスからデータを取得するのではなく、クライアントの要求に基づいてイベント(特定のアクションを開始する命令)をトリガーします。こうしたアプローチにより、アプリケーションを必要なときにのみ実行できるようになり、セキュリティーと効率性が向上します。
サーバーレスとマイクロサービスを組み合わせてハイブリッド・アーキテクチャーを形成すると、各サービスが(コンテナ化された仮想マシンのデプロイメントではなく)サーバーレスのデプロイメントとして動作し、特に可変のワークロードに対してコストの削減と拡張性の向上が期待できます。
すべてのAPI管理の実装は同じというわけではありません。コンポーネントは、システムの複雑さ、アーキテクチャー・アプローチ、意図したユースケースによって異なりますが、その違いは必ずしも明確ではなく、重複した役割や機能を持つコンポーネントも存在します。
Ingressコントローラーは、リバース・プロキシとして機能するKubernetesネイティブ・ソフトウェア・コンポーネントであり、一連のIngressルールに基づいて外部HTTPトラフィックをKubernetesクラスター内のサービスにルーティングします。Ingressコントローラーは多くの場合、ロード・バランシングを主な機能とし、ネットワークの安定性を確保するためにトラフィックをさまざまなサービスにインテリジェントに転送します。また、ルーティング動作を動的に調整して、新しいデプロイメントや構成の更新に対応することもできます。
Kubernetes IngressコントローラーはAPI Gatewayと同じ機能を部分的に実行できますが、API Gatewayは一般に範囲が広く、監査、ロギング、アクセス制御、セキュリティーなどのより高レベルの管理ツールを組み込んでいます。また、API Gatewayはさまざまな構成をサポートできる一方、IngressコントローラーはKubernetes環境に固有です。
サービス・メッシュは、内部サービス間の通信を容易にし、データと機能を効率的に共有できるようにするインフラストラクチャー・レイヤーです。コントロール・プレーン(構成とポリシーを設定するもの)は一元管理されていますが、データ・プレーンは軽量のサイドカー・プロキシを通じてすべてのサービスに分散されています。これらのプロキシは、各サービス・インスタンスと並行して配置され、セキュリティ、ロギング、ルーティング、暗号化などのコントロール・プレーン・ポリシーを実行します。対照的に、API Gatewayは通常、ネットワークのエッジ、つまりクライアントと管理対象のAPIとは別のアーキテクチャー・レイヤーに存在します。
サービス・メッシュは内部サービスがデータや情報を交換するのに役立ちますが、外部トラフィックとやり取りする方法も必要です。この場合、Ingressゲートウェイと呼ばれる特別なコンポーネントがメッシュのエントリー・ポイントとして機能し、セキュリティとパフォーマンスのポリシーを維持しながら外部トラフィックのルーティングを処理します。API Gatewayとサービス・メッシュは、多くの場合組み合わせて使用され、API Gatewayが一般公開されたインタラクションを処理し、サービス・メッシュはサービス間の接続を容易にします。
API環境が複雑になり、APIが受信するトラフィックが増えるほど、API Gatewayが提供できる価値は大きくなります。API Gatewayはバックエンド・サービスへトラフィックをルーティングするだけでなく、次のことも実行できます。
API Gatewayはトラフィック・ルーティングを最適化できるため、レイテンシーが低減し、ユーザー・エクスペリエンスが向上します。レート制限により、クライアントが実行できるリクエスト数に上限が設けられ、過剰なリクエストがブロックされます。リクエスト・スロットリングは、要求の速度を落としたり、遅延させたり、キューに入れたりすることで、トラフィックの急増に対処します。また、ロード・バランシングは、企業がリアルタイムのメトリクスに基づいてサーバー・ヘルスを判断し、それに応じてルーティング・パスを調整するのに役立ちます。これらのストラテジーを組み合わせることで、バックエンド・サービスを過負荷状態や侵害から保護し、応答時間を最小限に抑え、より迅速で信頼性の高いサービスを実現できます。
API Gatewayは、組織が規模の拡大に合わせてAPIトラフィックとワークロードのバランスを取るのに役立ちます。ゲートウェイはオートメーション・システムと統合して、トラフィック需要に基づいてリアルタイムでインスタンスを追加または削除できるため、開発者は管理ではなくコア・ビジネスのロジックやAPI開発に集中できます。
API Gatewayは、一貫したセキュリティーとポリシーを定義および適用し、ネットワーク全体にトラフィックをプロビジョニングすることで、DevOpsのデプロイメントを加速することもできます。この一元管理により、チームはより広範なエコシステムに影響を与えることなく、独自にサービスの拡張や更新を行う自律性を得られ、リソースの割り当てとイノベーションのスピードが向上します。
最後に、ゲートウェイは複数バージョンのAPIを効果的に管理できるため、開発者はデプロイメントの前に複数回のイテレーションをテストしたり、特定のユースケースを対象に古いAPIバージョンのインスタンスを維持したりできます。
APIにはそれぞれ異なる役割と責任がありますが、共通のワークフローを共有することもよくあります。例えば、多くのAPI呼び出しは、セキュリティー・プロトコルに準拠するために同一の承認および検証プロセスを経ます。各APIは、使用率やトラフィックについてのインサイトを得るために使用される、同じロギング・ポリシーや監視ポリシーに従う場合があります。APIが収益化されている場合、最終的にすべての呼び出しを請求サービスにルーティングすることが必要な場合もあります。API Gatewayはこれらの各タスクをオーケストレーションして自動化できるため、開発者は各API呼び出しごとに手動でタスクを実行する必要がなくなります。
API Gatewayはまた、Secure Sockets Layer(SSL)ターミネーション(パスワードやクレジットカード番号などの機密データをゲートウェイで復号化する方法)にも対応しており、この処理能力を大量に消費するタスクを個々のAPIからオフロードします。さらに、アプリケーションの複数のイテレーションが同じサーバーにデプロイされている場合、API Gatewayはヘッダー、URLパス、クエリー・パラメーターを読み取ることで、トラフィックを適切なバージョンへとシームレスに送信できます。
APIは最新のITインフラストラクチャーにおいて重要な役割を果たすため、DDoS攻撃、パラメーターの改ざん、インジェクション攻撃、その他の脅威などのサイバー攻撃のリスクにさらされることがよくあります。API Gatewayは、レート制限、API認証、リクエスト承認、その他の技術を使用して、これらの脅威から保護するのに役立ちます。
API Gatewayには多くの場合、主要な機能にIDおよびアクセス管理(IAM)システムを統合し、誰がどのサービスとのインタラクションを試みているのかを可視化します。また、APIの使用状況を監視し、トラフィックを記録し、メトリックを分析して、攻撃が発生する前に疑わしい動作や脆弱性を特定することもできます。さらに、API Gatewayは、悪意のあるHTTPトラフィックを監視、フィルタリング、ブロックするWebアプリケーション・ファイアウォール(WAF)などのツールと組み合わせて使用できます。
API Gatewayはハイブリッドクラウド・アーキテクチャーをサポートしており、ユーザーがRepresentational State Transfer(REST API)、SOAP、gRPC、WebSocketなどのさまざまなプロトコルやデータ形式を使用するバックエンド・サービスとやり取りできるようにします。
API Gatewayがないと、API 呼び出しをアクセス可能な形式に手動で変換することが困難になる可能性があります。ゲートウェイは、データとプロトコルの変換を実行し、要求と応答をクライアントとサービスの両方が理解できる形式に自動的に変換することで、この課題に関する負荷を軽減します。
企業は、API Gatewayと開発者ポータル(開発者が新しいAPIを発見して実装できる中央リポジトリー)の間でドキュメントとアクセス・キーを同期し、開発環境に最新のAPIのロールアウトと更新を正確に反映させることもできます。
レガシー・アプリケーションは、特にSaaSやIoT(モノのインターネット)などの最新のAPI実装と互換性がない場合、進歩の障害となる可能性があります。しかし、レガシー・アプリには簡単に置き換えられない重要なデータや機能が含まれているため、多くの場合は保持しておく価値があります。
API Gatewayを使用すると、企業はレガシー・アプリケーションを放棄したり、ゼロから再構築したりする代わりに、最新のクラウド設定でレガシー・アプリケーションを再使用および転用できるようになります。このゲートウェイの変換機能により、企業は、社内の他のメンバーが新規システムに移行した場合でも、レガシー・アプリの元のコードとフォーマットを保持できます。
サービスを小さな部分に分割するなどの役割を担う分離機能により、API Gatewayはレート制限やスロットリング、その他のツールをレガシー・アプリに適用して、その機能をモダナイズし、ライフサイクルを延ばすことができます。このストラテジーは、企業がバックグラウンドでサービスを更新する場合においても、サービスをオンラインに保つことに役立ちます。
アプリケーションのインバウンド・トラフィックのコントロール・センターとして、API GatewayはAPIの使用状況とパフォーマンスの包括的な概要を提供します。カスタム・チャートやダッシュボードは、トラフィック・パターン、スループット、応答時間、その他のメトリクスを視覚化するのに役立ちます。通知機能は、アプリケーションのパフォーマンスやセキュリティーに影響を与える前に、潜在的なエラーや侵害をチームに警告します。
API Gatewayは複雑なルーティング問題を解決するのに役立ちますが、新たな問題を引き起こす可能性もあります。一般に、次のような課題があります。
API Gatewayは通常、API通信、リソースの割り当て、ルーティング・リクエストの合理化に役立ちます。ただし、誤った構成や容量不足は逆効果をもたらし、ボトルネックのリスクを高め、システムにさらなる負担をかける可能性があります。サービスの中断や速度低下を回避するために、企業が新規クライアントを獲得し、サービスの提供を拡大する際に、より多くのリソースをプロビジョニングできます。
API Gatewayは企業のAPIエコシステムに追加のレイヤーを導入するため、保守、コンピューティング、専門知識が必要になります。開発者にとっては、API Gatewayを仮想環境で正確に再現することが難しいため、新しいデプロイメントのテストがより困難になる可能性があります。この制限により、ロールアウトがシステムにどのような影響を与えるかをチームが事前に知ることが難しくなっています。
コードとしてのインフラストラクチャー(IaC)と呼ばれるDevOpsプラクティスは、構成ファイルを使用してインフラストラクチャーの管理と標準化を自動化することにより、これらの課題に対処します。このアプローチにより、保守とプロビジョニングが簡素化され、ITチームはアーキテクチャーの複雑さを軽減しながらAPI Gatewayの効率を最大化することができます。
API Gatewayは単一のエントリー・ポイントとして機能するため、API Gateway自体がサイバー攻撃や侵入の可能性のある矛先となる可能性があります。また、脅威やエラーが複数のバックエンド・サービスを通じて連鎖的に広がる可能性も高くなり、APIトラフィックが遮断され、正常なアプリケーションに損害を与えるかもしれません。
このリスクを軽減するために、企業は環境やアベイラビリティー・ゾーン全体で複数のゲートウェイ・インスタンスを維持し、1つがオフラインになっても、一時的に別のゲートウェイがそのインスタンスを引き継ぐことができます。同様に、組織はエッジ・ゲートウェイやサービス・メッシュなどのさまざまなタイプのゲートウェイを使用して、ルーティングと管理の責任を複数のエントリー・ポイントに分散できます。
組織が特定のニーズを満たすAPI Gatewayを選択し、そのゲートウェイを中心にAPI環境を構築してしまうと、別のベンダーに移行するには費用と時間がかかる場合があります。場合によっては、組織は設定をより細かく制御するために、マネージド・サービスの使用ではなく、オープンソース・ゲートウェイのセルフホストを選択することもあります。ただし、組織がセルフホスト型オプションを選択した場合、開発チームにとってコストの高いアプローチとなる可能性があります。
AIを活用した自動化機能で、API、アプリケーション、イベント、ファイル、B2B/EDIにおいて俊敏性を促進します。
アプリケーションとシステムを接続して重要なデータに迅速かつ安全にアクセスする IBM 統合ソリューションにより、ビジネスの可能性を最大限に引き出します。
IBM Cloudコンサルティング・サービスで新しい機能を解き放ち、ビジネスの俊敏性を高めましょう。ハイブリッドクラウド戦略と専門家のパートナーシップを通じて、ソリューションを共創し、デジタル・トランスフォーメーションを加速させ、パフォーマンスを最適化する方法をご覧ください。