堅牢かつスケーラビリティなアプリケーション開発のためのAWS Lambda活用方法[Serverless Conf Tokyo 2017]

2017年11月2日、3日に開催された「Serverless Conf Tokyo 2017」内のにてセッション「Serverless Patterns and Architectures」にて、AWSでAPI GatewayとServerlessにおける主席プロダクトマネージャーのDougal Balantyne氏と、A Cloud GuruのPeter Sbarski氏が、Function-as-a-Service(FaaS)を用いたシステムの適切なアーキテクチャについて言及しています。

汎用性のあるデザインパターンを理解することにより、堅牢さを保持しつつもFaaSのメリットであるスケーラビリティなアプリケーションの開発が可能になる、と二人は話しています。

そして、AWS Lambdaを活用したサーバレスアーキテクチャの基本的なパターンが6つ紹介されています。

1.Amazon API Gateway経由でLambda Functionを起動

Lambda Functionだけでなく通常のアーキテクチャのアプリケーションも呼び出せる「ハイブリッドアーキテクチャ」

2.GraphQLエンドポイントのLambda FunctionがGraphQLを実行

非常に強力で効果的なパターン

3.API Gateway+Lambda経由でAPIリクエストを処理するサーバーレスバックエンド

APIファーストなアプローチを実現する場合のパターン

4.さまざまなサーバーレスデータ処理

特定のイベントをトリガーにLambdaが呼び出されその後五月雨式に複数の処理が実行されていくパターン

5.Lambdaの大量メトリクス取得とCloud Watch

アプリケーションの稼働状況を効率的に監視するためのパターン

6.SNS+Lambda

SNS 通知によりLambda Functionを起動するパターン

特に「Lambdaの大量メトリクス取得とCloud Watch」については、Lambda Functionの実行と非同期に自動でCloud Watchにログを出力する事ができるため、メトリクスのログへの書き込みが高速に行うことができるとアピールされています。

サーバレスでスケーラブルかつ堅牢なシステムを構築するためのデザインパターンとアーキテクチャ。Serverlessconf Tokyo 2017 - Publickey