このページの本文へ

前へ 1 2 次へ

実績と未来を見せた「AWS Summit 2016」 第4回

LambdaとAPI Gateway担当者がわかりやすく説明

エンジニアを魅了するサーバーレスと進化を続けるLambda

2016年06月03日 12時00分更新

文● 大谷イビサ/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

LambdaとAPI Gatewayのユースケースとは?

 Lambdaは3つのデータ処理、バックエンド、サーバーレスなどユースケースが想定される。

 まずデータ処理はLambdaで最初に考えられたユースケースだ。たとえば、画像のオブジェクトをS3やDynamoDBに置いた段階で、それをトリガーにして、Lambdaが呼び出され、圧縮やリサイズ処理を行なうという処理が可能だ。

データストアにトリガを設置し、Lambdaを呼び出すオーソドックスなケース

 2つ目はモバイルデバイスやIoTに向けたスケーラブルなバックエンドを構築するという例だ。モバイルアプリであればAWS Mobile SDK+Amazon Cognito、IoTであればAWS IoTでバックエンドを開発し、Lambdaで拡張性を持たせる。

 最後はAPI Gatewayと組み合わせたサーバレスAPIだ。API Gatewayを使うとサーバーがなくともAPI Gatewayがリクエストを受け、Lambdaを呼び出すことが可能になる。スケーリングやスロットリング、APIの認証などの面倒な処理はすべてAPI Gatewayが行なってくれる。

 ワーグナー氏は、具体的なシステムの構築例を披露する。たとえば、既存のWebサイトをサーバレスで構築するケース。まず、動的コンテンツの場合は、API GatewayからHTTP経由でリクエストを受け、DynamoDBから得たデータでLambdaが動的に生成する。一方で、静的コンテンツはS3の格納し、HTTPリクエストに対応して、ユーザーに提供される。

サーバーレスなWebアプリをLambdaで実現

 もう少しユニークな使い方も可能だ。たとえば、AlexaアプリとSlackを組み合わせればサーバーレスのボットが構築できる。Alexaに対して「今からデモを送ると、Slackで送信して」と声をかけると、Lambdaがキックされて、Slackにメッセージが送られるといったものだ。業務処理の自動化という点でもいろいろ活用できそうだ。

AlexaやSlackと連携したサーバーレスボットの構築

日本でも導入の進むLambda。進化はまだ続く

 2014年のre:Inventで発表されたLambda、API Gatewayだが、すでに日本での導入が進んでいる。たとえばキヤノンはモバイルデバイスからのオンデマンドな印刷で、API GatewayとLambdaを活用している。また、受発注システムでLambdaとAPI Gatewayを導入した岡三オンライン証券は、今までの1/10の開発期間、1/7のコスト削減を実現した。さらに機械学習を活用した仕事探しを提供するリクルートジョブズも、モバイルデバイスからの膨大なデータをAPI GatewayとLambdaでクラウドに投入しているという。

日本でもLambda+API Gatewayの利用事例が続々

 機能拡充も進んでいる。re:Invent 2015の発表ではPythonやスケジュールされた関数、バージョニングなどに対応し、実行時間も最大5分に延長された。それ以降では、たとえば対応のNode.jsのバージョンを4.3.2になったり、コードのストレージの上限が5GBから75GBになったり、複数のバージョンをステージングできる関数がサポートされている。

Lambdaの新機能

 以降、ワーグナー氏はLambdaの新機能に関して、さまざまなTIPSを披露。たとえば、関数をウォーム状態に保つためのスケジューリングの方法や関数のバージョンニングやロールバックのお作法、Lambda関数を自身のVPC内で行なうためのベストプラクティスなど、どれも実用性の高いものだった。

 Lambdaを使ったサーバーレスのマイクロサービスを構築するには、AWSのCloud FormationやOSSのServerless.comを利用できるほか、先週はGitHubのOSSプロジェクトである「Flourish」が発表された。「Flourishはサーバーレスのアプリケーションモデルを提供する。LambdaのAPIを使って、個別の関数ではなく、アプリケーション全体での関数のバージョン管理を行なえるようにする」(ワーグナー氏)。

 Cloud FormationでのLambdaのデプロイをデモしたワーグナー氏は、「サーバーレスコンピューティングのマニフェスト」を掲げ、開発者の理解を求めた。たとえば、デプロイの単位が関数であること、プログラミングからは仮想マシンやコンテナが見えないこと、永続的なストレージは分散していること、スケーリングはリクエストごとなど、Lambdaの特徴がわかりやすくまとめられていた。

サーバーレスコンピューティングのマニフェスト

 最後、ワーグナー氏は事例をチェックし、Lambdaを試用し、他の製品と組み合わせることで、サーバーレスコンピューティングを簡単に始められるとアピール。「ぜひエキサイティングなサーバーレスの革命に参加して欲しい」と講演を締めた。

■関連サイト

前へ 1 2 次へ

カテゴリートップへ

この連載の記事