このページの本文へ

前へ 1 2 次へ

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

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

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

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

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

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

6月1日から開催されているAWS Summit 2016の2日目。Developer Conferenceでは、AWSでLambdaとAPI Gatewayを担当するティム・ワーグナー氏が、今もっとも注目を集めるサーバーレスコンピューティングとLambdaの活用をわかりやすく説明した。

仮想マシン、コンテナ、サーバーレスの違いとは?

 Lambdaのように仮想サーバーを立てることなく、クラウド上で直接コードを実行するサーバーレスコンピューティングについて基礎からきちんと説明してくれたのが、今回講演したAWSのティム・ワーグナー氏だ。

AWS General Manager of AWS Lambda and Amazon API Gatewayのティム・ワーグナー氏

 ワーグナー氏は、コンピュートの抽象化という観点から仮想マシン(VM)とコンテナ、そしてサーバーレスを比較する。まずハードウェアを抽象化したのが仮想マシンで、こちらはスケーリングの単位がマシン単位になる。こちらはAWSの主力サービスであるEC2として提供されている。一方、OSを抽象化し、スケーリングの単位をアプリまで細かくしたのがコンテナだ。こちらはDockerコンテナを管理するECS(Elastic Container Service)として実装されている。そして、サーバーレスを実現するLambdaは抽象化の対象が言語・ランタイムで、スケーリングの単位は機能になる。「インフラを気にせず、実行するコードを与えればよい」(ワーグナー氏)。

コンピュートの抽象化から見た仮想マシン、コンテナ、サーバーレス

 これら3つはどのように選択するか? たとえば、EC2はマシンやストレージ、ネットワーク、OSを構成するのに向いている。もっともコンピューティング環境を制御でき、柔軟性が高いのがEC2になる。ECSでは既存のアプリケーションをDockerイメージとしてクラウド上で管理できる。そして、Lambdaはコンピュートの完璧な実行方法だという。「OSを変える必要がないし、われわれにコードをいただければ、必要な時に実行する。みなさんはビジネスロジックだけを気にすればいい」とワーグナー氏はアピールする。

サーバー管理不要で、コスト効果も高いLambdaのメリット

 続いてワーグナー氏はLambdaの3つのメリットを挙げる。まずはサーバー管理がいらないこと。サーバーの導入計画や運用を考えないで済むのが、Lambdaの最大のメリットだ。また、スケーリングも優れており、短い時間で数多くのリクエストをこなすことが可能だ。さらに、使っていない時間は課金されないという点。「もはやコールドサーバーはないということだ」とワーグナー氏はアピールする。

Lambdaの3つのメリット

 Lambdaは価格も低廉で、100ミリ秒に0.21セントで提供される。「電気のように使った分だけの課金になる。コンピュータを使って、無駄にお金を使うことはもはやなくなる」(ワーグナー氏)。しかも毎月100万リクエストと、40万GB分のコンピュートが無料で提供されるため、テストや検証でも価格を気にせず利用できる。

リクエストごとというわかりやすい課金

 利用方法は簡単で、Node.js、Java、Python、ユーザー独自のカスタムライブラリをZIP形式でアップロードし、Lambda関数を設定すればOK。リソースは128MBから1.5GBまでメモリを選択でき、それに比例したCPUやネットワークが自動的に割り当てられるという。また、Lambda関数にはAWSのSDKへのアクセス権限が付いてくるため、プラグインを介してVisual StudioやEclipseのようなIDEでオーサリングしたり、コマンドラインツールを使うことも可能。一方で、データ自体は永続的なデータストアに保存する必要があるという。たとえば、セッションやログデータはDynamoDB、オブジェクトはS3などに置いておけば、Lambdaから利用が可能になる。

コードを持ち込み、関数を呼び出す

プログラミングモデルやステートレスなどの特徴

前へ 1 2 次へ

カテゴリートップへ

この連載の記事