先日 GCPUG Tokyo December 2019 に参加してきました。
会場は株式会社ディー・エヌ・エーでした。実はヒカリエに入ったのが初めてで*1買い物客と一緒にエスカレーター乗っていると朝の通勤時に混雑で大変そうだなと思ってしまいます。
オフィスはめっちゃ広くて綺麗で羨ましい!
- GKEでMLアプリケーションを短期開発
- AWS と BigQuery をまたいだデータ分析基盤構築
- BigQueryで行う、機械学習のためのデータ前処理
- GCRで全部まとめて配布した話
- SpannerとgRPCを使ったらバグった話
- まとめ
GKEでMLアプリケーションを短期開発
DeNA @mazgi 氏のセッションです。
補足についてブログがアップされていました。
GAE ではなく、Kubernetes を採用した理由についてはチームメンバーの次のプロジェクト、今後についても考慮されており技術選定についてとても勉強させていただきました。
プロジェクト概要
- 1日DeNA学校
- 小学生を対象に未来のエンジニアに必要なスキルを1日で学ぶ
- 体験講座で使用するWebアプリケーションを開発
- 要件
- 小学生が操作できる UI/UX
- できるだけ文字入力したくない
- iPadで体験できる
- 個人情報保護
- アクセス制限(会場外からアクセスさせない)
- 写真がアップロードされる
- 小学生が操作できる UI/UX
- スケジュール
- 10/15にキックオフ、12/15本番(ピッタリ2ヶ月!)
- チーム構成
- 新卒(4/5人)
- 研究室でコード書いていたが Web アプリ開発経験がすくない
- 全員兼務
- 新卒(4/5人)
マイゴール
- 非同期開発
- 全員が兼務で出張もあるため
- そこそこ正しい技術選定
- 短期間なので試行錯誤ができない
- せっかくならチームの実になる技術を導入したい
システム構成
- Frontend + BFF
- API は GraphQL のみで REST はつかってない
- サンプルを作ってそれを元に議論してすすめた
- Machine Learning Web API
- 画像は GCS にアップロード
- GCE インスタンスで実行
- GPU は K80 を8枚挿している
- Infra
- GCPプロジェクトはProduction / Sandbox
- 個人情報(写真)はプロジェクトを分けて対応
- CloudArmor で接続元制限
- Terraform でプロビジョニング
- Deploy は kustomize + kubectl
- GCPプロジェクトはProduction / Sandbox
プロジェクト進行
- 本番環境
- Kubernetes
- インスタンス管理したくない
- GAE/Serverless はメンバーが Web アプリの開発に寄っていないので見送り
- Dockerに慣れている
- GKE
- ノード管理したくない
- 部内では GCP or AWS を使っている
- Kubernetes
- 開発環境
- Docker for Mac
- 遅いうえに不可解な事象が発生
- Linux 機を用意してもらい解決
- Dockerfile
- 本番と開発で同じ Dockerfile をつかってマルチステージを利用
AWS と BigQuery をまたいだデータ分析基盤構築
Sansan @Yuta CHIBA 氏のセッションです。
名刺データ分析基盤
- 当日のスライドはまだ上がっていませんが、AWS で動いている名刺データ分析基盤については Sansan Builders Box 2019 で発表されたスライドがあります。
S3 から BigQuery への転送
- BigQuery Data Transfer Service の Amazon S3 transfers を使用
- データロードに失敗
- 名刺交換日が yyyy が 0000 になっていた
- 元データセットの Date 型から String 型に変更することで暫定的に対応
BigQueryで行う、機械学習のためのデータ前処理
Fringe81 @HiroakiHasegawa 氏の LT です。
- BigQuery ML で機械学習
- 大量のデータから安く簡単にデータセットを構築できる
- SQL で処理できる
- 構築したモデルにデータを流し込める
- 複雑な分析・可視化は Jupyter で行う
- BigQuery の結果を DataFrame として格納し、pandas/matplotlib などで分析できる
- クラウド破産しないように、クエリ実行にかかるデータ容量に対して上限をつけられる
- ST_GEOHAZSH
- 地理情報をカテゴライズするときに便利
- 学習・予測・評価で同じ前処理をしなければならなかった
- TRANSFORM句:前処理とモデルを一緒にしてくれる
GCRで全部まとめて配布した話
DeNA @yuiza 氏の LT です。
- Oyakata
- https://www.slideshare.net/sairoutine/dena-oyakata
- Go Webアプリ・関連ツール
- オンプレ
- 複数の環境で動作する
- 課題
- 既存フローを大きく変えない
- インストーラみたいにパッケージングして提供
- フェーズ1: 開発者は GCR に docker push するだけ
- フェーズ2: Docker pull
- GCR にすべてのバージョンが入っている
- 好きなタイミングで Dockr pull して開発環境できる
SpannerとgRPCを使ったらバグった話
DeNA @lp-peg 氏の LT です。
Sppaner に gRPC で接続したら無限ループに陥ってしまった話
まとめ
GCPUG は初参加でしたが、他社の GCP 活用事例が聞けたのは良かったです。
DeNA や ZOZOTOWN などもマルチクラウドを採用している企業が増えてきており、同じマルチクラウドをすすめている身としては刺激になりました。
*1:渋谷・表参道勤務なのに行ったことがないという