AWS re:Inventのパネルディスカッションに参加してきました #reinvent #jawsug

セクションナイン吉田真吾@yoshidashingo)です。2012年からre:Invent皆勤賞です。

昨日、「Building and Growing a Successful AWS User Group(うまくいくAWSユーザーグループを作り育てる方法)」というパネルディスカッションに、日本の老舗AWSユーザーグループであるJAWS-UGの代表として参加してきました。

https://www.portal.reinvent.awsevents.com/connect/sessionDetail.ww?SESSION_ID=10029

セッションの様子はAWSのSAである荒木さんが公式ブログにも書いてくださいました。荒木さんはわれわれJAWS-UG横浜支部のハンズオンでCloudFormationの壮大で大変なシナリオをわざわざ作ってくれたことがあり(もう4年前ですね)、まぁ他にもいろいろ原稿チェックをお願いしたりなどいつもありがとうございます。

aws.typepad.com

さてさて、どんな様子だったか軽くまとめておくことにします。

セッションは事前登録の700席が満席+100人以上は当日の行列ができていたようでとても盛況でした。

パネルとして集まったのはサンフランシスコから Peter Sankauskas、ミュンヘンから Markus Ostertag、上海から Yu Zhang、横浜(および日本のコミュニティ)から私というそれぞれユーザーグループをリードしている4人でした。

それぞれが数百人規模のユーザーベースのコミュニティを運営しており、日本のJAWS-UGとしては、

  • 全国に支部が50くらいある
  • 地域としては40くらいあり、それ以外に専門支部がIoT、CLI、BigDataなどなど10個くらいあり、初心者支部もいくつかある
  • JAWS-UG主導で作る年次カンファレンスには1500人くらいが参加する

といった紹介をしました。

スポンサーはどうしてるかという話題について、SF、ミュンヘンは会場とフード&ドリンクをスポンサリングし、スポンサーの紹介タイムを設けているという話がありました。彼らは会場も持ち回りでやってるみたいです。日本では多くの場合が会場のスポンサーとして無料で借りられるところをお願いすることが多く、懇親会はミートアップが終わってからやることが多いのでそれよりは楽という話をしました。上海については飲み会的な形式にすることもありカジュアルに開催できていいとのことでした。

会場からセッションの中にセールストークが入っちゃうような場合はどう扱ってるかという質問がありましたが、SFでは前述のとおりスポンサーのセッション枠が宣伝時間になるようにしているとのことでした。日本では、まぁ「ガミガミ言いいたくはないけど当然分かるよね」って伝えてるという感じの笑い話をしました。過去にも宣伝トークの割合が多い方がいたりはしましたが、聴衆に持って帰ってもらうものと宣伝の比率がおかしいとそもそも好意的に受け取ってもらえないですからね。コミュニティの中の社会資本のような感じでその点はだいぶ成熟してるのかな(JAWS-UGに限った話じゃなくて)とは思ってます。

まぁ、それにしてもこの点に関しては誰にお願いするのかってことも関わるんですよね。エンジニア名指しでお願いするとだいたいわざわざ初モノの資料を作って手弁当で来てくれるのに全く宣伝がないのもそれはコミュニティの継続性としては不自然だと思うので。

コミュニティにどのくらい労力かけてる?という質問も千差万別な答えではありましたが、なんとなく数字のようなものを言うほうがみんなイメージしやすいかなと思ったので10%かそれ以下くらいかなって答えたんですが、これは実際に手を動かす時間としてその程度がなんとか捻出できてるって現実なだけで、実は四六時中面白そうなことは家族のために面白そうなこと、会社のために面白そうなこと、自分のキャリアにとって面白そうなこと、技術的に面白そうなこととごちゃまぜになりながら、コミュニティにとって面白そうなことも考えている感じなのでちょっと測定は難しいですね自分の場合は。

絶対に伝えたかったこと=ヒーローを見つけて育てる

AWSのアップデートは非常に早くて多くてキャッチアップが大変だけど、そういった内容のセッションのコンテンツを作って話す人をどうやって選んでるかって話になったときは、日本に関して言えばそういう話を積極的にしたいって言ってくれる人も多いし、初心者支部のような場所であれば、はじめに初心者だった人が次は教える側に立つことで成長しながらつながって行くんだよって話をしました。

また、ちょうど良かったんでその流れでどうしても最後にひとつだけ言わせてもらいたいと割り込んで話したことが、「コミュニティの使命としてひとつあると思ってることは、次の世代のヒーローを見つけて育てることだと思う」ということでした。

自分の中では実はこれが結構な原動力の源泉になっていて、リーチしていなかったコンテンツや人となりが、「場」を通じてたくさんの人に認知してもらえ、それを通じてその人が成長して、少しでも人生に良い影響を与えることができるといいなって感じです。自分がこのコミュニティに関わって受けた大きいものがそれだったし、実際にそれでキャリアチェンジしたり、マーケティングやセールスの取っ掛かりになったり、専門分野を深めるきっかけになった人がたくさんいてくれているので。

謝辞

いろいろ調整してくれたJAWS-UGの立花さん、AWSの石橋さん、アテンドしてくれた西谷さん、SFのPeter、ミュンヘンのMarkus、上海のYuさん、モデレーターのIan、また、頼みもしないのに最前列でプレッシャーをかけてくれた皆さん、ありがとうございました。とてもいい経験になりました。日本のコミュニティのちょっとウェットで誠実で勉強熱心な雰囲気が世界中のAWSユーザーに少しは伝えられたんじゃないでしょうか。

余談:ノリでよろしく

そういえば事前に電話で一度トラックオーナーに主旨説明は受けたなーくらいで当日を迎え、事前リハとかないの?て聞いても「まー、前のトラックが終わったら集まってくれればいいので」くらいのフリースタイル感バリバリだったので実際登壇にあたっては本当に緊張しました。まぁただしそこらへんはモデレーターのIan(Serverlessconf Londonで一緒に呑んで語学力は知ってもらえてたし)が気を使って回答の順番を最後に回してくれたのでこちらとしても毎回「オチ」っぽいことを言えばうまく進行していく感じだったし、ところどころどうしても言いたいことは割り込んで話してIanのほうでまとめてもらうみたいな雰囲気だったので、さほどボロも出ずにまとまったのかな、という感じでした。

みんな英語は普段からやっとかないとおじさんみたいに度胸勝負になっちゃうぞ。

www.youtube.com

サーバーレスの薄い本(Serverless Meetup Tokyoセッション紹介) #serverlesstokyo

セクションナイン吉田真吾@yoshidashingo)です。

Serverless Meetup Tokyoを今週水曜に初めて開催します。

今日は記念すべきMeetupの初回のトップバッターを飾る仲山昌宏さんと軽いチャットをしました。

以前に私が「めもおきば TechReport 2016.08(サーバレスアーキテクチャ特集)※通称サーバーレスの薄い本」をいただいたとき、「網羅的」かつ「簡潔に」サーバーレスの歴史や考え方、周辺の話題との関連性がしっかりと書かれており感銘を受け、無理を言って増刷していただき ServerlessConf Tokyo で頒布していただきました。案の定予備としてお持ちいただいた補充分まで含めて早々に完売しておりました。

今回話す内容は20分枠なのでダイジェストとなってしまいますが、当日頒布もありますので「サーバーレスとは何か」を考えるときに手にとっていただきたい一冊です。

プロフィール

  • 名前:仲山昌宏
  • 会社名:株式会社where
  • 役職:IoT基盤センター サービスプロデューサー

f:id:yoshidashingo:20161108121954j:plain

Quick Chat

---- 仲山さんは普段どんな仕事をしてるんですか?

普段はIoTプラットフォームのクラウド側の開発と、社内IT基盤を兼務でやっています。

その中で、IoTプラットフォームのクラウド側として、Bluetoothのメッシュネットワークから受け取ったデータを収集・分析するためのシステムを開発しています。サーバレスアーキテクチャは、勘所さえ押さえれば、開発や運用のコストを抑えられるだけでなく、開発工数が足りないときに「金の弾丸」で殴りやすいところもあり、人が足りていない現状で大変助かっています。

----- 薄い本シリーズについておしえてください

元々コミケには買う側でずっと参加していましたが、きっかけはニフティさんのお誘いでクラウドに関する書籍執筆に参加したことがきっかけで、自分でも本を出してみたいと思って、思い立ったが吉日と出すことにしました。 今後も、クラウドに限らずなんとなくその時自分でブームになっているキーワードで、継続して出していくつもりです。

---- 今回のサーバーレスの薄い本の経緯や目的はなにでしたか?

昨年末に、Hardeningを第一特集にした一冊目を出したのですが、その時にはやりのキーワードの一つとしてサーバレスアーキテクチャを紹介しようと自分の中で整理するなかで、もう少し掘り下げてみたいという思いがあり、今回の特集になりました。

f:id:yoshidashingo:20161108095515j:plain

---- サーバーレスであることとはなんでしょうか?

システムを実現する上で、人が考えないといけないことを減らし良いシステムを作るための「良き制約」として、サーバという概念を捨てよう、というのが本質だと思います。

---- 今回の薄い本の反響ってありましたか?

正直自分でも、必要な内容は押さえたとは思いつつもここまで評価していただいて嬉しいです。

---- 個々のサービスなどについてちょっと突っ込んだ話などあれば最後におしえてください。

DynamoDBがまだうまく乗りこなせずに色々苦労しています。 あと、「うまくスケールしてくれる」とはいいつつも、DynamoDBのキーやKinesis Streamsのパーティションキーなど、うまくスケールさせるための設計は当然こちらが設計しないといけないので、そのあたりを少しずつ失敗で実績を積み上げているところだったりします。

---- ありがとうございました。

まとめ

短いチャットでしたが非常に明快で面白い内容でした。明日が楽しみですね。 serverless.connpass.com

3分ではじめるWebtask

セクションナイン吉田真吾@yoshidashingo)です。

各社FaaSプラットフォームを提供していますが、Auth0という認証SaaSの別プロダクトであるWebtaskの話をServerlessconf Londonで聞いているところなので聞きながら試してみてます。

Getting Started

  • Webtaskのサイトにアクセスします。

https://webtask.iowebtask.io

  • GithubやFacebookなどでログイン(アカウント作成)します。

  • wtクライアントをインストールします

$ npm install wt-cli -g

ちなみにこのクライアントはオープンソースで開発されています。

github.com

  • 環境の初期化をします
$ wt init <作成したアカウントのメールアドレス(https://webtask.io/cliにあらかじめ表示されています)>

Please enter the verification code we sent to <メールアドレス> below.
Verification code:

メールアドレスに6桁の確認コードが届いているので入力して環境の初期化をします。

  • サンプルコードを試す
$ echo "module.exports = function (cb) {cb(null, 'Hello');}" > hello.js
$ wt create hello.js

Webtask created

You can access your webtask at the following url:

https://xxxxxxxxxxxxxxxxxxxx.run.webtask.io/hello?webtask_no_cache=1

こんな表示が出るのでURLにアクセスすると、コードが実行されて画面に表示されますね。

f:id:yoshidashingo:20161027215119p:plain

  • ちょっとコードを編集してみましょう。
$ wt edit hello

と入力するとブラウザ上がエディタが起動してコードが編集可能になります。

f:id:yoshidashingo:20161027215525p:plain

コードを以下のように編集して実行すると、

var view = (function view() {/*
    <html>
    <head>
      <title>Welcome to Webtasks</title>
    </head>
    <body>
      <h1>Hello, <%= name %></h1>
    </body>
    </html>
*/}).toString().match(/[^]*\/\*([^]*)\*\/\s*\}$/)[1];

module.exports = function (context, req, res) {
  console.log('hoge');
  res.writeHead(200, { 'Content-Type': 'text/html' });
  res.end(require('ejs').render(view, {
      name: context.data.name || 'Anonymous'
  }));
}

HTMLをレスポンスして f:id:yoshidashingo:20161027221115p:plain

ログ出力されるコードが簡単に実行できました。 f:id:yoshidashingo:20161027220957p:plain

実行環境について

Webtaskの実行環境も他のFaaSと同様にコンテナベースでできており、Dockerをベースにしているそうです。(かつ常に実行環境が裏で事前にプロビジョニングされておりウォーミングされている)

その他のアクション

セッション内ではデモとしてSlackを使ったChatOpsが披露されていました。

それ以外にもGitHubのリポジトリにサンプルがたくさん入っており、Webtaskにホストしているコードをスケジュール実行する方法や、認証後のJWTの内容を自分でカスタマイズする方法などがあり、結構有用かもしれないと思っているところです。