見出し画像

AWS Summit 2019 Day2 感想

昨日のDay1が刺激的すぎたので、思い切ってDay2も参加してきた。
実もDay2のセッションも前もって予約済みで、「初日だけいけば満足するだろう」と思ってたらそんな事なかった。

これはDay2も絶対に行くべきだ!」と強く思ったので突撃してきた。

Day2のセッションは IoT , 機械学習 をテーマに選んだ。
あと追加で AppSync/Amplify , AWSのユーザー認証 のセッションも興味あったので見てきた。
ここからセッション中のメモを張っていく。

セッション1 IoT/ML Deep Dive on AWS

Amazon SageMaker
データサイエンティストや開発者が用意に機械学習モデルを開発・学習・活用するためのマネージドサービス
良いモデルを簡単につくれるし、APIでも使える

Amazon SageMaker Neo
エッジデバイスで動かせる
TensorflowやPytouchなどのモデルをEC2インスタンスやGreejgrasデバイス上で高速に動作するように変換するサービス
従来のDeep Lerningフレムワークが500MB01GB程度だが、Amazon SageMaker Neo Runtimeは1MB

Amazon SageMaker Neo Grand Truth
データにラベルを付与するるアノテーションを支援
テンプレートが用意されており、自作も可能
画像のラベル、ラベルと位置、ピクセル単位のラベル、文章のラベル

AWS IoT Greengrass
AWS IoTの各種機能をエッジデバイスに入れられる

AWS IoT Analytics
時系列データを解析、BI、機械学習できる
Readyな状態にできる
データをクレンジングしておける

AWS IoT Analytics Continuous Analysis
Jupyter Notebookによる分析をコンテナ化して定期的に実行できる

AMアゾンKinesis Video Streams
動画をIoTデバイスから簡単にアップロード→解析用にインデックス化して保存しておく→画像にパースして解析にも使える

シナリオ別デザインパターン
時系列データをエッジ or クラウドで推論パターンがある

エッジで推論
高頻度のあデータをリアルタイムに推論する場合につかう
Sage Maker + Greengrass ML Inference
データはIoT Analyticsにデータをアップしておく
データが集まったらSageMakerで機械学習する→モデルができる
Greengrassでクラウドにデプロイする


時系列でクラウドで推論

長期のデータから推論して今後のアクションをきめたい、複数拠点のデータを束ねて推論する場合につかう
IoT Analytics Continuous Analysisで行う

時系列データ解析のモデル作成
AWS IoT Analytics Sample Template
AWSが機械学習モデルのテンプレを用意してあるので、自社データに合わせて使える

画像データをエッジで推論
コストやネットワークの問題があるパターン向け、エッジ(現場のCameraなど)で推論して結果をクラウドに送る
SageMaker + Greengrass ML Inference

AWS DeepLensを使えば、SageMakerモデルを簡単に利用できる
最近、日本でも使えるようになった!

画像データをクラウドで推論
主に動画を解析や、画像を詳細に分類に使う
Kinesis Video Streams + SageMaker

Amazon SageMaker Built-in algorithm
既にサンプルの画像モデルが用意されてる

IoT Analysis ではSQLコマンドを使う(Athenaでも使う)

IoT Analysisのデモ
jupyter notebookでPytohnコードでデモ
1日分のデータをとってきて、IoT Analysisをコンテナ化
コンテナを自動で定期的に動作させて結果を色々な形にexportできる
(なんだか分からないけどすごい)

セッション2 Serverless/AppSync によるモバイル開発のいま

送れてセッションに参加
ブースでMLのデモみてたらセッション開始時間すぎてた

Gunosyの活用事例
グノシースポーツ(スポーツ特価版)を出した
特定のチームをフォローして、リアルタイムで通知がくる
AppSyncとは、フルマネージドGrpathQLサービスが作れる
PubSubでリアルタイム更新

準備するもの
データソース
GrpathQLスキーマ定義ファイル
マッピングテンプレート

AppSyncの良い点
リアルタイム更新が簡単に構築できる
サーバーサイドもアプリサイドも楽に構築
クライアントはAppSyncSDKを追加するだけ
新規プロダクトの開発時に便利
AppSyncはスキームファースト、schemeを作らないと開発できないため
CloudFormationを使えばschemeをgit管理できる
画面によってRestAPIを作る必要がない

サーバーサイドでキャッシュできないので、DynamoDBのキャパシティに注意

ほぼ GrpathQL いいぞ、という内容

AWSの人にチェンジ

デモ

Amplify でアプリを作っていくらしい
Macのターミナルが表示された
ReactAppで サンプルを作成、Hello Worldが表示されるシンプルなアプリ
ターミナルから ampifyコマンドでreactアプリを作っている
(amplifyコマンドでFW選択時にionicやvueも選べるのが見えた)
$ amplify add api > graphql を選んだ
vscoceが起動してでgraphqlサンプルスキーマが自動で表示された
$ amplify status で状態表示
vscodeでworkspaceを開いて、reactコードをライブコーディングしていく
jsでimport amplifyしてサインイン/サインアウト追加、ボタンでamplifyのログインコンポーネントをすぐに作れる。
emailを入力してAuth認証を一瞬でつくれた、(これはすごい)

AppSync画面を表示してデモ
さっき作ったamplifyアプリのgraphqlのスキーマが表示されてる

amplifyのvscode画面をみると
importで自動生成されたqueryとsubscriptionを読み込んでいる
amplifyコマンドで自動で作成されてるらしい
これを読み込むと、簡単にgraphqlクエリとリアルタイム更新の通知コードを実装できた

コミュニティ
amplifyはオープンソース
githubにamplifyの5つのリポジトリがある

セッション3 【初級】AWSでのデータ収集、分析、そして機械学習

■データ活用の流れとデータレイク
データに基づいて意思決定をするために、現在を理解し、過去を蓄積して未来を予測する
ECサイトの例、人がやってる売上などの予測を機械学習にやらせる

・十分な質と量のデータ
・データ分析や機械学習を行う仕組み
・評価指標とそれを計測する仕組み

ビジネス課題からスタートする、のが重要
データ活用が役立つことを確かめるのも重要

データはできるだけ早く集め始めたほうがよい、データを捨てることは時間を捨てること
汎用的にデータを蓄積する、やりたいことは後からかわるため

データレイクをデータ勝つようの基盤とする
データレイクにはそのままの形式でデータを保存する
S3がデータレイクに最適
・任意のファイル形式で保存
・容量上限なし
・低コスト
・APIにより連携できる(重要)
S3にためておけば他サービスと連携できる

何からやるべきか?
データ活用は常にビジネス課題からスタート
まず1本のデータ活用フローを作ってみる
ログ→S3→BIツール可視化→意思決定と評価→最初にもどる

データ活用フロー設計ポイント
・適切なツールを適切な対象に適用
・マネージドサービスでつくる
・サーバーレスで作る

■最初のデータ活用フローの構築
データ活用側から考える、誰がどのように?
分析基盤
・Athena
・Redshift
・EMR
Athenaはコストが低いし、SQLつかえる

分析ツール
・QuickSight(非エンジニアが参照する場合)
・Elasticsearch Service(データアナリストが活用する場合)
・SageMacker(Pythonで分析したい場合)

QuickSight
ブラウザのみで全機能が利用可能
SCVやS3データを取り込んで、ブラウザでBIを利用するだけ
データ量が増えたらAthenaをS3との間に挟む

目指すデータ勝つよから必要なデータ収集を考える
あとから増やせないので、可能な限り細かくデータをとる

必要であればデータ変換(ETL)を行う
・JSON/XMLをParquest構造化に変換
ETLもサーバーレスが基本方針
小規模ならLambda
中規模ならAWS Glue Python Shell
大規模ならAWS Glue Spark Job

■機械学習の活用
機械学習も、常にビジネス課題からスタート → 機械学習で解けそうな問題を理解する
注力する領域を決める
機械学習のすべてを自社で行う必要があるとは限らない
アルゴリズム・モデルの公開化が進んでいる

QuickSight ML Insights
専門家不要で使えるインサイト機能を提供
・機械学習ベースの異常検知
・機械学習ベースの予測
・自動ナラティブ(わかりやすい文章で分析結果を提供)

機械学習サービスのスタック
AIサービス、機械学習の深いスキルなしに、機械学習を使える

Amazon Rekognition
Deep Lerningによる画像認識サービス

Amazon Personalize
機械学習の経験が不要なレコメンデーションサービス(でたばっかり)

Amazon SageMacker
自分でモデルを開発するためのサービス
機械学習のワークフロー全体をカバーするマネージドサービス
データをS3中心に扱う

学習されたモデルを利用
Amazon Rekognition

■まとめ
1.常にビジネス課題からスタート(データを集めるのが目的ではない)
2.データレイクはデータ活用の基盤(S3に蓄積する)
3.目的と使う人に合ったツールを選択

最初のステップとして
まずはデータを見えるようにすることから始めよう
(とりあえずS3にデータを保存しておくってことか)

AWSを活用したユーザー認証パターン

本セッショではBotBやBtoCでのエンドユーザー認証の話
EC2やAuroraのアクセスの認証ではない

従来型(HTMLベース)のWebアプリ
・HTMLで認証
モダンなAPIベースのWebアプリ
・APIコールで認証、SPAなどで使う
・AWSのCredentialsが必要
クラウドベンダー提供のアプリ
・実装はベンダー依存、APIなど?

ユーザー認証の関心事
・強固な認証
・ユーザビリティ
・ガバナンス・コンプライアンス
・構築/運用
これらを実装する場合、人的コストがかかる(技術のある人を集めたり)
AWSを使えばコスト軽減できる!

本セッションのスライドは後日公開される

複数のAWSアカウント、AWSシングルサインオンを使う
VPCのユーザーのIDパスなど、AWS Drectory Service
Webアプリなど、Amazon Cognito(自分はこれを知りたい)

SSOの特攻
・他要素認証
・パスワードポリシー
・Active Directory対応
・CloudTrail対応
・プログラミング不要

Amazon Cognitoの特徴
・他要素認証
・パスワードポリシー
・AWS Credentialsを発行できる
・ソーシャル連携
・外部IDプロバイダ連携
・CloudTrail対応
・プログラミング不要

ユーザープールとIDプール
ユーザープールはユーザー認証
IDプールはID認証

A.従来型(HTMLベース)のWebアプリ
認証サービスの活用
Amazon Cognitoの活用
ユーザー→ALB→Cognito→ID/パスを外部認証→Cognito
カスタム実装
やっぱりCognitoを使う

B.モダンなAPIベースのWebアプリ
APIをAPI Gatewayで提供している場合
Cognito、IAM、Lambdaの方法がある
ユーザーがIDパスを入力したらユーザープールからtokenが返ってくる

AWSのCredentialsを使う
ユーザープール+IDプールで認証する
IDプールによるAWS Credentials発行は、事前にIAMロールの割当ルールを設定しておく

実装方法は?
AWS Amplifyを使えば容易に実現できる

C.クラウドベンダー提供のアプリ
ベンダーについては興味なし


感想
自分の事前勉強不足であまり理解できてない
ユーザー認証はとても興味あるし、副業で実装する予定なので、後で勉強しよ

ブースで見つけた面白いモノ

AWSブースのML/IoTコーナーにデモ装置があった。
オモチャの船に寿司のレプリカが載っており、レールの上を走っている。
「寿司ネタの乱れをカメラで撮影して、機械学習でリアルタイム検知する」
という装置らしい。すごい!

モニタにはMLの結果がリアルタイムに映されていた。
正常なら青の枠、異常なら赤枠で寿司が検知されて映ってる。

SageMakerを使ってるらしい。
良い寿司の画像モデルを作成してあり、学習データは50枚ほど。
50枚でもかなり少ない方らしい

すごいなー、こういうの自分でも作ってみたい。
セッションでSageMakerの説明を聞いた後だったので、見ていて面白かった。

感想

面白かったのは
IoT/ML Deep Dive on AWS
AppSync/Amplify
の2セッションがすごく良かった。

IoT/ML は機械学習の知識がなさすぎる自分だが、興味と好奇心だけで楽しめた。
自分でもラズパイで何かIoT的な物をつくってみたい。

AppSync/Amplify は素晴らしかったし、衝撃だった。
GraphQLがあんなに簡単に構築できるなんて・・・
簡単に言うと、GoogleのFirebase RealTime DB に GraphQL がプラスされたようなモノかな。
個人アプリで試してみたい。

オマケ Day2の360度 写真

Galaxy Gear 360で撮影してきた。

https://momento360.com/e/u/3feb0f17928c4eb0828161e1f9a8538f?utm_campaign=embed&utm_source=other&utm_medium=other&heading=0&pitch=0&field-of-view=75


この記事が気に入ったらサポートをしてみませんか?