はじめに
本記事では、Amazon API Gatewayについて、初心者でも分かりやすいように簡単なイメージを使い、解説しています!
Amazon API Gatewayについて、イマイチ理解が出来ない方は、ぜひご覧ください!
Amazon API Gatewayとは?
ざっくり説明すると…
・APIの作成、管理、保護、監視などを簡単に行うことができるフルマネージド型のAPI管理サービス
・ユーザーから届いた要請を個別のサービスにルーティングする役割
そもそもAPIとは何かについて解説します!
APIとは
アプリケーションがサーバーにリクエストをして、結果をレスポンスする一連の流れのこと。
具体的にみていきましょう!
ある旅行予約サイトのアプリケーションが、ホテルの予約状況を知りたかったとしましょう。
その場合、アプリケーションから予約状況の分かるサーバーにリクエストを投げ、目的の予約情報が得られるとします。この一連の流れがAPIの仕組みです。
![](https://asa3-cloud.com/wp-content/uploads/2023/11/52f48632f0112196e551b28115fd0e89.png)
APIについて復習ができたところで、続いて「Amazon API Gateway」の概要について解説します!
Amazon API Gatewayの概要
Amazon API Gatewayは、AWSサービスに接続をするための入り口といった認識を持っておければ大丈夫です!
API Gatewayで受け付けたリクエストは、実際に処理を行うAWSサービスに連携されます。
![](https://asa3-cloud.com/wp-content/uploads/2023/12/341e99d3eb0c06dcbd61149c768941ef-1024x411.png)
まとめると、Amazon API GatewayはAWSサービスに接続をするための入り口となり、簡単にAPIの作成、配布、保守、監視、保護が行えます。
Amazon API Gatewayのエンドポイントタイプ
Amazon API Gatewayを作成すると、特定のリージョンにAPIがデプロイ(配置)されます。
その際にデプロイされたAPIのホスト名のことをAPIエンドポイントと呼びます。
APIエンドポイントには、トラフィック発信元によって以下の3つのタイプに分かれます。
- エッジ最適化 APIエンドポイント
- リージョン APIエンドポイント
- プライベート APIエンドポイント
エッジ最適化 APIエンドポイント
最寄りのCloud Frontから通信を受けることができます。
そのため、地理的に分散されたクライントの接続と低レイテンシーを実現できます。
![](https://asa3-cloud.com/wp-content/uploads/2023/12/d17d23065948a904385f5991acd716fe.png)
リージョン APIエンドポイント
APIと同一リージョン内のクライアントからの通信を受けることができます。
そのため、同一リージョン内のクライントと低レイテンシーの接続を実現できます。
![](https://asa3-cloud.com/wp-content/uploads/2023/12/04b7c6bff40dfcbc83370afbb5902e27-1024x282.png)
プライベート APIエンドポイント
APIと同一のVPC内のクライアントからの通信を受けることができます。
①と②のようにパブリックなエンドポイントを持たないため、安全に公開することが可能です。
![](https://asa3-cloud.com/wp-content/uploads/2023/12/97dc6974c1d54fc471d9abdd0f62f40a-1024x247.png)
コンソール画面で、簡単にエンドポイントの選択が可能です▼
![](https://asa3-cloud.com/wp-content/uploads/2023/12/afb8afc6ccbd7238984a059144cc7673-1024x681.png)
リクエスト・レスポンス構造
クライアントからリクエストを送り、レスポンスが返ってくるまでのフローで4つの設定が可能です。
まずは全体像を把握して、その後ひとつひとつの設定について見ていきましょう!
![](https://asa3-cloud.com/wp-content/uploads/2023/12/0bac56424730fb492ff3e901bc880e73-1024x505.png)
- メソッドリクエスト
- 統合リクエスト
- 統合レスポンス
- メソッドレスポンス
①メソッドリクエスト
クライアントからのリクエストを受付するような役割です。
仕様や文法があっているか、適切に記述されているかを確認することで、誤った形式のリクエストを後続のサービスに送信して、余分な処理が走らないようにチェックします。
![](https://asa3-cloud.com/wp-content/uploads/2023/12/12f9bd47c74d0b0e85a80299ea44b672-1024x326.png)
②統合リクエスト
バックエンドとの接続情報を設定します。
必要に応じて、マッピングテンプレートという機能を使用して、データの形をカスタマイズすることができます。
![](https://asa3-cloud.com/wp-content/uploads/2023/12/91a3c00b764fd95d9de7638513f6c73b-1024x304.png)
③統合レスポンス
バックエンドサービスからのレスポンスに関する設定を行います。
レスポンスの内容を必要に応じてカスタマイズすることができます。
![](https://asa3-cloud.com/wp-content/uploads/2023/12/e72540760f3a48e8ce29af64381cf943.png)
④メソッドレスポンス
リクエストに対する最終的なレスポンスに関する設定を行います。
具体的には、レスポンス内のステータスコードや、レスポンスヘッダ等の設定を行います。
![](https://asa3-cloud.com/wp-content/uploads/2023/12/1eae0b349406787e7ac1d60924293d38.png)
APIキャッシュ機能
APIキャッシュを使用することで、バックエンドサービスに送信されるリクエストの数を減らすことが可能になります。
![](https://asa3-cloud.com/wp-content/uploads/2023/11/01ad073ebf9abd0bb8f8fe755a688cd8.png)
- 低レイテンシーでのレスポンスが可能
- バックエンド・サービスに不要な負荷をかけない
- コスト削減
キャッシュを有効にすると、秒単位で指定した有効期限 (TTL) が切れるまで、エンドポイントからのレスポンスをキャッシュします。
・API キャッシュのデフォルトの TTL 値は 300 秒
・最大の TTL 値は 3600 秒
コンソール画面で、簡単にキャッシュの有効化が可能です▼
![](https://asa3-cloud.com/wp-content/uploads/2023/12/a5d5d7687ed50a733575fd044683ec9d-1024x451.png)
APIキーとは?
API キーは、API へのアクセスを制御するために使用する英数字の文字列のことです。
API GatewayからAPIキーを発行することで、以下のことが可能になります。
APIキーはプロジェクト単位で割り当てることができるため、利用者の使用状況を確認したり、権限を持たない人からの接続を防いだりできます。
その結果、セキュリティを高める効果が期待できます。
まとめ
本記事では、API Gatewayについて解説しました。
API Gatewayの活用はAPIの運用を行う上で非常に重要なツールとなります。
要件にあわせて、正しく活用していきましょう!