サーバーレスと僕のこれまでとこれから

f:id:Keisuke69:20210330223404j:plain

本投稿は2021年3月31日の21時から開催予定のイベント(ライブストリーミング)で話す内容(の一部)です。もしお時間があればぜひこちらにもご参加ください。登録はこちら

Update!!: ライブ配信アーカイブが公開されてますのでよろしければこちらもどうぞ。

www.youtube.com

TL;DR

  • 2020年にやってきたサーバーレスに関するこのシリーズは最終回だよ
  • 6年以上サーバーレスやってきたので思い出話するよ

はじめに

Twitterでも言ったのですが、本日がAmazon Web Service Japan(AWSJ)での勤務最終日です。これもTwitterで言ったとおりなんですが、AWSJに入社してからの僕のキャリアはサーバーレス(というかAWS Lambda)とともにあったと言っても過言ではないです。

AWS公式ではない、という意味で野良でやってきたこのイベントについてもAWSのサーバーレスとの関係性が変化する以上、ひとまず区切りをつけるべく今回を持って最終回とします。そしてこの最終回ではサーバーレスの歴史を個人的な思い出たっぷりに振り返りつつ今後についてもお話ししたいと思っています。つまりポエムです。

そもそもこのイベントはサーバーレスにおけるかつてのアンチパターンがサービスの機能アップデートによりアンチパターンではなくなったというのを正しくクイックに紹介することを目的として始めました。ただ、そんなアップデートが毎月あるわけでもないので回を重ねるにつれネタ切れになりつつあったのも事実です。

というわけで、いったん『サーバーレスアンチパターン今昔物語』としてはキリがいいのでお終いにしようかと思った次第です。最終回にふさわしいお題が何か考えた結果、漫談をすることにしました。おじさんの自分語りって最悪なんですが、まあそこは生ぬるく見守ってください。  

Lambdaとの関わり

さて、僕がAmazon Web Service Japan(当時はまだAmazon Data Service Japan)に入社したのは2014年7月です。AWS Lambdaが発表されたのはこの年のre:Inventでした。

もちろん、僕はLambdaおよびサーバーレスをやるために入社したというわけではなく普通にスタートアップやWeb系のお客様担当のソリューションアーキテクトとして入社しました。

ちなみに入社1週間後くらいにCognitoというサービスが発表されまして、AWSがこういった機能特化型フルマネージドサービスを出していく始まりとなりました。実際にはその随分前にSQSがあったけどこれがサーバーレスとして扱われるようになったのは割と最近。

また、余談ですがこのCognitoのローンチ時のPM(Product Manager)はその後API GatewayのローンチPMでもあり、その後はサーバーレスのスペシャリストSAになって今はサーバーレスの別プロダクトのPMをやってます。

僕がAWS Lambdaを担当するようになったのは社内でとある新しいアプリケーション系サービスが出る予定なのでこれのローンチサポートをする人募集!的なやつがきっかけです。

このコンセプトを見た時、最初はGAEみたいなものなのかな?と思ったのですがファンクションモデルであるということ、そしてイベントドリブンアーキテクチャを実現するものということを理解したときに心鷲掴みにされたんですね。そこからずっとサーバーレスやってきました。最初はアカウントSAを本業としてボランティア的に、途中はそれを専門とするスペシャリストとして、そして最後のほうは少し引いたところから。

なお、発表される直前、ほんの数時間前までサービス名はAWS LambdaではなくAmazon Lambdaで、アイコンもオレンジではなく紫色でした。

さて、そんなAWS Lambdaは2014年11月13日(現地時間)にAWSの年次グローバルカンファレンスであるAWS re:Invent 2014のDay2 Keynoteで発表されました。

f:id:Keisuke69:20210330230145p:plain

ここにもEvent Drivenとあるのがわかりますね。そうです、当初は『サーバーレス』って言葉はなかったんですね。この言葉が出てきたのは翌年Amazon API Gatewayが登場してからです。

なお、このときの発表の様子はYouTubeでアーカイブ動画が公開されています。未だにテンション上がる。

当時のツイート。冷静な風だけど裏ではテンションあがってるし同時並行で色々仕込んでたりしました。

この2014年のre:Inventは個人的には神回だと思っていまして、AWS LambdaだけでなくAmazon AuroraAmazon ECS、そしてAWS CodeCommit / AWS CodePipeline / AWS CodeDeployとAWSにおけるDevOpsの中核をなす3サービスが出た年だったりします。

なお、この時点ではAWS LambdaはまだGAではありません。Previewということで申し込んだ人のみ、順番に利用が可能になっていくという形をとっていました。この時点で、サポートされている言語はNode.jsのみ。しかもv0.10とかそんな感じでした。タイムアウトは最大60秒、メモリも最大1GBで同時実行にいたっては最大25です。そこから6年以上をかけてサーバーレスは成長してきました。

11月ということもあって出た直後にAdvent Calendarの募集を開始したのですが、まだPreviewなのに全部埋まってるってすごい。今から考えるとこれPR的にはかなりグレーゾーンだったんだけど若気の至りということで。Previewなので自分の日が近づいてるのにまだ使えないなんてこともありました。

AWS Lambda Advent Calendar 2014 - Qiita

12月22日にはMeetupも開催したし、年明け早々にはCodeZineにも寄稿した。

そんなAWS Lambdaですが、年が明けて2015年の4月にGAしました。この時点でサポートする言語はNode.js、PythonJavaとなっています。先ほども述べたとおり、この時点では単なるイベントドリブンコンピューティングと言ってました。その後、2015年の夏にAPI Gatewayがリリースされてサーバーレスというコンセプトになり、2016年にはStep Functions、2019年にはEventBridgeが出たわけです。

API GatewayのリリースにあわせてBlackbeltというWebinerなんかもやってました。

このとき配信に使ってたサービスの不調だかで翌週に再演することに。

Blackbeltといえば2019年に都合4回にわけて『Let's Dive Deep into AWS Lambda』というシリーズをやったのも思い出深い。これ、『俺の知ってるすべてをお伝えする』ってのをコンセプトにやったものでして、それまでの参加者数最高記録を達成したものでした。これ以降、僕はBlackbeltで登壇することはなかったので間違いなく1つのターニングポイントだったと思います。

そんなAWS Lambdaおよびサーバーレスはその後6年以上をかけて成長してきました。今やサポートする言語は先の3つに加えてGo、.NET、Rubyも対応していますし、カスタムランタイムという機能や先日発表されたコンテナイメージによるデプロイ機能を利用することで実質的にどんな言語でも利用可能となっています。

また、6年以上も歴史があるので当然のごとく多くのサービス提供実績もあります。もちろんエンタープライズの現場でも使われています。エンタープライズといえば2017年の8月8日に六本木のベルサールで『AWS Enterprise Serverless Day 2017』という1 dayイベントを企画して開催したのですが、来場者がいつものTシャツな感じではなくスーツもしくはワイシャツ着用の人が多くて狙い通りと喜んだ次第です。

なお、個人的にはAWS LambdaとAmazon API Gatewayの東京リージョンローンチは結構頑張りました。USに行っては当時のGMやPMに日本にはどれくらいのビジネス的な機会があって、これだけのユーザが待ってるんだってことをあの手この手でインプットしてましたw その結果もあってかGAして3ヶ月後の2015年7月にはAWS Lambdaが、Amazon API Gatewayに至ってはリリースされて3ヶ月後の10月に東京リージョンのローンチにいたりました。これ結構早いんですよね。当時、日本では社内的にもサーバーレスというコンセプトの新しさや話題性は認められつつもまだビジネスになるかどうかは未知数ってことで、事業開発のメンバーもいなかったので結構頑張りました。

とはいえ、実際のところ最初のうちはあまり理解してもらえなかったですね。一部の人たちにはうけたものの全体としてはキワモノ扱いされてたと言えます。サーバーレスといっても実際にサーバーがなくなるわけではない、とかユーザーから『インフラに関わるOps』をなくしているだけで全体を見るとそこにOpsは依然として存在するし、減るOpsについてもサービスにオフロードしてるだけだというような意見もいただきました。

機能的に足りない点が多々あったのは否めないですがコンセプト自体に批判的なものも多かったですね。

で、まあなんやかんやあったのですが正直アカウントSAを本業としつつ、サーバーレスの市場作りやボランティア的な支援・活動をしていくのは結構辛いなーと思っていた頃に社内でスペシャリストSAというロールができることになり、そのタイミングでサーバーレスのスペシャリストSAとしてロールチェンジします。2016年くらいだったと思う。つまり、ここからサーバーレスにフルコミットしていくことになるのです。

その流れでAWS Lambdaに関する本を書くことになるんですが、あまりにもニッチすぎるのでなかなか悩ましかった思い出があります。あと、これを書くのにあたって社内のリーガルとかと調整するわけですが、サービスチームも含めて書籍というフォーマットになかなか理解を示してもらえなかったのが大変でした。

と告知したもののなんやかんやあって遅れたのはそういった事情もありました。で、結局発売は翌年のAWS Summitのタイミングに合わせました。そのときの経緯なんかはこちらのエントリに書いてます。

www.keisuke69.net

ニッチすぎて全然売れないかもと思ってたので、AWS Summitというある意味HOMEの場ではあったものの初日の早い段階で売り切れたのは嬉しかった。

f:id:Keisuke69:20170602150010j:plain f:id:Keisuke69:20170601174445j:plain

ちなみにこの年はAWS Summit自体でもいろいろやっていて、前年のTIm Wagner (サーバーレスのGM)に続いてこの年はついにLambdaのPM、オリジネイターでもあるAjayを招聘したり、

f:id:Keisuke69:20170531132102j:plain

裏で1日、『Serverless Evolution Day』という形でパネルから何から全部入れ替えてジャックしたイベントなんかもやってました。懐かしい。

f:id:Keisuke69:20170602120712j:plain

その間もLambdaおよびサーバーレスの成長は続き、翌年もまた本を出します。

このときのブログはこちら

このあたりから、1人でサーバーレスを広めていくことに限界を感じてきています。というのも1人でできること、リーチできる範囲には限りがあるのですね。幸い、サーバーレスについてはコミュニティも熱量高く活動しているということでこのあたりからサーバーレスのスペシャリストSAから一歩踏み込んでAWSを利用してアプリケーション開発をする人たち全般を支援する、アプリケーション開発に特化して支援してお客様プロジェクトのアクセラレーションを行うという方向にシフトしていった結果、現在のプロトタイピングというプログラムとそれを担う部門の立ち上げにつながっていくのですがこのあたりの話はまた別の話。

このあたりから自分がサーバーレススペシャリストSAとして活動するのではなく、よりスケールさせるためにそのポジションを他の人に譲ることを考えました。その結果、2019年の2月に新たなサーバーレスSAとして現在も活躍している下川さんがジョインするんですね。実はこの手前にも幻のサーバーレスSAがいたけどその話は割愛。

2019年の前半はトランジション期間として並行して活動し、2020年からは完全に僕はサーバーレススペシャリストSAとしての仕事を手放しました。そのうえで本業とは別に、またレベニューとかそういった視点を気にすることなくサーバーレスに関する活動を始めます。その1つがこの『サーバーレスアンチパターン今昔物語』というイベントだったんですね。

サービスの発表数

ところでサービス登場以降今までの機能発表数ってどのくらいかなとふと思ったので数えてみようとしたのですが挫折しました。

最初はWhat's Newで発表された数だけカウントすればいいかなと思っていたのですが、What's Newのエントリ数=アップデート数ではないこと、加えて実はそれ以外でのアナウンスが結構多いんですよね。特に初期の頃にその傾向がありまして現実的に数えるのは無理でしたw

ちなみにWhat's newのエントリ数だけだとこんな感じです。

サービス アップデート数
AWS Lambda 135
Amazon API Gateway 95
AWS Step Functions 50
AWS Event Bridge 18

最初は何もできなかったといってもおかしくないAWS Lambdaが今のように多くのワークロードを実現できるようになるまでこのくらいの数のアップデートがあったんですね。

コミュニティ

さて、サーバーレスの発展にはコミュニティの力もあったことは誰もが知るところだと思います。

AWSには通称JAWS UGというユーザコミュニティがあるのですが、これとは別にサーバーレスに関するコミュニティ、その名も『Serverless Community』が存在しています。オーガナイザーの吉田真吾さんを中心として立ち上がったこのコミュニティなんですが、話は2016年に遡ります。

2016年の5月にNewYorkでおそらく世界で最初のサーバーレスに特化したカンファレンスである『Serverlessconf』が開催されました。人数的には200人から300人くらいの小さなイベントでしたがブルックリンの小さな倉庫跡を使って開催されたこのイベントに僕はもちろん吉田さんも来てたのです。

f:id:Keisuke69:20160526223101j:plain

このときの会場の熱量はすさまじく(文字通り暑かったのもある)、僕自身もサーバーレスという未来を改めて感じたイベントでした。吉田さんはこのイベントに参加して、これを日本でも開催したいと思いたち、なんと同じ年の9月には開催してしまうのです。行動力が半端ない。

このときの会場は芝浦のTabloidというこれまたニューヨークと同様に倉庫跡のイベント会場でした。

f:id:Keisuke69:20161001100529j:plain

その後も定期的にミートアップを開催しつつ、年次で大きめのイベントも開催しています。翌2017年はServerlessconf、2018年、2019年はServerless Daysがこの吉田さんを中心とするServerless Communityによって開催されています。

このServerless CommunityはAWSのサーバーレスに特化したコミュニティでなく、AzureやGCPはもちろんそれ以外にもサーバーレスのエッセンスを含むものを取り扱っていて確実に日本のサーバーレスムーブメントの発展に大きな貢献をしています。いや、むしろこのコミュニティがなくて僕だけが頑張ったりするような状況だったら今みたいな世界は訪れてなかったと思う。ありがたいことに2018年、2019年は基調講演をやらせていただきました。冒頭の写真は2018年にやらせてもらったときの締めのスライドです。

その後、吉田さんはその功績が認められてグローバルでAWS Serverless Heroとして認定されています。カッコいい!

最後に

ALL YOU NEED IS CODE

これは僕がLambda登場当初からいろんなところ、いろんな登壇とかプレゼンテーションで言ってきた言葉です。

でも、正直すべてがまだそうはなってない。

ただ、かなり近づいてきてるとは思っています。本当にこれだけですむケースもかなりあります。

でも、もっとコードを減らすためには、そんな世界が来るようにするためにはどうしたらいいのか。どういう問題をどう解決するのか。

残念ながらサーバーレスはまだ未完成です。

そういった世界が来るまでは利用者による知見の共有が必要と思っています。AWSを始めとするサービス提供者側からの一方的なアウトプットではなく、ユーザ同士での知見の共有とユーザからサービス提供側へのフィードバック、このサイクルが回り続ける必要があると思っています。

そのためにコミュニティの力はやはり大きいと思っています。OSS開発も同じですね。

もちろん過去の回で言ったようにすべてを無理にサーバーレスでやろうとすることが最大のアンチパターンといったのは変わりないです。でも、このイベントのコンセプトと同様に機能のアップデートにより過去のアンチパターンアンチパターンでなくなることも往々にしてあるのです。

Everything will be Serverless

少なくとも僕はそう信じています。今は無理でもいつかはそういう未来が来ると思っています。

というわけで、AWSからは離れるのですがこのサーバーレスという世界には立場を変えて関与し続けたいと思っています。これまではAWSという特定のサービス提供者側にいたことでどうしてもできなかったこと、発信内容もあります。これは特定企業に所属する限り当たり前のことだと思っているのでそれに対して否定的な思いはありません。

立場が変わることにより、今後はユーザとしてサーバーレスという世界の発展に貢献していければなと思っています。Serverless Communityへの参加はもちろん、少し違った切り口で個人による発信も続けるつもりです。

というわけで、ひとまず今のフォーマットでの『サーバーレスアンチパターン今昔物語』は終了とし次からは違うシリーズをやっていきます。

まずは僕の大好きなVercelについて取り上げる回をやるつもりです。他にもCloudflare Workersとか昨日発表されたDeno DeployとかAWS以外のプラットフォームも含めて僕視点でのフラットな発信ができればと思っています。

長々としたポエムに最後までお付き合いいただきありがとうございました。

そして、みなさんこれからもどうぞよろしく。

©Keisuke Nishitani, 2020   プライバシーポリシー