ウェブアプリケーション - AWS によるサーバーレス多層アーキテクチャ: Amazon API Gateway と AWS Lambda の使用

ウェブアプリケーション

ウェブアプリケーションのアーキテクチャパターン

表 3 - ウェブアプリケーションのコンポーネント

コンポーネント
プレゼンテーション層

フロントエンドアプリケーションはすべて、create-react-app などの React ユーティリティによって生成される静的コンテンツ (HTML、CSS、JavaScript、画像) です。Amazon CloudFront はこれらすべてのオブジェクトをホストします。ウェブアプリケーションを使用すると、すべてのリソースがブラウザにダウンロードされ、そこから実行が開始されます。ウェブアプリケーションは API を呼び出すバックエンドに接続されます。

ロジック層

ロジック層は、API Gateway REST API を代表する Lambda 関数を使用して構築されます。

このアーキテクチャでは、複数の公開されたサービスが示されています。複数の異なる Lambda 関数があり、それぞれがアプリケーションの異なる側面を処理します。Lambda 関数は API Gateway の背後にあり、これには API URL パスを使用してアクセスできます。

ユーザー認証は Amazon Cognito ユーザープールまたはフェデレーティッドユーザープロバイダーを使用して処理されます。API Gateway では、Amazon Cognito とのアウトオブボックス統合が使用されます。ユーザーが認証された場合のみ、クライアントが JSON Web Token (JWT) トークンを受け取ります。このトークンは API コールで使用されます。

各 Lambda 関数には独自の IAM ロールが割り当てられ、適切なデータソースへのアクセスを提供します。

データ層

この例では、DynamoDB をデータストレージに使用していますが、ユースケースや使用シナリオに応じて、他の専用の Amazon データベースまたはストレージサービスを使用することもできます。