AWS API Gatewayとは?【AWS認定試験 SAA/DVA/CLF対策】
本ページでは、AWS API Gatewayについて、初心者向けにその特徴や用途を紹介します。
私自身が「初めて勉強したとき、これを知りたかった!」と感じた内容を中心にまとめていますので、ぜひ最後までご覧ください!

AWS 認定クラウドプラクティショナー
(AWS Certified Cloud Practitioner, CLF)
AWS 認定ソリューションアーキテクト アソシエイト
(AWS Certified Solutions Architect – Associate, SAA)
AWS 認定デベロッパー アソシエイト
(AWS Certified Developer – Associate, DVA)
API Gatewayの概要
AWS API Gateway(エーピーアイ ゲートウェイ)は、オンラインサービスへのリクエストを受け付ける機能を提供するサービスです。APIを作るときに利用するのですが、初見では正直分かりにくいかなと思います。
API Gatewayについて、まとめてざっくり言ってしまうと…
です!

まずAPI (Application Programming Interface) とは、サービスを作った人が、そのサービスを外部の人に使ってもらうために公開するインターフェース(受付窓口のルール的なもの)です。

「こういうふうに問い合わせてくれれば、こういうふうに回答しますよ」というルールを決めます。そのルールを相手に伝えておけば、それに従って使ってもらえますよね。
APIでは、この問い合わせのことを「リクエスト」、回答を「レスポンス」と呼びます。
ルール化の方法によってAPIにもたくさんの種類が存在しますが、API GatewayはWeb APIを対象としています。インターネット経由で使えるAPIのことで、APIと言ったらWeb APIといっても過言ではないくらい、主流となっているものです。
API GatewayはAPIリクエストを受け付け、その内容を他のサービスに中継し、結果をAPIレスポンスとして返す、窓口としての役割を果たします。

アイコン

こちらが、アーキテクチャ図で用いられるAPI Gatewayのアイコンです。
受付窓口の機能を果たすところから、両開きの扉をイメージしたアイコンになっているんですね!
API Gatewayのメリット
大規模な窓口でも、簡単に作成可能
あるサービスと外部とを繋ぐためにAPIが必要ですが、APIの窓口を用意して公開する作業は本来非常に大変なものです。特に大規模な場合は、必要な性能を出すために頭を悩ませることになります。

そんな中でもAPI Gatewayは、簡単にAPIを作成・公開することを可能にするサービスになっています。特に、AWSの他サービスに中継する場合は、少しの設定項目を入力するだけで簡単に連携させることができます。
さらには、面倒な運用や保守までAWSがやってくれる、マネージドサービスです。
セキュリティ管理や、状況の監視が簡単
「受付窓口」という例えから想像しやすいと思いますが、外部とやり取りをする性質上、以下のようなポイントを気にすることが多いです。
- リクエストを受け付ける相手を制限したい
- 事前に利用登録をしたアカウントの人だけ
- 特定のPCだけ
- リクエストの受付状況を確認したい

リクエスト元が誰かを確認し、受付を許可する作業を一般的に認証・認可と言います。API Gatewayでは、多数の認証・認可の仕組みをサポートしており、これを使うことでリクエストを受け付ける相手を制限することが可能です。
また、リクエストの受付状況(言わば、受付窓口の混雑状況)を簡単に確認することができます。さらには、一定以上の混雑具合を超えたら、自動で受付を制限するような仕組み(スロットリング)も備わっており、これによって混雑具合を制御できます。
API Gatewayのデメリット(注意点)
使用には、API設計に関する知識が必要
手軽にAPIを作成・公開できるサービスではありますが、実際に使うためには最低限、APIに関する知識が必要です。
上でも述べたように、APIにも様々な種類があり、API Gatewayが対応するものにはREST API、HTTP API、WebSocket APIがあります。さらには、このそれぞれに基本ルールが存在しますので、それを理解した上で設計していく必要があります。

何らかのアプリケーションを設計開発するとき、API(特にWeb API)という単語は本当によく出てきます。その概要だけでも理解しておくと、いろいろな議論が理解しやすくなりますよ!
代表的な使い方
API Gatewayはあくまで受付窓口として役割ですので、その裏側の処理次第で様々な使い方が考えられます。言ってしまえば、可能性無限大です!
ですが、最も代表的なものと言えば、やはりAWS Lambdaとの組み合わせによるサーバーレスなアプリケーションの構築です。以下でもう少し具体的に説明します。
Lambdaと組み合わせて、APIを作成

API Gatewayでは、実行リクエストのあったAPIの種類(URIやHTTPメソッド)に応じて、動かすLambdaを指定することができます。この例では、Lambdaによって何らかの処理を実行後、その結果をDynamoDBに保存します。
LambdaやDynamoDBについてはご存じでない方は、ぜひこちらを参照してください。


まとめ
ここまで、AWS API Gatewayの概要や代表的な使い方についてまとめました。
API Gatewayは、外部からのAPIリクエストの受付・管理し、他のAWSサービスに中継してくれる、受付窓口のようなサービスでした。最近では、APIを使って複数のアプリケーションを連携させて一つのアプリケーションが作られていることが多く、APIに対する重要度はますます高まっています。AWSでAPIを作成したいとなれば、ほぼ必ず出てくるのがAPI Gatewayです!
この記事を通じて、少しでもAPI Gatewayに対する理解が深まれば幸いです。
