週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

3回目を迎えたServerlessconf基調講演レポート

エンジニアを魅了してきたAWS Lambda、その4年間の軌跡

2018年10月02日 07時00分更新

サーバーレスのサービスのうち約7割はAWS Lambda

 CNCF(Cloud Native Computing Foundation)の調べでは、サーバーレスのサービスを利用中と答えたのが38%、未使用が37%、1年以内の利用検討が26%になり、昨年よりもサーバーレスの認知や利用も増えている。また、サーバーレスのサービスのうち、約7割がAWS Lambdaを利用しており、売り上げもここ1~2年に急速に伸びているという。「もともとWebやゲームのお客様が多かったが、最近は模様眺めをしていたエンタープライズのお客様からの相談を受けている」(西谷氏)。

サーバーレス関連のサービスの売り上げの成長

 続いて、西谷氏はサーバーレスのメリットを説明する。Lambdaの場合、関数を実装すれば、サーバーのプロビジョニングや管理が不要になり、イベントの数にあわせてスケーリングできる。冗長化や高可用性といったインフラを考える必要もなく、テストやモニタリングもサービスによって自動で行なわれる。さらに処理した分だけ細かい単位で課金されるので、コスト面でもフェアだという。「Undifferentiated Heavy Liftingの作業の大部分から解放される。サーバーを用意しないで済むので、アプリケーション開発が迅速になり、開発者は差別化しやすい実装にフォーカスできる」と西谷氏は指摘する。

 Lambdaを前提とするサーバーレスアプリケーションはイベントソース、ファンクション、サービスの3つから構成される。たとえば、「S3にオブジェクトが作られる」というイベントをトリガーにLambdaファンクションが呼びされ、Node.js、Java、Python、Go、C#などの言語で書かれた特定のコードが実行される。もちろんAWSや他社も含めたサービス連携も可能だ。

サーバーレスアプリの構成要素

 また、Lambda自体の実行環境もCDNのエッジ(Lambda@Edge)や組み込み機器(Greengrass)などに拡がっているほか、開発ツールやCI/CD、モニタリング、セキュリティなどLambdaを取り囲むエコシステムも拡充されつつある。西谷氏は、「これまでLambdaはローカルテストがやりにくいと言われていたが、今ではAWS SAM CLIを使える。フロントエンドやモバイル開発向けのAWS Amplifyのようなライブラリも提供されている」とアピールする。

利用シーンの増えるサーバーレスの事例と開発

 Lambdaは利用シーンも増えている。たとえば、LOWRYS FARMやGLOBAL WORK、LEPSIM、niko and…などのブランドを展開するモバイル通販サイト「.st」のバックエンドはLambdaが採用されている。「特徴的なのはワンタップのクーポンが配信されていて、毎日12時にスパイクが来る。こうした負荷が来ても、自動的にサービスを縮退して、リクエストをさばいている」(西谷氏)。

Lambdaを駆使するアダストリアの「.st」の事例

 また、当初もっともよく使われていたケースとして、画像処理が挙げられた。S3に元画像が置かれると、それをトリガーにLambdaが起動し、自動的にサムネ画像が作成されるといった使い方だ。すでに事例で発表されている日経新聞社の誌面ビューアでは、この使われ方が採用されており、同様のことをEC2でやった場合に比べてコストも1/10くらいに抑えられたという。

 Kinesisで扱うIoTやログデータなどのストリーミングデータ処理にもLambdaが用いられる。たとえば、VOYAGE GROUPのアドネットワークである「Zucks」で採用されており、データ連携先が増えても、リアルタイム性を落とさず、規模を拡大できている。また、東京海上日動火災保険ではオンプレでのシステムログをKinesisに送り、Lambdaで分割したり、保存したりしているという。

 さらにストリーミングではないが、Sansanでは名刺管理サービスのEightにおいて、人物をリアルタイムにリコメンデーションする処理をStep Functionsで行なっている。「リアルタイム性を確保するために複数のLambdaファンクションが連携して動いているが、ここのオーケーストレーションをStep Functionsで実現している」(西谷氏)とのことで、約2ヶ月で実装を完了したという。

SansanのEightで用いられているリアルタイムリコメンデーションはStep Funtionsを採用

 こうしたサーバーレスアプリの開発に関してだが、簡単なファンクションであればLambdaコンソールから関数を登録すれば完了する。また、開発ツールのCloud9上で書いたコードをテストし、Lambdaにデプロイできるほか、各種IDE(統合開発環境)用のプラグインも提供されているという。また、AWSでライフライクル管理を行なう場合は、コード管理はGitHubかCodeCommit、ビルドはCodeBuildを使う。また、β版やプロダクトのデプロイはサーバーレスアプリを定義するAWS SAM(Serverless Application Model)を使い、CloudFormationでデプロイすることも可能だ。ただ、現状AWSはテストツールは用意されていないので、サードパーティのテストツールを使ったり、手動で実施する必要があるという。

 最後、西谷氏は「今、Amazon.comを作るならサーバーレスで作るだろう」というアンディ・ジャシーAWS CEOの言葉を紹介し、AWSのサーバーレスへの本気度をアピール。Serverless Confで実践的な知識やノウハウを身につけてほしいと語り、基調講演を終えた。

「今、Amazon.comを作るならサーバーレスで作るだろう」(アンディ・ジャシー AWS CEO)

■関連サイト

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

本記事はアフィリエイトプログラムによる収益を得ている場合があります