AWS_API_Gatewayとは?API の作成と管理が容易にできるサービス

 

AWS_API_Gatewayとは

Amazon API Gateway は簡単にAPI の作成と管理が可能となる完全マネージド型のAPIサービスです。

API Gateway はLambdaと連携してサーバレスアーキテクチャーを構築する際に頻繁に利用されます

APIゲートウェイは、APIを介してバックエンドサービスへのHTTPからのアクセスを提供します。Lambdaファンクションと統合することでHTTPからの制御が可能となります。これにより、 顧客がHTTP経由でこれらの機能を呼び出すことができるようになります。

API Gateway はトラフィック管理、認可とアクセスコントロール、モニタリング、API バージョン管理など、最大数十万規模の同時 API コール処理が可能です。

API Gateway には最低料金や初期費用はなく、受信したAPI コールと転送データ量に応じて課金されます。

API Gatewayは完全に言語を利用せずにワークフローによる実装が可能というわけではなく、Lambda関数などによるコーディング処理と統合させる必要があります。

 

参考サイト

 

特徴

サーバーを必要とせずに API Gatewayを利用できるのが特徴です。

HTTP経由の呼び出しリクエストという要件から、API Gatewayを利用する典型的なユースケースとなります。

API Gatewayは、APIを介してバックエンドサービスへのHTTPからのアクセスを提供します。

Lambdaファンクションと統合することで、サーバレスアプリケーションのHTTPからのリクエスト制御が可能となります。

 

誰がなぜ利用するの?

 

誰が使うの?

 

なぜ使うの?

 

何ができるの?(機能)

API Gatewayは、APIを介してバックエンドサービスへのHTTPからのアクセスを提供します。

Lambdaファンクションと統合することでHTTPからの制御が可能となります。

これにより、 顧客がHTTP経由でこれらの機能を呼び出すことができるようになります。

顧客がHTTP経由でLambda関数からDynamoDBデータを取得・登録・変更することができる。

 

具体的な手順としては、AWS Lambda 関数を HTTPS 経由で呼び出すことができます。

これを行うには、Amazon API Gateway を使用してカスタム REST API とエンドポイントを定義し、個々のメソッド (GET や PUT など) を特定の Lambda 関数にマッピングします。

また、ANY という特殊なメソッドを追加して、サポートされているすべてのメソッド (GET、POST、PATCH、DELETE) を Lambda 関数にマッピングすることもできます。

API エンドポイントに HTTPS リクエストを送信するときに、Amazon API Gateway サービスが、対応する Lambda 関数を呼び出します。

 

 

 

 

 

Lambdaとの連携

APIコードを変換して、Lambda関数とAPI Gatewayを使用したサーバレスアプリケーションに移行することが可能です。

Lambdaではインフラストラクチャに料金を支払うことなく、Lambda関数の実行時間にのみ料金を支払うため、コストを節約できます。

そして、それに応じてスケーリングできるAWS Lambda関数とともにAPI Gatewayを統合して、APIを生成・管理することができます。

 

API Gatewayを利用することでLambda関数をHTTPS 経由で呼び出すことができます

そのためには、Amazon API Gateway を使用してカスタム REST API とエンドポイントを定義して、特定の Lambda 関数にマッピングします。

また、ANY という特殊なメソッドを追加して、サポートされているすべてのメソッド (GET、POST、PATCH、DELETE) を Lambda 関数にマッピングすることもできます。

API エンドポイントに HTTPS リクエストを送信するときに、Amazon API Gateway サービスが、対応する Lambda 関数を呼び出します

 

ユースケース

あなたの会社はインスタグラムなどの各種SNSと連携したモバイルアプリケーションの運用を行っています。

インスタグラムデータはDynamoDBテーブルに取得・保存しています。

あなたはソリューションアーキテクトとして、WEB画面からの操作で、特定ワードからインスタグラムの投稿ランキングが表示される機能を追加するように依頼されました。

 

費用対効果が高いスケーラブルなソリューション対応

  • Lambda と API Gateway を利用する

 

理由

このシナリオでは、アプリケーション画面から特定ワードによるインスタグラムの投稿ランキングを実行する機能に対してスケーラブルに費用対効果が高い実装方式が求められています。

ここで最も可能性の高いアーキテクチャはLambdaとAPI Gatewayを使用することです。

EC2インスタンスを増加させて対応することもできますが、常に実行されるEC2インスタンスを使用する場合とは異なり、API GatewayとLambda関数は使用した場合にのみ料金が発生するため、コストを抑えることができます。

これにより、APIコールに基づいてLambda関数がインスタグラムデータを取得・保存しているDynamoDBテーブルからデータを取得して、ランキング処理をすることが可能です。

 

ECSとFargateを利用したマイクロサービスアーキテクチャでも、このようなモバイルアプリは構築可能ですが、Lambda関数を利用した場合に比較すると、コスト最適とは言えません。

 

 

API タイプ

RESTful API

ユーザーがAmazon API を介して基盤となるサービスに移動した場合、AWS X-Rayを使用してユーザーリクエストを追跡および分析できます。

API Gatewayは、すべてのAPI Gatewayエンドポイントタイプ(地域、エッジ最適化、プライベート)のAWS X-Rayトレースをサポートしています。

X-Rayが利用可能なすべてのリージョンでAmazon API GatewayでAWS X-Rayを使用できます。

 

 

WEBSOCKET API

 

 

 

 

権限設定について

API Gatewayの権限管理として、開発者、IT管理者、およびユーザーに適切なレベルの権限を与えて管理する必要があり、API Gatewayに対するアクセス権限の設定方法が問われています。

IAMポリシーを利用したアクセス権限でAmazon API Gatewayへのアクセスを制御します。

 

Amazon API Gatewayへのアクセスを IAM アクセス権限で制御するには、 2 つの API Gateway コンポーネントプロセスへのアクセスを制御します。

API の呼び出しや API キャッシュの更新を API コール元に許可するには、IAM ユーザー認証が有効な API メソッドを呼び出すことを、特定の API コール元に許可する IAM ポリシーを作成する必要があります。

API 開発者は、メソッドの authorizationType プロパティを AWS_IAM に設定して、呼び出し元が認証対象の IAM ユーザーのアクセスキーを送信することを要求します。

次に、このポリシーを、API コール元としての IAM ユーザー、ユーザーが属する IAM グループ、またはユーザーが引き受ける IAM ロールにアタッチします。

 

 

Lambda関数を利用したデータ取得処理機能を実装して、Amazon API GatewayとLambda関数を統合することで、Lambda関数をHTMLからアクセスして利用することが求められています。

API Gateway は完全マネージド型サービスでAPI の作成、配布、保守、監視、保護が可能なサービスです。

AWS Lambda で実行されるコードからデータ、ビジネスロジック、機能にアクセスするための「玄関」として機能する REST API および WebSocket API を作成できます。

HTMLに直接書き込んでコードを呼び出すことも可能です。

 

ユースケース

要件

サーバレスアプリケーションでは、データベースへのデータ登録とデータ取得処理を、HTTP経由の呼び出しリクエストによって実現したい

HTTP経由の呼び出しリクエストという要件から、API Gatewayを利用する典型的なユースケースとなります。API Gatewayは、APIを介してバックエンドサービスへのHTTPからのアクセスを提供します。Lambdaファンクションと統合することで、サーバレスアプリケーションのHTTPからのリクエスト制御が可能となります。

 

Amazon API GatewayAWS Lambdaを使用してサーバレスアーキテクチャーを構築しています。 このアプリケーションではユーザーがAmazon API GatewayRestful APIを使用してサービスを呼び出す際に、ユーザーリクエストを追跡・分析することが要件となっています。

この要件を満たすためサービス

  1. AWS X-Ray

ユーザーがAmazon API を介して基盤となるサービスに移動した場合、AWS X-Rayを使用してユーザーリクエストを追跡および分析できます。 API Gatewayは、すべてのAPI Gatewayエンドポイントタイプ(地域、エッジ最適化、プライベート)のAWS X-Rayトレースをサポートしています。 X-Rayが利用可能なすべてのリージョンでAmazon API GatewayでAWS X-Rayを使用できます。