このページの本文へ

前へ 1 2 次へ

新発表が続々!「AWS re:Invent 2014」レポート第3回

Lambdaは“インスタンス管理なし”のコード実行プラットフォーム

AWS、re:Inventで「Lambda」など開発関連サービスを一挙発表

2014年11月18日 06時00分更新

文● 大塚昭彦/TECH.ASCII.jp

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

 Amazon Web Servicesは、11月11~14日に開催された「re:Invent 2014」において、「AWS Lambda」やアプリケーション開発ライフサイクル管理サービス群など、AWS上でのアプリケーション開発に関連する複数の発表を行った。

“インスタンス管理なし”でコードを自動実行「AWS Lambda」

 AWS Lambdaは「イベント駆動型のダイナミックアプリケーションを開発するためのコンピュートサービス」と説明されている。具体的には、特定のAmazon S3バケットやDynamoDBテーブル、Kinesisストリーム、SQSキューでイベント(データ変更)が発生するたびに、開発者がJavaScript(Node.js)で記述したコード「Lambda function」を自動実行してくれるプラットフォームである。

Lambdaはデータ入力/変更イベントに応じてFunction(コード)を実行し、データ処理などを行うプラットフォーム

 Lambda functionを実行するために、開発者があらかじめEC2インスタンスやOSなどの実行環境を用意する必要がない点が大きな特徴。開発者がfunction登録時に必要なメモリ容量を指定するだけで、実行環境の管理やモニタリング、スケーリングはすべてLambdaプラットフォームが自動的に行うため、開発者は実行環境の管理に手をわずらわせることなく、functionの開発に専念できる。

Lambda functionの登録画面(画像はAWSブログより)。function名やコード、実行時のメモリ容量を登録する

 re:Invent 2日目の基調講演で、AWS CTOのWerner Vogers(ヴァーナー・ボーゲルズ)氏は、「コードを実行するためのサーバーも、インスタンスも、何も用意する必要がない。ただコードを書くだけだ」と、Lambdaプラットフォームの特徴を強調した。「インスタンスを用意しなくとも、シンプルかつ高信頼性、高い連携性を持つアプリケーションが開発できる。コード開発に専念できる」(同氏)。

AWS CTOのWerner Vogers氏。Lambdaプラットフォームの特徴を強調したNetflix CPOのNeil Hunt氏は、同社のビジネスでLambdaがどう生かせるかのユースケースを紹介

 ボーゲルズ氏は、Lambdaを利用した写真データ処理アプリケーション開発の例を挙げた。この例では、S3やDynamoDBの間を複数のLambda functionでつなぐことにより、モバイルデバイスからS3バケットへの写真アップロード(イベント)をトリガーとして、すべての処理が自動実行される。

Lambdaを利用した写真データ処理の例。S3バケット(左端)への写真追加イベントを最初のトリガーとして、メタデータ読み出し処理、傾向分析処理、デバイス通知処理が順次実行されていく

 このほかにも、たとえばIoTのセンサーデータやSNSメッセージ、データストリーム内での変化などをトリガーとして処理を実行するfunctionが開発できると、ボーゲルズ氏は説明した。

 AWS Lambdaの利用料金は、リクエスト数とfunction実行時間(指定メモリ容量により変動)により決まる。100万リクエストあたり0.20ドル、また100ミリ秒のfunction実行あたり0.000000208ドル(128MBメモリの場合)となっている。それぞれ無料利用枠も用意されている。

 現在、AWS Lambdaはプレビュー版を提供している。また、将来的にはJavaScript以外の開発言語にも対応を拡大していく予定。

 また、Netflix CPO(最高プロダクト責任者)のNeil Hunt(ニール・ハント)氏も登壇し、Lambdaへの期待を語った。同社ではオンラインビデオ配信サービスのためにAWSを利用しているが、トランスコーディングなどの処理量は常に変動するため、複雑なインフラ管理やオーバープロビジョニング、無駄なポーリング処理などが発生していた。Lambdaにより、これをもっとシンプルなものにし、コスト削減効果も見込めるという。

 さらにハント氏は、Netflixで考えられるLambdaのユースケースとして、「メディアファイルのエンコーディング」「DR対策/バックアップ」「セキュリティ/データ照合」「ダッシュボード/モニタリング」の4つを挙げた。

ハント氏は「Lambdaが提供する新しい抽象化レイヤーにより、シンプルで効率的なアプリ開発ができる」と述べたユースケースの1つとして、新しいメディアファイルがアップロードされた後の各種処理の自動化を挙げた

(→次ページ、「CodeDeploy」など開発サイクルを加速させるツール群も

前へ 1 2 次へ

この連載の記事