re:invent 2017 に行ってきました

re:invent 2017 に参加してきました。

参加したセッションのメモなどを残しておきます。

ビッグデータ関連のセッションがほとんどです。

目次

まとめ&感想

「Data Lake」というワードが頻繁に出てきたのが印象的でした。機械学習や IoT のセッションでも、データの集め方みたいな話になると、Data Lake という言葉と一緒に、必ず Glue Data Catalog と Athena と Kinesis Stream & Firehose がセットで登場していたように思います。

S3にとりあえずデータを貯めておいてあとはよしなに頑張れ、というのは昔から言われていました。そこに Athena や Glue Data Catalog が登場し、S3 がただデータを貯めておくだけの場所から、データ探索が可能な場所に変わったことで、「S3にデータを貯めておく」ことの重要性が大きくなったということでしょうか。

サーバーレスなデータ分析環境の話題も多かった印象です。ストリームに対する分析に関しては Kinesis Analysis が以前からありましたが、Athena と Glue ETL が出てきたことで、バッチ処理に対してもサーバーレスに行うことができるようになりました。ストリーム処理・バッチ処理どちらもサポートしたことで、例えば Lambda アーキテクチャAWS Lambda は関係ない)をサーバーレスに実装できるようになったというのは面白かったです。

新サービスの中でも特に注目だったのは SageMaker でした。Rekognition などのサービスと合わせて、機械学習へのハードルがガンガン下がっていきますね。今までは、無理に機械学習を取り入れなくてもいいかなと思ってましたが、そろそろ本格的に導入したくなってきました。Deep Lens も面白いですね。何か作ろう。

S3 Select & Glacier Select も地味に期待しています。Athena や Redshift Spectrum から Glacier に直接クエリを投げられる日が来るんでしょうか。そうなると、ストレージ料金的にも BigQuery より安くなるかもしれませんね。

あと、ベンチに座って休憩していたら、隣にいた知らない人から「Deep Lens についてどう思う?」と聞かれたのがちょっと衝撃でした。今まで知らない人から議論ふっかけられたことなかったので、面食らってしまいました。「正直まだあまりピンときていない」みたいなことを答えたのは後悔しています。デタラメでもいいから何かでっち上げるべきでした。

セッションは後から動画で観れるから re:invent わざわざ行かなくてもいいのでは?と思った時もありましたが、1週間という長い時間をこのためだけに確保できるというのは大事だと思いました。何より、実際にAWSのサービスを開発しているエンジニアや、海外のエンジニアと直接話をできるというのはとても貴重な体験でした。機会があればまた行きたいです。


以下雑なメモ

MCL303 - Deep Learning with Apache MXNet and Gluon

Deep Learning with Apache MXNet and Gluon
youtubue
slide

  • AI > ML > DL
    • Symbolist
    • Analogist
    • Bayesian
    • Evolutionist
    • Connectionist = DL
    • Booster = random Forest
  • MXNet
    • Distribted Learning
      • データを分割してそれぞれでネットワークを構築。それを average する
      • Parameter server
    • Batch size 大事
      • 1回の操作でどれだけデータを扱うか?
    • MXNet batch size 大きくするとスーパー早くなるよ
    • MXNet 使うと DL 簡単にできるよ
  • Gluon
    • Gluon 使うとさらに柔軟性がUP!
    • 学習の途中にデバッガも挟める

GAM310 - Build a Telemetry and Analytics Pipeline for Game Balancing

Build a Telemetry and Analytics Pipeline for Game Balancing
slide
amzn.to/GAM310

  • EMR はアーミーナイフ
  • Kinesis analysis Kinesis stream source に、Kinesis Firehose destination に指定するみたいなことができる。便利そう

ABD202 - Best Practices for Building Serverless Big Data Applications

Best Practices for Building Serverless Big Data Applications
youtube
slide

  • Virtualized -> Managed -> Serverless
  • Serverless
    • No server provisioning
    • Never pay for idle
  • Mix and Match Serverless, Managed, and Virtualized
  • Services
    • Lambda
    • Athena
    • Glue
      • Data Catalog
      • Servderless ETL
    • Kinesis
      • Kinesis Analytics の前に Lambda preprocess 可能
  • Stream / Batch どちらも Pipeline AWS はカバーしている
    • Stream — Kinesis -> Lambda -> Kinesis Analytics -> QuickSight
    • Batch — S3 -> Glue -> Athena -> QuickSight
  • Misc
    • Glue Data Catalog 便利くさい
    • Athena — `group by (1)` ??
    • Data Lake Architecture
  • About Existing Hadoop Cluster
    • Hue interface
    • Zeppelin (ゼッペリン)
  • まとめ
    • AWS はデータパイプラインを構築するのに必要な Virtualized / Managed / Serverless なサービスを全て揃えているよ
    • バッチ処理・ストリーム処理それぞれに適切なサービスを選ぼう
    • Serverless なやつがスケーラビリティや安定性などの点で一番いい。
    • だけど大事なのは Virtualized / Managed / Serverless なサービスを要件に合わせてうまく組み合わせること。

ABD327 - Migrating Your Traditional Data Warehouse to a Modern Data Lake

Migrating Your Traditional Data Warehouse to a Modern Data Lake
slide
youtube

  • Result Caching
    • Transparent! -- 何も考えなくても適用されている
    • リソースに余裕ができることで、他の思いクエリの処理も高速化される
  • Short Query Acceleration
    • AI で最適化
    • Customized for your workload
    • Transparent!
  • Nested Data Support!!!
  • Fox の事例
    • よく使うテーブルは Daily vacuum
    • 週1で全テーブル vacuum
    • analyze のタイミングは統計テーブルを見て自動でキック

ABD322 - Implementing a Flight Simulator Interface Using AI, Virtual Reality, and Big Data on AWS

Implementing a Flight Simulator Interface Using AI, Virtual Reality, and Big Data on AWS
slide

フライトシミュレーターを作ってみようワークショップ。

前半は、VR / AR の概要や重要性に関するレクチャー。IoT AI, Big Data などとの関連についても触れていた。

ワークショップとしては、実際はシミュレータ部分は触らず、シミュレーターから出て来たデータを Kinesis に流してゴニョゴニョするところがメイン

http://bit.ly/2zFdJa3

  • Builders fair — Aria — Quad 34
  • Predictive analytics
  • 5 components
    • Simulae
    • Interface
      • Switches, inputs, outputs
    • Process
      • Kinesis
      • To CloudWatch
      • To Redshift
      • IoT / GreenGrass
    • Visualize
    • Interact
      • Lex
    • Learn
      • Redshift
      • DynamoDB
      • Amazon Machine Learning
  • What must consider
  • 感想
    • BigData には IoT AI の話題が必ずついて回ってくるようだ。
    • BigData 領域だけ見ていたらダメだなあと思いました。

 ABD307 - Deep Analytics for Global AWS Marketing Organization

Deep Analytics for Global AWS Marketing Organization
youtube
slide

  • Single Data Repository
    • Redshift 使ってる
  • Self-service
  • 次のステップ
    • Real time

ABD318 - Architecting a data lake with Amazon S3, Amazon Kinesis, and Amazon Athena

Architecting a data lake with Amazon S3, Amazon Kinesis, and Amazon Athena
youtube
slide

  • データレイクを使う理由
    • 利用シーンが多様に
      • 外部の顧客に渡す場合とか
  • Future Proof??
  • Data is not never perfect
  • Glue catalog redshift テーブルってなんだ???
  • S3 Metastore 以外は代替手段が存在する。この2つだけは置き換えられない。
  • Atlassian の事例
    • Transformation as a Service = TaaS
    • Self-service schema
    • コンソールぽちぽちやったら簡単に datalake ができる、なんてことはないよ

ABD304-R - [REPEAT] Best Practices for Data Warehousing with Amazon Redshift & Redshift Spectrum

[REPEAT] Best Practices for Data Warehousing with Amazon Redshift & Redshift Spectrum
slide

  • 歴史
    • 昔は Postgres だった
    • そこに MPP OLAP の機能を加え、さらに IAM やらなんやらもひっくるめて Redshift になった
  • Sort key は4つまで
  • Slice — 各ノードに slice と呼ばれる番号がついていて、DISTKEY の設定に従って、各 slice にデータが振り分けられる。
  • DISTKEY
    • JOIN 性能
    • INSERT INTO 性能
    • GROUP BY 性能
  • DataType はなるべく大きいものを効率的に圧縮されるのでデータ量はそんな気にしなくて大丈夫
    • INT / BIGINT <  NUMERIC
    • VARCHAR
  • Backup
    • 5GB ごとにバックアップする、などが可能
  • Temp table 速いよ(データがレプリケーションされないから?)
  • UPSERT
    • Temp table COMPUPDATE OFF!
    • Temp table は本体テーブルと同じ DISTKEY を。INSERT パフォーマンスが上がる
  • Superuser queue
    • Cancel superuser queue
  • QMR
    • リソース食う処理はひとまずログに残してみるのがいいかも
  • タイムアウト管理は WLM やり QML
  • データのミラーリングのため少なくとも2ノード
  • すくなくとも空き容量 20% は確保
  • Spectrum のスペックはクラスタサイズに依存
    • 1つの Slice で扱える spectrum node の数が決まってる?

KeyNote #2

省略

Analytics JAM

Analytics に関する問題をゲーム形式で解いていく。

チームにスーパーマンがいたので時間内に全問クリアすることができました。

内容はハンズオンに近いものがありました。普段使わないサービスも幅広く触れたのは面白かったです。

ビッグデータに関する問題は1問しかなく、ほとんどが機械学習とIoTに関するものでした。

MCL345 - NEW LAUNCH! Integrating Amazon SageMaker into your Enterprise

  • DataCollection / DataIntegration / Data Preparation Cleaning は引き続き EMR Redshift の仕事??
  • Principle Component Analysis Matrix Factorization などのアルゴリズムも提供しているので、単純な分析環境としても有用そう
  • 内部で Docker をいろいろ使ってるのが面白い
    • 学習環境を提供するのに Docker コンテナを使ってる
    • 全体のフローの一部の挙動を変えたい時に、プラグインを差し込む代わりに、Docker container を渡せるようにしてあるのかな
    • 面倒なところ全部抽象化しつつ、柔軟性も
  • Model artifacts = 学習済みのモデル
  • Inference docker image = 新しいデータを学習済みのモデルのどうやって当てるかを定義した Docker image ?
  • デプロイすると inference API が出来上がる
    • Kinesis のデータを lambda 経由で inference API に投げることも可能

ABD323-R - [REPEAT] Extending Analytics Beyond the Data Warehouse

  • 1430TB — Hive 1000 nodes 5 year -> spectrum 155 seconds
  • Push computation down to spectrum layer
    • Redshift の下にレイヤーがあるイメージなのか
  • Spectrum stateless
  • Spectrum 層のノード同士は通信できない
  • JOIN は基本的には push down されないが、JOIN 対象が十分小さければ push down される
  • Map-reduce のレイヤが spectrum によってもう1段増える
  • Spectrum の方が redshift より早い???
  • Late binding view
  • Order by push down されない
  • データをちょっと覗くには athena が便利、ダッシュボードやBIツールから見るには Spectrum
  • Spectrum 自体にクラスタサイズは関係ないが、spectrum から上がってきたデータを裁くためにクラスタが必要
  • 小さいテーブルが S3 にあっても、JOIN はプッシュダウンされる
    • Hive metastore statistics も管理する必要がある
  • Glacier ??
  • udf push down されない

DeepLens HandsOn

https://github.com/aws-samples/reinvent-2017-deeplens-workshop

これはホットドッグですか?

ABD330-R - [REPEAT] Combining Batch and Stream Processing to Get the Best of Both Worlds

[REPEAT] Combining Batch and Stream Processing to Get the Best of Both Worlds
slide

  • Serverless でやるか EMR を使うかは choice
    • Athena or EMR
    • Kinesis or EMR (Spark Streaming)
  • Kafka は直接サポートはしていない
  • Data plane and controls plane
  • 一般的な Lambda architecture は正確性と速度の両方を保証するものだったけど、それは Kinesis + Lambda を使うことので解消できる。これは kappa architecture の実装になる
  • Kinesis analysis