Amazon API Gateway

# Amazon API Gateway とは

Amazon API Gateway は、あらゆる規模の REST、HTTP、および WebSocket API を作成、公開、維持、モニタリング、およびセキュア化するための AWS のサービスです。API 開発者は、AWS または他のウェブサービス、AWS クラウドに保存されているデータにアクセスする API を作成できます。API Gateway API デベロッパーとして、独自のクライアントアプリケーションで使用するための API を作成できます。または、API をサードパーティーのアプリ開発者に対して使用可能にできます。詳細については、「API Gateway を使用するユーザー」を参照してください。

API Gateway は、次のような RESTful API を作成します。

- HTTP ベース。

- ステートレスなクライアント/サーバー通信を有効にします。

- GET、POST、PUT、PATCH、DELETE などの標準の HTTP メソッドを実装します。

API Gateway REST API および HTTP API の詳細については、「REST API と HTTP API 間で選択する」、「HTTP API の操作」、「API Gateway を使用して REST API を作成する」、および「Amazon API Gateway での REST API の作成」を参照してください。

API Gateway は、以下のような WebSocket API を作成します。

- WebSocket プロトコルを遵守します。これにより、クライアントとサーバー間のステートフルな全二重通信が可能になります。

- メッセージの内容に基づいて、受信メッセージをルーティングします。

API Gateway WebSocket API の詳細については、「API Gateway を使用して WebSocket API を作成する」および「API Gateway での WebSocket API について」を参照してください。

##### トピック

- API Gateway のアーキテクチャ
- API Gateway の特徴
- API Gateway のユースケース
- API Gateway へのアクセス
- AWS サーバーレスインフラストラクチャの一部
- Amazon API Gateway の使用を開始する方法
- Amazon API Gateway の概念
- REST API と HTTP API 間で選択する
# API Gateway のアーキテクチャ
API Gateway のアーキテクチャを次の図に示します。
![image.png](https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/images/Product-Page-Diagram_Amazon-API-Gateway-How-Works.png)

この図は、Amazon API Gateway で構築した API が、お客様、またはお客様のデベロッパーカスタマーにAWS サーバーレスアプリケーションを構築するための統合された一貫的なデベロッパーエクスペリエンスを提供する方法を示しています。API Gateway では、最大で数十万個の同時 API コールの受け入れ処理に伴うすべてのタスクを取り扱います。これにはトラフィック管理、認証とアクセスコントロール、モニタリング、API バージョン管理が含まれます。

API Gateway は、例えば、Amazon Elastic Compute Cloud (Amazon EC2) で実行されているワークロード、AWS Lambda で実行されているコード、ウェブアプリケーション、リアルタイム通信アプリケーションなど、アプリケーションがバックエンドサービスからデータ、ビジネスロジック、機能にアクセスするための「フロントドア」として機能します。

# API Gateway の特徴
Amazon API Gateway には、次のような機能があります。

- ステートフル (WebSocket) およびステートレス (HTTP と REST) API のサポート。

- AWS Identity and Access Management ポリシー、Lambda オーソライザー関数、Amazon Cognito ユーザープールなど、強力で柔軟な認証メカニズム。

- API を発行するための開発者ポータル。

- 変更を安全に進めるための Canary リリースのデプロイ。

- API の使用状況と API の変更に関する CloudTrail ログ記録とモニタリング。

- アラームの設定機能を含む、CloudWatch アクセスのログ記録と実行のログ記録。詳細については、「Amazon CloudWatch のメトリクスを使用した REST API の実行のモニタリング」および「CloudWatch メトリクスを使用した WebSocket API の実行のモニタリング」を参照してください。

- AWS CloudFormation テンプレートを使用して API の作成を有効にする機能。詳細については、Amazon API Gateway Resource Types Reference および「Amazon API Gateway V2 リソースタイプのリファレンス」を参照してください。

- カスタムドメイン名のサポート。

- 一般的なウェブの脆弱性から API を保護するための AWS WAF との統合。

- パフォーマンスのレイテンシーを理解し、対処順位を決定するための AWS X-Ray との統合。

API Gateway 機能のリリースの完全なリストについては、「ドキュメント履歴」を参照してください。

# API Gateway へのアクセス
Amazon API Gateway には、以下の方法でアクセスできます。

- AWS Management Console – AWS Management Console は、API を作成して管理するためのウェブインターフェイスを提供します。「API Gateway の開始方法の前提条件」のステップを完了したら、https://console.aws.amazon.com/apigateway で API Gateway コンソールにアクセスできます。

- AWS SDK – AWS が SDK を提供しているプログラミング言語を使用している場合は、SDK を使用して API Gateway にアクセスできます。SDK によって認証が簡素化され、開発環境との統合が容易になり、API Gateway コマンドにアクセスすることができます。詳細については、Tools for Amazon Web Services を参照してください。

- API Gateway V1 および V2 API – SDK に対応していないプログラミング言語を使用している場合、Amazon API Gateway Version 1 API Reference と Amazon API Gateway Version 2 API Reference を参照してください。

- AWS Command Line Interface – 詳細については、AWS Command Line Interface ユーザーガイドの「AWS Command Line Interface でのセットアップ」を参照してください。

- AWS Tools for Windows PowerShell – 詳細については、AWS Tools for Windows PowerShell ユーザーガイドの「AWS Tools for Windows PowerShell のセットアップ」を参照してください。

# AWS サーバーレスインフラストラクチャの一部
API Gateway は AWS Lambda と連携して、AWS サーバーレスインフラストラクチャのアプリケーション向けの部分を形成します。

アプリケーションで一般的に利用可能な AWS のサービスを呼び出す場合は、Lambda を使用して必要なサービスとやり取りし、API Gateway で API メソッドを使用して Lambda 関数を公開することができます。AWS Lambda は、可用性に優れたコンピューティングインフラストラクチャでコードを実行します。また、必要に応じて、コンピューティングリソースを実行および管理します。サーバーレスアプリケーションを実現するため、API Gateway は AWS Lambda と HTTP エンドポイントによる合理化されたプロキシ統合をサポートします。

# 参考
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/welcome.html