目次
1. APIゲートウェイとは?初心者にもわかりやすく解説
APIゲートウェイとは、APIの管理や実行を容易にするしくみです。
APIとは、ソフトウェアやアプリケーションなどの一部を外部に向けて公開することにより、第三者が開発したソフトウェアと機能を共有できるようにしてくれるものです。
APIゲートウェイはクライアントから受け取ったリクエストを、それぞれのマイクロサービスにルーティングします。
通常のマイクロサービス・アーキテクチャの場合クライアントとそれぞれのAPIは個別に通信を行うことになります。
例えば、1つのWebサービスに「決済サービス」「ショッピングカート」「メール機能」「レコメンド機能」といった複数のAPIが使われている場合、クライアントはそれぞれのAPIと個別に通信することになりこの例でいえば計4回の通信が発生します。
APIゲートウェイを使うと、クライアントはAPIゲートウェイと通信を行い、APIゲートウェイがそれぞれのマイクロサービスと通信するためクライアントはマイクロサービスを知る必要がありません。
2. Amazon API Gatewayとは?
1でご紹介したAPIゲートウェイを提供するサービスの一つに、「Amazon API Gateway」があります。この「Amazon API Gateway」についてわかりやすくご紹介いたします。
a) Amazon API Gatewayの概要
Amazon API Gatewayは、Amazonが提供する AWS (Amazon Web Services) というサービスの中の一機能です。AWSとは、インターネット上で様々なITリソースを利用できる仕組みであるクラウドサービスです。
Amazon API Gatewayは完全マネージド型サービスで、どんな規模のシステムであっても簡単にAPIの作成、配布、保守、監視、保護が行えます。
トラフィック管理、認可とアクセスコントロール、モニタリング、APIバージョン管理などAPIコールの受け入れと処理に伴うすべてのタスクを取り扱います。
マネージド型サービスとは、クラウドのコンピューティング機能だけではなく運用管理も一体としてサービス提供するタイプのサービスです。マネージド型サービスを利用することで利用者はサーバー構築や障害対応など、サーバー運用に関する様々な作業から解放されます。
Amazon API Gatewayを利用するには、API Gatewayコンソールで操作を行います。APIのリストを表示したり、もう使用しないAPIを削除するなど様々な操作が行えます。
b) Amazon API Gatewayの機能
Amazon API Gatewayではどんな機能を利用できるのか、簡単にいくつかご紹介します。
(i) APIの管理
Amazon API Gatewayでは以下の機能を提供しています。
- インフラの管理、運用
- バージョン管理
- 認証
- APIのレスポンス状況の監視、モニタリング
フルマネージド型サービスのため、利用者は上記のサービスを利用する必要がなく、AWSが提供したものを利用するだけで済みます。
(ii) APIの作成
Amazon API GatewayではAPIの作成が行えます。例えばAWS上でプログラムを実行できる機能であるAWS Lambdaで関数を定義し、API GatewayでAPI名を入力、create apiボタンを押下するとAPIが作成できます。
clone機能を使って既存のAPIをコピーすることもできます。
c) Amazon API Gatewayのメリット
Amazon API Gatewayを利用するメリットは何でしょうか。簡単にいくつかご紹介します。
(i) 効率的なAPI開発
Amazon API GatewayではAPIのバージョン管理が容易です。
同じAPIの複数のバージョンをAPI Gatewayと同時に実行することで、新しいバージョンの反復、テスト、リリースが行えます。
(ii) 簡単なモニタリング
AWSでは、サービスへの呼び出しを視覚的にモニタリングすることができます。(Amazon CloudWatchというサービスの併用が必要となります。)
モニタリングできる項目は以下の通りです。
- APIコール
APIの実行のこと。モニタリングすることで未加工のデータを加工することができます。 - データレイテンシー
レイテンシーとは転送要求を出してから実際にデータが送られてくるまでに生じる、通信の遅延時間です。モニタリングすることでAPIに影響を及ぼす問題が図示されます。 - エラー率に関するパフォーマンスメトリクス
メトリクスとは、定量化したデータを管理に使えるようにした指標のことです。API Gatewayはクライアント側エラーやサーバー側エラーの数をメトリクスとしてCloudWatchに送信し、CloudWatchは受け取ったメトリクスを表示します。
(iii) 規模に応じたパフォーマンス
Amazon CloudFront機能と併用することにより、エンドユーザーへのAPIリクエスト及びレイテンシーを最小限に抑えることができます。トラフィックを抑制し、バックエンドシステムが不必要に呼び出されないようにすることでパフォーマンスの低下を防いでいます。
※トラフィック…インターネットやLANなどのコンピュータの通信回線において、一定時間内にネットワーク上で転送されるデータ量。
(iv) 大規模なコスト削減
AWS API Gatewayの料金は、APIが使用されている分だけかかります。最低料金や初期費用は不要です。例えばREST APIに関しては、受信したAPI呼び出しと送出したデータ量に対してのみ料金が発生します。
また、AWS API Gatewayには無料利用枠もあり、月間のメッセージ数100万件および接続時間750,000分が最大12か月間利用できます。
※REST API…Webシステムを外部から利用するためのプログラムの呼び出し規約の一つ。RESTは、同じURLからは同じ結果が得られるべきだというWebの設計思想。
3. まとめ
ここまで、APIゲートウェイとAWS API Gatewayについてご説明しました。利用するにはAPIやREST通信、パフォーマンスについてある程度の知識や調査が必要なAPIゲートウェイですが、使えばWebシステムのパフォーマンスを大きく改善できそうです。またクラウドサービスでは、ある程度の仕組みをサービス側で用意してくれているのでゼロから準備するよりは負担が随分軽くなるのではないでしょうか。