Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

AWS Summit Tokyo 2016レポート

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

 AWS Lambdaはサーバーレスでマイクロサービスを構築するための主要コンポーネントである。それを活用することでモバイルやWeb、IoTアプリケーション用のマイクロサービスを容易に構築できるようになる。どのように活用すれば、より拡張性や応答性に優れたマイクロサービスを生産性高く構築できるのか。6月2日に開催されたAWS Summit Tokyo 2016のDeveloper Conferenceにおいて、Amazon Web ServicesでAWS LambdaおよびAmazon API Gatewayのゼネラルマネジャーを務めるTim Wagner氏がデモを交えながら解説した。

目次

サーバーレスコンピューティングといっても3つの考え方がある

Amazon Web Services AWS Lambda/Amazon API Gatewayゼネラルマネジャー Tim Wagner氏
Amazon Web Services AWS Lambda/Amazon API Gatewayゼネラルマネジャー Tim Wagner氏

 「今日は私のお気に入りのサーバーレスコンピューティングについて話をしたい」

 こう語りWagner氏はセッションをスタートさせた。

 Wagner氏は「サーバーレスコンピューティングは抽象化の対象によって3つの考え方に分かれる」と語り、説明を続けた。第一はVM。VMはスケーリングの単位としてのマシンで、ハードウェアを抽象化する。第二はコンテナで、スケーリングの単位としてのアプリでOSを抽象化する。そして最後が「最も新しい抽象化の概念であるサーバーレス。これはスケーリングの単位としての機能で、言語ランタイムを抽象化するものだ」と説明する。そしてAWSはこれら3つの抽象化のサービスを提供するという。それがEC2(=VM)、ECS(=コンテナ)、AWS Lambda(=サーバーレス)である。

 ではこれら3つの中で選択をすればよいのかは、この問いに対してWagner氏は「何をしたいかによってその選択は変わる」と語る。「マシン、ストレージ、ネットワーキング、OSを構成したい」というのであれば、EC2、「サーバを実行し、アプリケーションを構成してスケーリングを制御したい」と言うのであればECS、「コードを必要な時に実行したい」というのであれば、Lambdaを選択するという具合だ。

Lambdaが提供する3つのメリットとその特徴

 「まずはLambdaの詳細から説明したい」とWagner氏。Lambdaは「サーバの管理が不要」「継続的なスケーリング」「アイドル時間は課金されないことで、コールドサーバはなくなる」という3つのメリットを提供する。さらに「私が最も誇りに思っているのは価格体系だ」とWagner氏は胸を張る。Lambdaでは100ミリ秒ごとに0.21セントでコンピュート時間を購入できるようになっている。リクエストの料金は0.2セント。その上、時間、日、月ごとの最低料金も、デバイスごとの料金もなし。つまり「電気のように使いたいだけ使う。ムダにお金を使うことを気にしなくていい。そしてもう一つの魅力が、毎月100万件のリクエストと40万ギガバイト/秒のコンピュートが無料で使えること。これらのサービスはもちろん、プロジェクトやチームの大小を選ばず使用することができる。

 Lambdaは使い勝手の良さも魅力だ。LambdaはBYOC(Bring Your Own Code)なので、コードをZipファイルにして送ることでLambda側で管理されるという。対応言語はNode.js、Java、Python。また開発者にとって嬉しいのが、ネイティブライブラリはもちろんカスタムライブラリも利用できるということだ。また使用法も柔軟で、「イベント(関数)の呼び出し、または送信できるのはもちろん、他のAWSサービスとも統合されており、サーバーレスエコシステム全体の構築ができる」とWagner氏は説明する。

 さらにシンプルなリソースモデルを採用している。メモリは128MB~1.5GBの選択が可能で、それに比例したCPUとネットワークが割り当てられる。もちろん実際の利用状況をレポートされるので、パフォーマンスの管理も容易だ。そのほかにも認可も柔軟で、VPCを含め、リソースへのアクセスもセキュア。関数を誰が呼び出し、誰が実行できるのかまで細かく制御できるという。

 Lambdaのプログラミングモデルは、AWS SDK(PythonおよびNode.js)を採用しており、そのアクセス権がライブラリと共にデフォルトで提供されるという。またオーサリング機能も提供されており、コンソールのWYSIWYGエディタで直接オーサリングできたり、Eclipse、Visual Studioなどのプラグイン、コマンドラインツールなど、好きな環境が使えるという。

 またプログラミングモデルの中で最も重要になるのが、ステートレスの機能だ。LambdaではAmazon DynamoDB、S3、ElastiCasheを使ってデータを永続化できるという。またインフラストラクチャへの新和性はないため、マシンにはログインは不可となっている。


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

著者プロフィール

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

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

バックナンバー

連載:イベントレポート

もっと読む

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