AWS Lambda
開発者ガイド

モバイルアプリケーションのバックエンドとしての AWS Lambda の使用

AWS Lambda を使用して、モバイルアプリケーションのバックエンドロジックをホストできます。つまり、モバイルアプリのコードの一部を Lambda 関数として実行できます。これにより、モバイルアプリケーション自体に最小限のロジックを配置できるため、スケーリングと更新が簡単になります(たとえば、コードの更新部分をアプリケーションクライアントにデプロイせずに、Lambda 関数にのみ適用するだけで済みます)。

Lambda 関数を作成したら、AWS SDK for Android などの AWS Mobile SDK を使用して、モバイルアプリからその関数を呼び出すことができます。詳細については、「Tools for Amazon Web Services」を参照してください。

注記

また、Amazon API Gateway を使用して Lambda 関数を HTTP 経由で呼び出すこともできます (AWS SDK を使用する代わりに)。Amazon API Gateway は、モバイルユーザーとアプリロジック間に以下を可能にする追加のレイヤーを追加します。

  • 個々のユーザーやリクエストを絞り込む。

  • 分散型サービス妨害攻撃から保護する。

  • Lambda 関数からの応答をキャッシュするキャッシュレイヤーを提供する。

詳細については、「AWS Lambda を Amazon API Gateway に使用する」を参照してください。

モバイルアプリケーションと AWS Lambda の統合のしくみについては、以下の点に注意してください。

  • プッシュイベントモデル – これはアプリがイベントデータをパラメーターとして渡して Lambda 関数を呼び出すモデルです (「AWS Lambda イベントソースマッピング」を参照)。

  • 同期または非同期呼び出し – アプリは Lambda 関数を呼び出して、呼び出しタイプとして RequestResponse を指定することで (または非同期呼び出しには Event 呼び出しタイプを使用することで) リアルタイムで応答を取得できます。呼び出しタイプについては、「権限の管理: Lambda 関数ポリシーを使用する」を参照してください。

  • イベント構成 – Lambda 関数が受け取るイベントは、アプリケーションによって定義され、Lambda 関数は、特定タイプのイベントを処理するために記述されたカスタムコードです。

エンドツーエンドのエクスペリエンスの設定で使用するアクセス許可ポリシーには以下の 2 タイプあります。

  • Lambda 関数のアクセス権限 – Lambda 関数の呼び出し元にかかわらず、AWS Lambda は、Lambda 関数の作成時に指定された IAM ロール (実行ロール) を引き受けることで、その関数を実行します。このロールに関連付けられたアクセス権限ポリシーを使用して、Lambda 関数に必要なアクセス権限を付与します。たとえば、Lambda 関数にオブジェクトの読み取りが必要である場合は、アクセス権限ポリシーで、関連する Amazon S3 アクションのためのアクセス権限を付与します。詳細については、「アクセス権限の管理: IAM ロール (実行ロール) を使用する」を参照してください。

  • モバイルアプリが Lambda 関数を呼び出すためのアクセス権限 – アプリケーションには、Lambda 関数を呼び出すための有効なセキュリティ認証情報とアクセス権限が必要です。モバイルアプリケーションに対して、Amazon Cognito サービスを使用してユーザー ID、認証、アクセス権限を管理できます。

以下の図で示しているのは、アプリケーションのフローです(この図では、モバイルアプリが AWS Mobile SDK for Android を使用して API の呼び出しを行っているとします)。

  1. モバイルアプリケーションは、Amazon Cognito ID プールから AWS 認証情報を取得します。ID プールに関連付けられたロールは、AWS Lambda を使用するためのアクセス許可をアプリケーションに付与します。

  2. モバイルアプリケーションは Lambda 関数を呼び出します。

  3. AWS Lambda は結果をモバイルアプリケーションに返します。