基調講演はAWSアーキテクト、「ServerlessConf Tokyo」レポート(前編)
サーバーレスの国内事例と知見を共有、技術カンファレンス開催
2016年10月12日 07時00分更新
10月1日、コミュニティ主導の技術カンファレンス「ServerlessConf Tokyo」が東京・港区で開催された。注目を集める「サーバーレスアーキテクチャ」専門の技術カンファレンスとあって、会場は多くの来場者でにぎわった。
事例と知見の共有を図る、コミュニティ主導のカンファレンス
ServerlessConfは、米国ニューヨークでスタートしたカンファレンスイベント。今回の東京が、米国以外では初めてのServerlessConf開催となる。冒頭の挨拶に立ったSection-9 CEOの吉田真吾氏は、ニューヨークのServerlessConfに参加した際のある出来事が、東京での開催につながったと振り返る。
「今年5月、ニューヨークのServerlessConfに参加した際、日本のサーバーレス採用事例を紹介したところ、『僕らが1年前、1年半前に経験した状況と同じだね』と言われて悔しい思いをした。すでに日本にも多くの事例があり、知見がある。これを共有する場を持つことが必要だと感じ、それから4カ月かかったが、ServerlessConfを東京に持ってくることができた」(吉田氏)
なおServerlessConfは、今月下旬(10月26日~28日)には英国ロンドンでも開催され、さらにその後も開催地を増やしていくという。吉田氏は、サーバーレスは世界的に拡大しつつある動きであり、「皆さんもぜひ、この大きなトレンドに参加してほしい」と来場者に呼びかけた。
AWS Lambda+API Gatewayで作るサーバーレス/マイクロサービスなアプリ
基調講演では、Amazon Web Services(AWS)のオリビア・クライン氏が登壇し、サーバーレスアーキテクチャの利点や具体的なアプローチ、そこで利用できるAWSのサービスなどを、デモも交えながら紹介した。
サーバーレスアーキテクチャは、「マイクロサービス」アプローチで開発されたアプリケーションとの相性が良い。独立した小さなサービス群どうしがAPIを介して互いに“会話”し、全体で1つのアプリケーションを構成するというマイクロサービスのアプローチによって、従来型のモノリシック(一枚岩)なアプリケーションが抱える耐障害性や柔軟性の課題が解消される(しうる)。
そうしたマイクロサービスの実行環境を、サーバーレスで提供するクラウドサービスが「AWS Lambda」である(現在はほかにも「Microsoft Azure Functions」「IBM OpenWhisk」などがある)。これらのサービスでは、サーバー管理の必要がなく、課金単位も通常のIaaSとは異なり「マイクロサービスのプロセス実行時間」(100ミリ秒単位)に準ずる形になっている。
したがって、サーバーレスアーキテクチャはパブリッククラウド上でこそ真価を発揮すると言える。パブリッククラウドならば、フルマネージド型でマイクロサービスの実行環境が提供され、サーバー設定/管理の手間がかからない。加えて、高い可用性やスケーラビリティを提供する仕組みも、あらかじめ備わっている。
「開発者としては、キャパシティ計算をして『サーバーが幾つ必要か?』とか『サーバーOSのバージョンは?』とか、いちいち考えたくないわけだ」(クライン氏)
クライン氏は、AWSが提供するサーバーレス/マイクロサービス実現のためのサービス群を紹介した。その中核をなすのは、フルマネージドなマイクロサービス実行環境であるAWS Lambdaと、各マイクロサービスのAPIを一元管理する「Amazon API Gateway」だ。
AWS Lambdaは、たとえば「特定のAPIコール」「Amazon S3バケットに新たなデータが書き込まれる」など、何らかのイベントやデータ変更をトリガーとして、Java、Node.js、Pythonで書かれたコード(Labmda関数)を自動実行する。その実行頻度に応じて自動的にスケールする仕組みも備えており、開発者はサーバーを意識する必要がない。
LambdaのトリガーとなるAPIは、Amazon API Gatewayで一元管理する。API Gatewayも当然フルマネージド、スケーラブルなサービスであり、DDoS防御やスロットリングの機能も備える。また、開発用/テスト用/本番環境用など、複数ステージのAPIを保持することができる点も特徴だ。
クライン氏は、Lambda/API Gatewayを使って、FacebookやSlack、DynamoDBなどを連携させた幾つかの簡単なアプリケーションをデモで披露した。
音声認識/合成サービス「Amazon Alexa」(およびそのマイク/スピーカーデバイスである「Amazon Echo」)を組み合わせたデモでは、Alexaに話しかけ、Facebookに投稿された最新のポストを読み上げてもらう、というアプリが披露された。Alexaでは、Alexaが行う処理をユーザー自身で定義できる「Alexa Skills Kit(ASK)」機能があるが、これもLambda上で構築されており、他のLambda関数と連携動作させやすいという。
クライン氏は、Lambda+API Gatewayを利用したサーバーレスアーキテクチャでのアプリケーション構築によって「7分の1のコスト削減」を実現した岡三オンライン証券をはじめ、あらゆる業界においてサーバーレスアプリケーションの開発が活発化していると語った。
まとめとしてクライン氏は、API Gatewayを通じてLambdaに限らずAPIを一元管理できること、マイクロサービスの内容に応じて適切なデータストア形式(RDBMSやキーバリューストアなど)を選ぶこと(polyglot persistence)、複数バージョン/ステージのAPIを活用すること、などをポイントとして挙げ、講演を締めくくった。
なお本レポート後編では、Gunosyによるサーバーレスアーキテクチャの採用事例講演を紹介する予定だ。
