Monthly Serverless Update 202104

f:id:Keisuke69:20210506110216j:plain

2021年4月のサーバーレス関連まとめです。こちらのイベントで取り上げる内容です。

serverless-newworld.connpass.com

今後はAWS以外のアップデートも取り上げていく予定ですが、ひとまず2021年4月分についてはAWSのサーバーレス関連のみです。

2021年4月のリリース

4月は結構多かった感じですね。

いつもどおりタイトルだけで内容がわかるようなものは特にコメントしていません。

New options to trigger Amazon SageMaker Pipeline executions

  • EventBridgeのルーティング先としてSageMakerのパイプライン実行ができるように
  • モデルのトレーニングなんかを外部のイベントと連携して実行するなんてことも可能に

AWS Amplify Admin UI でデータ管理が一般利用可能に

  • シードデータの生成、データの並べ替え、データのフィルタリングの新機能が追加
  • シードデータ生成ってのはテスト目的のデータをデータベースに登録してくれるそう

Amplify iOS が Swift Package Manager (SPM) から利用可能に

Amazon Kinesis Data Streams for Amazon DynamoDB now supports AWS CloudFormation

Amazon EventBridge introduces support for cross-Region event bus targets

  • いろんなリージョンから飛んできたイベントを集めて一箇所のリージョン内の何かにターゲットすることが可能になった

AWS Step Functions が入出力処理をモデル化するための新しいデータフローシミュレーターを追加

  • InputPath、Parameters、ResultSelector、OutputPath、ResultPath などの各フィールドをシミュレートできるデータフローシミュレータが新たに追加

Amazon CloudWatch Lambda Insights が AWS Lambda コンテナイメージのサポートを開始 (一般提供)

ユーザー定義関数 (UDF) が Amazon Athena で一般の使用が可能に

  • Lambdaの価値のひとつとして他のAWSサービスの拡張に貢献していると言える
  • これもだけどCognitoのトリガーやConnectとかも

最後にアクセスした情報を確認して、未使用の EC2、IAM、Lambda のアクセス権限を特定し、IAM ロールへのアクセス権を絞り込む

  • IAMロールの権限は最低限にすべき
  • 使ってない権限をあぶり出す機能
  • 今までS3向けには提供されていたがこれがLambdaおよびEC2にも対応

AWS Amplify で一度のデプロイによる複数の Amazon DynamoDB GSI 更新のオーケストレーションが可能に

  • 今までは複数のGSIを更新するときに1個ずつデプロイする必要あったのが一発おまとめて反映できるように

Amazon DynamoDB ストリームのデータプレーン API アクティビティを AWS CloudTrail でログ記録が可能に

  • データプレーンAPI = GetRecordsとGetShardIterator

NoSQL Workbench for Amazon DynamoDB による AWS CloudFormation のサポートを開始

AWS Chatbot now expands coverage of AWS Services monitored through Amazon EventBridge

  • EventBridge経由でこれまで以上に多くの各種イベントを連携させることができるようになった

Amazon SNS now supports setting attributes required for India DLT requirements when sending SMS using local routes in India

Amazon SNS grows the set of message filtering operators

Better together: AWS SAM and AWS CDK | AWS Compute Blog

  • SAM CLIがCDKをサポート
  • これまではCloudFormationかSAM templateだった
  • プレビュー
  • 今のところ、ビルドとテストをサポート。将来的にはパッケージングも

その他ブログなど

AWS Lambda Node.js で Axios を利用した通信を X-Ray でキャプチャする | DevelopersIO

  • axiosとか使って外部APIを叩いているときのX-Rayを使ったトレースの取り方
  • X-Ray SDKのcaptureHTTPsGlobal()を使う
  • ちなみにnode-fetchでFetch APIを使う場合はちょっとコツがいる模様

JavaScriptランタイム環境「Deno」開発者がDeno Companyを立ち上げ | OSDN Magazine

DenoのCDN Edgeサービス – DenoDeployでサーバレスJS/TSを実行する | DevelopersIO

Denoの作者ライアン・ダール氏らが「Deno Company」を立ち上げ。Denoの開発推進と商用サービスの実現へ - Publickey

  • Deno関連
  • Deno Companyを立ち上げて資金調達し、商用サービスを提供するとのこと
  • 特にJSやTSを実行可能なDeno DeployというサービスはEdgeで実行可能なサーバーレスプラットフォームといえる
  • 要注目

AWS Step Functions でサーバーレス FizzBuzz を実現する - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

  • なぜかFizzBuzzをStepFunctionsを使って解いてるw

コンテナ利用者に捧げる AWS Lambda の新しい開発方式 ! ~ 第 2 回 コンテナ Lambda を開発、まずは RIC と RIE を使ってみよう ! - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

  • Lambdaのコンテナイメージを使う場合に関する解説
  • 今回はRIC(Runtime Interface Client)とRIE(Runtime Interface Emulator)について
  • RIE使ってローカルでLambda実行をエミュレート

サーバーレスが気になる開発者に捧ぐ「べき等性」ことはじめ 第一回〜べき等性 (冪等性/idempotency) ってなんだ!? - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

AWS Step Functions コールバックを利用した外部システム連携 | Amazon Web Services ブログ

  • Lambda、DynamoDB、API Gateway を使用して、Step Functions ワークフローを外部システムと統合する方法について説明

サーバレスアーキテクチャでLINE BOTが多分作れるようになるハンズオン - Speaker Deck

  • LINE BotAPI GatewayとLambda使って作るハンズオン
  • 外部連携についても
  • 前段のサーバーレスに関する説明も平易な語り口でいい感じ

Serverless Next.js Component が AWS に deploy するのに超便利だった

  • 以前に今昔物語で紹介したServerless Next.js Component

AWSを活用した空調機IoTプラットフォームの開発 - Speaker Deck

AWS Lambdaを使ったサーバレスReactアプリケーション

Lambda Layerだけを更新したとき、Lambdaが参照するLayerのバージョンが追従しないのでAutoPublishAliasを止めてみた話 | DevelopersIO

GraphQL を利用したアーキテクチャの勘所 / Architecture practices with GraphQL - Speaker Deck

  • GraphQLをBFFとして使う場合に関する考察と代替案が興味深い

RustをつかってAWS Lambdaを実装&AWS CDKでデプロイする | DevelopersIO

  • カスタムランタイム使ってRustでLambdaファンクションを実装

Running GraphQL on Lambda with Rust | Dylan Anthony

  • こっちもRust
  • RustのGraphQL実装であるasync-graphqlをLambdaを動かす

JamstackプラットフォームのLayer0へNext.jsのアプリをデプロイしながら試す | Web Scratch

  • VercelとかNetlifyと似たサービスであるLayer0の話

lambda@edge上でwasmを使用した画像リサイズにおける速度

【AWS】API Gatewayで超手軽にMockを作成する。

  • 完全に余談だがAPI GatewayでMockって昔AWS Summit TokyoのタイムテーブルをReactで作ったときにやった。申し込み状況を管理してるのが外部APIだったので開発時にそのモックをAPI Gatewayで作った

2021年4月に買った本

2021年4月が終わったので4月買った本(マンガと小説以外)を晒していきます。4月はいろいろ買ったもののほとんど読めてない。

例によってリンクはアフィリンクです。

WEB+DB PRESS Vol.122

WEB+DB PRESS Vol.122

  • 発売日: 2021/04/24
  • メディア: Kindle

Web技術の総整理ってことで復習がてら読んでみようと思って購入。読んでみたらインターネットの成り立ちからOSI参照モデルの詳細、HTTPのステータスコード詳細とかWebサーバの基本的な仕組みみたいな低レイヤなことからブラウザでの表示される仕組みだったりを経てWebアプリケーションの基本的な話まで網羅されてる。確かに最初に一通り知るには深すぎずちょうどいい。

なお、続け様に次の特集である「はじめてのDjango」がある流れもよし。

個人的にはRustでRDBMSを作って学ぶってのやってみたいなと思った。

表紙にあるようにアマゾンはデータドリブンな会社です。これはマーケティングによらず常にそうでして、いろんな物事進めるにあたってデータドリブンであることとファクトベースってのはとても重要視されています。

僕はアマゾンを離れるわけなので改めて復習しようかと思って買いました。

DX経営図鑑

DX経営図鑑

ちょっと前にそもそもDX(デジタルトランスフォーメーション)ってなんだよ!って思いまして。

知人がこの本読んだってあったので購入してみましたが、そもそもDXそのものにはあんまり興味がないこともあって完全に積ん読になってますね。 => 読みました!

本書は前編を通して主に海外企業のDX成功事例といえるものが紹介され、解説されています。なのでこれから自社でもDXやりたいとか思っている人には参考になるものも多いのではないでしょうか。そもそもDXやりたいってなんだよとも思うときありますが。

一方で今の自分はもちろん今後の自分にとっても直接的に参考になる部分はあまりなかったです。でも成功とされているDX事例をざっと知れたことで世間の言うDXって言葉で期待するところ、イメージするところってこういうのなんだなっていう相場観は得られました。

以下、個人的なポイント。

・DXとは単なるITによるプロセスの自動化・電子化ではなく、高速化。つまり単なる技術の導入ではない ・その観点でモバイルやはり重要 ・後半のスタートアップ企業たちははDXというより、トランスフォーメーションに苦しんでる既存企業を尻目にしがらみなく新業態で創業って感じ

僕はマーケティングの人ではないんですが、エンジニアといえど自己ブランディング、自己マーケティングをちゃんとできているといいことありそうだなと最近よく思ってまして。特定技術にDive Deepしてそれをアウトプットするってのも立派な自己ブランディング、自己マーケティングですよね。本人はそのつもりでやっていないことのほうが多そうですが。

今後より流動性が高まっていくだろうというのもあってこのあたり意識したほうがいいのかなーと思って買いました。

最近話題の本ですね。なんかやたらソーシャルやらはてぶで見かけるので天の邪鬼な自分は逆に読む気がちょっと失せて積ん読になってます。

少し落ち着いたら読んでみようと思います。

というわけで2021年4月は以上の5冊でした。

Monthly AWS Serverless Update 202103

2021年3月のサーバーレス関連まとめです。こちらのイベントで取り上げる内容です。

serverless-newworld.connpass.com

2021年3月のリリース

1月、2月は少なかったんですが3月になって増えてきましたね。年明けて2ヶ月たってようやく本気だしてきたのでしょうか。

タイトルだけで内容がわかるようなものは特にコメントしていません。

AWS Lambda コンソールに新しいナビゲーションデザインを追加

  • Lambdaのコンソールが(また)変わりました
  • テストとか設定周りがタブとして用意されるようになった

AWS Step Functions が YAML のツールサポートを追加

Amazon EventBridge now supports propagation of X-Ray trace context

Amplify Android での Kotlin 中心のデベロッパーエクスペリエンスの発表

  • ファサード」モジュールを提供することで統合してるそうです(Kotlinわからない…)

Amazon EventBridge introduces support for API Destinations

  • イベントの送り先として任意のHTTP APIを指定可能に
  • 外部のSaaSや自分で管理しているAPIなど
  • 認証も組み込み済ってことでそのためのコード書く必要がないそうですが具体的にどうなってるかは不明

AWS Lambda が 4 つの Trusted Advisor チェックを追加

  • 以下の4つが追加
    • 高いエラー率 - 過去 7 日間のエラー率が 10% を超えるものをチェック
    • 過剰なタイムアウト - 過去 7 日間のタイムアウト率が 1% を超える関数をチェック
    • 非推奨 (または非推奨になりそうな) ランタイムの使用
    • 単一の AZ での VPC 対応関数
  • 上2つはコストに響く、シングルAZのチェックは可用性の観点

S3 Object Lambda で、S3 GET リクエストに独自のコードを追加して、データがアプリケーションに返されるときにデータを変更および処理することが可能に

  • S3 GETでデータが返される前にLambdaで処理を仕込める
  • フォーマット変換とか

Amazon RDS Proxy now supports database connectivity from multiple Amazon VPCs

Amazon RDS Proxy adds read-only endpoints for Amazon Aurora Replicas

  • read-onlyのエンドポイント「も」作れるようになった

AWS CloudTrail が Amazon DynamoDB のデータイベントのログ記録を追加

AWS CloudTrail を使用して、データプレーン API アクティビティをログに記録し、Amazon DynamoDB テーブルのアイテムレベルのアクティビティをモニタリング、アラーム、アーカイブすることが可能に

  • 同じ内容
  • ついにDynamoDBのデータアクセスに対する監査ログが取れるように

Amazon API Gateway で、エンドポイント、承認、およびロギング設定を管理するための IAM 条件キーを提供開始

Announcing AWS Step Functions’ integration with Amazon EMR on EKS

Announcing end of support for Python 2.7 in AWS Lambda | AWS Compute Blog

  • Python2.7のサポート終了案内
  • 2021年7月15日で新規作成はできなくなり、2021年9月30日で更新もできなくなる
  • それ以降も実行はできるけど、普通に考えて早めの移行をおすすめします

Amazon API Gateway custom domain names now support multi-level base path mappings

その他ブログなど

Operating Lambda: イベント駆動型アーキテクチャの設計原則 – Part 2 | Amazon Web Services ブログ

Operating Lambda: イベント駆動型アーキテクチャにおけるアンチパターン – Part 3 | Amazon Web Services ブログ

Amazon S3 Object Lambdaの紹介 – コードを利用して S3 から取得するデータを処理 | Amazon Web Services ブログ

  • Amazon S3 Object Lambdaの詳細。サンプル付き

コンテナ利用者に捧げる AWS Lambda の新しい開発方式 ! - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

  • Lambdaでサポートされたコンテナイメージについて
  • 使い方だけでなく背景や嬉しさなんかも

Using Rust for AWS Lambdas

  • RustをLambdaで。カスタムランタイム
  • 公開されているオフィシャルのサンプルだと非同期周りがうまく動かなくなってるのでそのあたりを対応

minne の画像配信システムのリアーキテクトと作品画像の画質向上ついて - ペパボテックブログ

LaravelをAWS Lambdaで動作させてデータベースにはAurora Serverlessを使ってみた - Qiita

初めてのAWSフルサーバーレス開発で困ったこととそこから得た知見 - Speaker Deck

サーバレスアーキテクチャで柔軟なIoTプラットフォームの構築 | IIJ Engineers Blog

Scala と AWS でフルサーバーレス開発事例 / How Chatworks uses Scala and Serverless - Speaker Deck

  • ChatWorkと言えばScalaScalaといえばChatWork
  • ScalaをLambdaでやるためのTips
  • GraalVMでネイティブコード化してカスタムランタイムで実行

サーバーレスアプリケーション向けのAWS CDK、Serverless Stackを触ってみました | DevelopersIO

  • Serverless Stackというサーバーレスアプリ開発のためのツールのニューカマー
  • CDKをラップしてるらしい
  • Live Lambda Developmentってのがリアルタイムで手元の修正結果を確認できるみたいでよさげ

serverless-stack.com

真のサーバーレスに一段近づけるフロントエンドアーキテクチャーの話

  • ネタ
  • サーバーレスというより分散システムの話かな

Step FunctionsとPandasを使ってサーバーレスETL入門 | DevelopersIO

  • ETLをAWS GlueではなくStep Functionsでやってみた

Serverless Frameworkで作るお手軽アプリケーション - Kaizen Platform 開発者ブログ

  • Lambda/API Gateway/S3/CloudFrontという構成
  • ユーザーが動画制作用の素材を外部サービスから無料で検索できる機能を実装

Serverless Image Handlerによるセキュアな画像配信の実現 - Visional Engineering Blog

  • 人材活用プラットフォームHRMOSのサーバーレスかつセキュアな画像配信
  • AWS Solutionsとして公開されているServerless Image Handlerをベースに、CloudFrontの署名付きURLを利用する形で構築

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

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   プライバシーポリシー