AWSは色々な業界のスタートアップでどう使われているのか?X-Tech JAWS 第6回 イベントログ
こんにちは、しがないラジオのgamiです。
今回は弊社プレイドの同僚が登壇すると聞いて、X-Tech JAWSというイベントに行ってきました。
AWS初心者で、JAWS-UGのイベントもX-Tech JAWSも初参加というアウェー戦ですが、せっかく参加したのでイベントのログを公開します。
JAWS-UGとは?
AWSの日本ユーザーグループです。
X-Tech JAWSとは?
FinTech、MediTech、AdTech、EdTech、LegalTechなど、X-Tech業界を集めてAWSに関する情報共有を行うコミュニティのようです。
AWSという共通のテーマを通じて、異業種間の交流を促進することを目的に運営されているとのこと。 何かしらの共通の話題があると、全然違う事業をやっている人たちでもコミュニティが形成されるというのはすごく面白いと思います。
登壇メモ
X-Tech JAWSの説明を除くと、合計5つのセッションがありました。
Session0:『X-Tech JAWSの紹介』
X-Tech JAWS立ち上げの経緯
- 「FinTech系勉強会はあるけど、他の業界はどうなの?」
- 業界を固定しない、AWSを使ったサービスの話を聴ける場所があれば面白いんじゃないか?
X-Techとは?
- 「洗練されたITをコアとして、その業界では新参者である企業が、今までにない価値や仕組みを提供する動向」
- 「クロステック(xTech)」ではなく「エクステック(X-Tech)」
最近のX-Tech業界
- 各業界のカオスマップを紹介
X-Tech JAWSとは?
- 3ヶ月に1回
- Amazon Chimeを使って配信
- 登壇依頼先の選定
- AWSを使っている
- 企業のサイトをCMANに入れてdigって調べている
- 技術と無縁そうだからこそ輝く業界
- AWSを使っている
- TechとBizの両方を聴くことができる
- ASCIIさんに専用ページがある
Session1:『スマートニュースにおけるニュースパイプラインの進化』
自己紹介
- ニュース配信チームのソフトウェアエンジニア
- ややインフラ寄り
- 一児の父
- Courseraのコースをひとつ終了した
SmartNewsについて
- 全世界で3,500万人がダウンロードするニュースサービス
- US版もある
- スマートビューでサクサクニュースが見られる
創業期
- 創業者の浜本さんが漫画喫茶にこもって書いていた
- API/On-memory DB/Indexer/Crawler/Analyzer
- これ以上なくモノリシック
近代
- 携帯アプリ/検索エンジン/インターネット
- 右側は、オフライン(記事が反映されるまで時間がかかってもいい)
- 左側は、オンライン処理
オフライン処理
- ニュース記事のクロール
- ポピュラリティ分析
- バズっているかどうか?
- 国籍/言語判定
- 記事がどこの国や言語で読まれているか?
- ポピュラリティ分析
- ニュース記事の解析
- 機械学習で記事のカテゴリ判定
- 政治?スポーツ?
- 固有表現抽出
- 人名、地名etc...
- 機械学習で記事のカテゴリ判定
オンライン処理
- アプリと直接やりとり
- 処理速度がめっちゃ大事
- 1日四回の明確なピークタイム(朝/昼/夕/夜のプッシュ通知)
- 大体はScale Out可能にする
- 大体はキャッシュ可能にする
- なるべく検索エンジンに対してクエリを発行したくない
オンライン/オフライン共通
- EC2は全てASG管理
- 部分的にECSも導入
- メトリクス
- Datadog
- 一部、PagerDuty連携
- New Relicでパフォーマンス監視
- メソッド単位で見たい場合など
- それ用の小規模ASG
- まず、そこだけデプロイして、パフォーマンス計測をする
- ライセンス料が高いので、あんまり入れたくないのが理由
- 問題なければ、大規模なASGにデプロイ
- まず、そこだけデプロイして、パフォーマンス計測をする
現代
- ビデオ機能が追加されたことが理由
- 現時点では、iOSのみ
- なるべく既存システムを活かす
Amazon SageMaker
- 機械学習プラットフォーム
- 動画専用のカテゴリ分類機能を構築するために利用
- US Engineeringチームが管理
- エンドポイントのオートスケール
- モデル更新がシームレス
Elasticserch Service
UGC動画収集
- Twitterの動画が多い
- Twitter Search -> Spark Streaming with EMR -> 動画解析機 -(N枚の画像)> Google Cloud Visiton API
- Googleは、画像処理周りが圧倒的に強かった
- たとえば、ゲーム実況動画の画像を渡すと、ゲームタイトルまで返してくれる
会社自慢
- 海外自主渡航制度
- 用事がなくても、半年に1回、海外で1週間働ける
- 自社イベントスペース
- 毎月マッサージを受けられる
- 英語学習サポート
- SmartKitchen
- 無料ランチ
- 地球珈琲
- バリスタが毎日常駐
Q&A
- クーポンやテレビCMで変わったことは?
- 圧倒的にユーザー数は増えて、Scale Outする数も多くなった
- 監視は、Datadog、PagerDuty、NewRelic以外で何を使っているか?
Session2:『秒間4万イベントのプロダクトを支える裏側とは(仮)』
自己紹介
- 元楽天のアプリケーションエンジニア
- プレイドの3人目SRE
KARTEについて
- KARTEを知っている人?
- (2割程度)
- CX Plarform
- サイトに来ているユーザーを可視化
- StatelessなHTTPに、Statefullなユーザーレイヤーを追加したい
- 実績
- 秒間最大45,000イベント
- 解析時間0.x秒
KARTEに求められるもの
- クライアントのサービスの一部になるので、落とせない
- req/resの一部となるので、リアルタイム解析
- 大量のリクエストを全て解析する処理能力
マルチクラウド
なぜマルチクラウドになったのか?
実際の障害ケーススタディ
- 2018/7/18にGCPで大規模な障害
- 1時間くらい、GCPのバランサーが落ちた
- Pokemon GO、メルカリ、Abema TVなどが使えなくなった
- 普段はGCP:AWS = 8:2で名前解決
- SlackコマンドでAWS 10割に変更
- 10min以内にサービス復旧
- 「Pokemon GOに勝った!」
まとめ
宣伝
- エンジニア募集中です!
Q&A
- データ量が多いので、オンプレを検討したことは?
- まだそのようなフェーズではない認識
- ベンチャーとしての柔軟性を持ちたい
- SREを3人でやっているので、リソース的にも難しい
- まだそのようなフェーズではない認識
- マルチクラウドでプロヴィジョンをどうしているか?
- PackerやTerraformなどを使っている
- デプロイはSpinnaker
- Azureという選択肢はどうですか?
- ネットワークレイテンシを小さくする工夫は?
- 東京に近くてサービスが充実しているリージョンを選ぶなどしている
障害は必ず起きる
- 2017/3: S3が3時間ダウン
- 2016/10/13: GCPのLBが2hダウン
- 対策
- リアルタイム解析に関わる重要な部分は、なるべく複数プロバイダーで動かすように
Session3:『OWNERSを支えるサーバーレスアーキテクチャと、ukkaにおけるAWSの使い方』
自己紹介
- ukkaの1人目社員
- TechLead
- 京都から東京に引っ越し
ukka
- 「100年後に続く食と農のあるべき形を創る」
- 農家さんの前でプレゼンしたり
- 生産者側の課題
- 誰が食べているかわからない
- 売値が安い
- 収入が安定しない
- いくらで売れるかわからない
- 質の高いものを作っても市場に出せない
- 見た目のために味を捨てていたり
- 規格と違う品は捨てられてしまう
OWNERS
- 生産者が作る希少食材に対して、一口オーナーとして登録し予約注文
- 収穫された食材が最も美味しいタイミングで直接届く
- 解決すること
- 生産者
- 価格決定権を持てる
- キャッシュフローの改善
- 事前登録型で計画生産
- 定常的なファンづくり
- 消費者
- 特別な食材を予約注文
- 最も美味しい時期に生産者直送
- コミュニケーションで繋がる
- 現地への体験にも参加できる
- 「消費者ではなく当事者を作りたい」
- 生産者
フルリニューアル
ローカル環境をDocker化
- 人のスケールのため
docker-compose up -d
で全て立ち上がるようにした
デプロイ
- 絶対に人の手でデプロイしないという強いお気持ち
- 何度もデプロイをすることがあると、すごく時間がかかる
- developへマージ -> staging環境へ
- master -> production環境へ
- Circle CIもローカルでも同じDocker環境
- コケたら手元で検証できる
Lambdaの運用
- Webサービス本体は1Lambdaで運用
- 移行してどう?
DynamoDBの運用
- フルDynamoDB
- 100テーブルほど
- On-demand Capacityが発表されて、速攻で使った
- キャパシティチューニングから解放された!
- 安い!
- $160 -> $26
- 余裕を持って設定していた分を節約
Athenaの運用
- マーケターが、SQL書きたいと言ってきた
- DynamoDBなんですけど...
- Glueからフルスキャンして、ETL JobでjsonをS3へ
- Athenaでクエリを書けるように
- AWSコンソールからぽちぽちしたら、実装無しでできた!
- 使ってみてどう?
-BQも良いがAthenaも十分早い
- 安い
- Glueが$100/month
AWSでサーバーレスやるときの注意
- Lambdaの同時実行数上限は1,000
- 申請が必要
宣伝
- 全職種募集しています!
Q&A
- On-demand Capacityを導入する前はどうしていた?
- 月に1回くらい、手動でチューニングしていた
- 明確なピークが無い
- OWNERSは、ECとSNSを合わせたようなサービス?
- 生産者と消費者を直接つなぐプラットフォーム
- 確かに、生産者から情報を投稿できる「手作り日誌」という機能など、相互にやりとりできる機能はある
- ITリテラシーが高くない人たちを相手にしていることの苦労は?
- IEを使われているのが辛いw
- 生産者パートナーというサポートメンバーがいる
- 機能の説明で苦労をすることは多いらしい
- ライティングやコンテンツ作りに力を入れているが、どのようにしているのか?
- 社員自身が取材をするパターンもあるし、ライターさんが書いてくれるケースもある
- ゆくゆくは、FR(Farmer Relationer)を増やして、ネットワークを作っていきたい
Session4-1: 『LegalForceの開発秘話、裏側を一挙お見せします』
株式会社LegalForce 時武佑太(最高技術責任者)
自己紹介
LegalForce
- 契約書をAIでサポート
- 契約書のチェック
- これまで
- 紙に印刷して、見ていく
- 「弁護士でも、契約書のリスクを35%見逃してしまう」
- LegalForce
- ファイルをアップロードすると、自動で抜け漏れや欠落条項をアラート
- これまで
- チーム編成
- CEOとCOOが弁護士
- Matzが技術顧問
LegalForceの開発エピソード
- 最初は、コミュニケーションツールを作ろうとしていた
- チャット+契約書+コメント
- 解決したかった課題
- 社内の契約書レビューに時間がかかる
- 先方との契約書やり取りに時間がかかる
- なぜやめたか?
- ユーザー理解が甘かった
- 法務部の人が使っているメールとWordの両方を代替できないと厳しかった
- Google Docsを再発明する必要がある...?
- ユーザー理解が甘かった
- レビュー支援に舵を切った
- 2つの機能
- 契約書検査機能
- レビューが必要になりそうな場所を、社内ポリシーに合わせて指摘
- 類似条文検索機能
- 過去に使用した条文をさっと検索できる
- 契約書検査機能
- プラスαのツールへ
- 新機能
- Wordアドインの提供
アーキテクチャ
- CloudFrontでフロントのSPAを配信
- APIはFargate
- デプロイ周り
- Circle CI
- Dcokerイメージ作成
- ECRにイメージ登録
- ECSのタスク改定
- Circle CI
- Fargete
- ホストサーバーを気にする必要がないのは楽
- CPUコア数、メモリ容量を細かく指定できる
- 高いことがデメリットだったが、50%も安くなったらしい
- ログ周り
- fluentdコンテナをサイドカーでくっつけてログ収集
まとめ
- ユーザーニーズについての認識合わせは、考えている以上に綿密に!
- プラスαのツールになることで、居場所ができた
- Fargateおすすめです!
Session4-2: 『AIは働き方を帰るのか 「AIaaS」が面白い理由』
川戸崇志(事業開発)
自己紹介
- 事業開発の責任者
- 前職はマッキンゼーで戦略策定からコスト削減まで
- 日本の働き方の非効率さを強烈に実感
働いても、働いても、お金にならない
- 1990年にはドイツと生産性が同じだったが、今では...
- 製造業は健闘しているが、オフィスの生産性が低い
- 弁護士の月の労働時間
- 400時間
- 工場と法律事務所で、働き方が違いすぎる
法務が抱えてきた問題と、目指すビジョン
- 情報を探す手間
- 情報のジャストインタイム
- 個々人の作業の不可視性
- 管理なきマネジメント
- 作業手順の属人性
- ナレッジベースのマネージドサービス化
AIaaS: AI x SaaSを可能にするビジネスモデル
- 複数社への提供が前提
- 自然言語処理・深層学習・技術の応用が必須
- 受託開発では運用が困難
目標
- 2025年までに、日本の法務の生産性を世界一に。
Session5: 『失敗をデザインする』
自己紹介
ラクスル
「失敗をデザインする」
ラクスルのツラミ
- 生身のユーザーになれない
- 現場にソフトウェアを使ってもらうことは、想像以上に難しい
- ドメインロジックが複雑
- たとえば、物流の混載のロジック
- 奥が深い上に、前例も無い
失敗の歴史
- 年賀状アプリを外す
- ビジネスチックデザインにして、CVRガタ落ち
- 荷主向けアプリをリリースしてから、ほとんどPCしか使っていないことに気づく
- 30商品追加して売れずじまい
Disinvestment
- 「リリースしてから失敗に気づいても遅いんです。」
- 出す前にとことん失敗すればいい
- 「失敗のデザイン」
- 中竹竜二(ラグビー界のコーチのコーチ)
- 石鹸でヌルヌルしたボールで練習するなど
- 中竹竜二(ラグビー界のコーチのコーチ)
- 「失敗のデザイン」
ラクスルの「失敗のデザイン」
- 現場観察・ヒアリング
- 仮説は立てず、ファクトを集める
- 課題解決の提案と試作品づくり
- なるべく破壊しやすいものを作る
- "Cheap Failure"
- 試作品の検証
- 1に戻る
- どこかのタイミングで、リリース!
ラピッドプロトタイピングを支えるためのツールやプロセス
- AWSも、簡単に失敗するためのツール
感想
純粋な技術の話だけではなく、その背景にあるビジネスモデルやクライアント業界の特性についても話を聞けたのがすごく面白かったです。 勉強会というとついつい技術の話に偏りがちですが、僕自身もプロダクトの話がすごく好きなので、熱いプロダクト話がたくさん聴けて楽しいひとときでした!
X-Tech JAWSは定期開催しているので、また興味があるトピックがあればぜひ参加してみたいです。