CodeZine(コードジン)

特集ページ一覧

「AWS Lambda」で実現する、サーバーレスマイクロサービスの未来形

AWS Summit Tokyo 2016レポート

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/06/29 14:00

目次

Lambdaのメリットが存分に享受できるユースケース

 ではLambdaはどんな風に使うとコスト削減とサービス提供の迅速化という価値が得られるのか。「3つのユースケースが考えられる」とWagner氏は語る。

 まず、最も一般的なのがデータ処理での使用。例えば大きなオブジェクトをS3にアップロードすると、それがトリガーとなりLambdaで画像を圧縮、そしてその圧縮済みオブジェクトがS3に保存されるというケースである。

ユースケース:データ処理
ユースケース:データ処理

 次はモバイルアプリやIoTのためのスケーラブルなバックエンド構築での利用例。その場合は次の様な流れになるという。まずモバイルアプリであればAWS SDK Mobile SDKとAmazon Cognito、IoTデバイスであればAWS IoTというようにどちらかを選択。続いて、Lambdaのモバイルバックエンドのブループリント、そしてデータストレージはAmazon DynamoDBを利用する。

ユースケース:モバイルアプリやIoTのためのバックエンド
ユースケース:モバイルアプリやIoTのためのバックエンド

 そして第三がサーバーレスアプリケーションエコシステムでの利用である。これは2つあり、サーバーレスWebアプリケーションの例では、静的コンテンツはAmazon S3、動的コンテンツはLambda、HTTPアクセスはAPI Gateway、NoSQLデータストレージはAmazon DynamoDBを利用する。「この方法についてはブログや書籍などでいろいろ披露されているので、ぜひ、参考にして欲しい」とWagner氏は語る。

ユースケース:サーバレスウェブアプリ
ユースケース:サーバレスウェブアプリ

 続いて新しいアプリケーションエコシステムの例としてWagner氏が紹介したのが、「AlexaアプリとSlackでサーバーレスボット」である。Alexaに「『今からデモを送る』をSlackで送信して」に呼びかけると、AlexaからからLambdaに送られテキストに変換。そしてLambdaはそのテキストをSlackにアップロードする。それを見たケビンがSlackにメッセージを記述すると、Alexaが音声で「ケビンから『健闘を祈る!』という返事が来ているよ」と知らせてくれるというものだ。このようなエキサイティングなエコシステムも「Lambdaを使えば、従来数日間かかっていたものが数時間で作成できる」と言い切る。国内でもLambdaの活用事例は登場している。キヤノンはプリンティングシステムを、岡三オンライン証券は受注管理システムを、リクルートジョブズはタウンワークのモバイルメディアを、API GatewayとLambdaを使って構築したという。

Alexaアプリ+Slackのサーバレスボット
Alexaアプリ+Slackのサーバレスボット

常に進化し続けるLambda。VPC対応でセキュアにリソースと連携

 Lambdaは常に進化しており、次のような新機能が追加されているとWagner氏は語る。新機能については次の通りだ。

Lambdaの新機能
Lambdaの新機能

 「Lambdaの最もパワフルな新機能の一つが、Amazon VPC(Virtual Private Cloud)対応だ」とWagner氏は力強く語る。すべてのLambda関数は常にVPC内で実行されるようになった。そのためわざわざセキュリティを有効にする必要が無くなったのだ。またLambda関数にVPC内のリソース、例えばRDBやElastiCache、プライベートE2Cエンドポイントへのアクセスを付与することもできるという。その場合はVPCのサブネットIDとセキュリティグループIDを関数の設定に追加することで、すべてのVPCの機能にアクセスが許可されるようになる。「Lambdaの素晴らしいとは、これまでみなさんが大変だと思っていたことは、私たちがすべて請け負うことになる。皆さんの仕事が簡単になる」とWagner氏は強調する。

 ただ「マネージドNATを使用するかVPC内にNATインスタンスが存在しない限り、VPCにアクセスするよう設定されたLambda関数は、インターネットにはアクセスはできない」という。そこでVPCは必要でない限り「使用しないこと」とWagner氏は語る。またLambdaのVPC機能によって使用されるENI(Elastic Network Interface)は各自のクォータに計上される。これらのENIに対して十分なIPをサブネットで確保すること、そして各アベイラビリティソーンでサブネットを少なくとも1つは指定することで、Lambdaの耐障害性を高めることができるという。

 Wagner氏はサーバーレスマイクロサービスの作成方法についても説明した。これも大きく3つの方法があるという。一つはAWS CloudFormationを活用する。2つめはオープンソースフレームワーク「Serverless」を使う。3つめはFlourishを使うこと。「Flourishはサーバーレスのアプリケーションモデルで、近日公開予定のAWSが支援しているGitHubのオープンソースプロジェクトだ」とWagner氏は説明する。Wagner氏は最初に紹介したAWS CloudFormationを活用したサーバーレスマイクロサービス作成のデモを実施し、本当に数分で作成できることを証明してみせた。

 最後にWagner氏はこう会場の参加者に次のように呼びかけた。

 「ぜひ、みなさん、このエキサイティングなサーバーレスの革命に参加してほしい。プロダクトマネジャーやビジネスアナリストの方は、AWS Lambdaのサイトにアクセスしてプロダクトの詳細と導入事例のチェックを、開発者の方はAWS Lambdaコンソールで関数を作成し、実行してほしい。ちなみに呼び出しは100万件までは無料なので」

 数行のコードを追加するだけで、モバイル、音声、IoTの強力なバックエンドができるというLambda。サーバーレスアーキテクチャの世界への到達が加速する、そんな未来がすぐそこに来ていることを想起させるセッションとなった。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:イベントレポート

もっと読む

著者プロフィール

  • 中村 仁美(ナカムラ ヒトミ)

     大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5