Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWSでのビッグデータ分析

19,614 views

Published on

2015/08/01

Published in: Technology
  • Be the first to comment

AWSでのビッグデータ分析

  1. 1. AWSでのビッグデータ分析 TokyoWebmining #48 Ryosuke Iwanaga, Amazon Data Services Japan
  2. 2. 2 アジェンダ • AWS 概要 • AWS ビッグデータ概要 • AWS ビッグデータ事例紹介 • AWS ビッグデータサービス紹介 • まとめ
  3. 3. 3 自己紹介 • Ryosuke Iwanaga (岩永 亮介) – a.k.a @riywo • Amazon Data Services Japan • Solutions Architect – Startup, Gaming – Big Data / Deployment / Container • Before Amazon – Software Engineer / Ops Engineer / DBA / etc.
  4. 4. 4 Solutions Architect at ADSJ • AWSの日本での利用 促進を行う – AWSに関する技術支 援(無料) – セミナー、ハンズオン 等登壇 – ブログ等での情報発信 • Black beltやってます 毎週水曜18:00〜 Black belt Webinar配信中! #awsblackbelt 「AWS セミナー」で検索
  5. 5. 5 We are hiring!! http://aws.amazon.com/jp/careers/
  6. 6. Amazon Web Services 概要
  7. 7. 7 クラウドとは? • 初期投資不要 • 使った分だけ従量課金 • 瞬時にリソース確保、解放 • リリースまでの時間を速く • 本来のビジネスに集中できる
  8. 8. 8 クラウドとは?: 初期投資不要/従量課金 • ハードウェア等を事前 にサイジングして購入 しなくていい • 使った分だけ従量課金 • 例えるなら「電気」 – 今や誰も発電機は持って ない – 使った分だけ電気代を 払っている
  9. 9. 9 クラウドとは?: 瞬時にリソース確保、解放 • 使いたいと思った時に リソースをすぐ確保で きる – クラウド側が大量のリ ソースを持っている • 必要に合わせて柔軟に リソースを利用 • 使わなくなったらその 場で削除するだけ
  10. 10. 10 クラウドとは?: 素早くリリース、ビジネス価値向上 • いち早くリリースし て改善を続けられる – インフラ準備に何週間 もかけてられない • 面倒な管理をクラウ ドに任せ、本来のビ ジネスに集中する
  11. 11. 11 クラウドとは?: 改善と革新 • 改善: 今までもできたこ とを、より簡単に – よりビジネス価値を高め ることに集中 • 革新: 今までできなかっ たことを、可能に – クラウドだからこそ可能 になるビジネスへ
  12. 12. 12 Amazon Web Services
  13. 13. 13 世界中のデータセンタ群(リージョン) どのリージョンでも同じ使い勝手 同じやり方で日本から利用可能 11のリージョン 1. US EAST (Virginia) 2. US WEST (N. California) 3. US WEST 2 (Oregon) 4. EU WEST (Ireland) 5. JAPAN (Tokyo) 6. South America (Sao Paulo) 7. ASP 1 (Singapore) 8. ASP 2 (Sydney) 9. GovCloud 10.BJS 1 (Beijing China) limited preview 11.EU (Frankfurt) 28のアベイラビリティ・ゾーン(AZ) 50以上のエッジロケーション
  14. 14. 14 • Tokyoリージョンは2つのAZで構成 • 2つのAZを利用した冗長構成も簡単 各リージョンは複数のAZで構成される EU (Ireland) Availability Zone A Availability Zone C Availability Zone B Asia Pacific (Tokyo) Availability Zone A Availability Zone B US West (Oregon) Availability Zone A Availability Zone B US West(Northern California) Availability Zone A Availability Zone B Asia Pacific (Singapore) Availability Zone A Availability Zone B AWS GovCloud (US) Availability Zone A Availability Zone B South America (Sao Paulo) Availability Zone A Availability Zone B US East (Northern Virginia) Availability Zone D Availability Zone C Availability Zone B Availability Zone E Availability Zone A Asia Pacific (Sydney) Availability Zone A Availability Zone B EU (Frankfurt) Availability Zone A Availability Zone B *AZ=Availability Zoneの略 距離の離れたデータセンタ群
  15. 15. 15 AWS のイノベーションの速度 2014年には516のメジャーな新機能や新サービスがリリースされました 24 48 61 82 159 280 516 2008 2009 2010 2011 2012 2013 2014
  16. 16. 16 TECHNICAL & BUSINESS SUPPORT Account Management Support Professional Services Solutions Architects Training & Certification Security & Pricing Reports Partner Ecosystem AWS MARKETPLACE Backup Big Data & HPC Business Apps Databases Development Industry Solutions Security MANAGEMENT TOOLS Queuing Notifications Search Orchestration Email ENTERPRISE APPS Virtual Desktops Storage Gateway Sharing & Collaboration Email & Calendaring Directories HYBRID CLOUD MANAGEMENT Backups Deployment Direct Connect Identity Federation Integrated Management SECURITY & MANAGEMENT Virtual Private Networks Identity & Access Encryption Keys Configuration Monitoring Dedicated INFRASTRUCTURE SERVICES Regions Availability Zones Compute Storage O b j e c t s , B l o c k s , F i l e s Databases SQL, NoSQL, Caching CDNNetworking PLATFORM SERVICES APP Mobile & Web Front-end Functions Identity Data Store Real-time DEVELOPMENT Containers Source Code Build Tools Deploymen t DevOps MOBILE Sync Identity Push Notifications Mobile Analytics Mobile Backend ANALYTICS Data Warehousing Hadoop Streaming Data Pipelines Machine Learning
  17. 17. AWS ビッグデータ概要
  18. 18. 18 ビッグデータパイプライン Data Answers Collect Process Analyze Store
  19. 19. 19 Collect Process Analyze Store プリミティブなパターン Data Collection and Storage Data Processing Event Processing Data Analysis
  20. 20. 20 プリミティブなパターン S3 Kinesis DynamoDB AWS Lambda KCL Apps EMR EMR Redshift Machine Learning Collect Process Analyze Store Data Collection and Storage Data Processing Event Processing Data Analysis
  21. 21. 21 プリミティブなパターン S3 Kinesis DynamoDB Collect Process Analyze Store Data Collection and Storage Data Processing Event Processing Data Analysis
  22. 22. 22 データの収集 ファイル: media, log files (sets of records) ストリーム: records (eg: device stats) トランザクション: DBへのRead/Write
  23. 23. 23 データの収集 – AWSサービス S3 Kinesis DynamoDB
  24. 24. 24 プリミティブなパターン AWS Lambda KCL Apps EMR Collect Process Analyze Store Data Collection and Storage Data Processing Event Processing Data Analysis
  25. 25. 25 リアルタイムイベントプロセッシング • イベント・ドリブンなプログラミング • リアルタイムインプットをトリガに次のアクションへ 例: – デバイスログからハード故障をプロアクティブに検知 – 行動履歴から不正の発見 – パフォーマンスSLAのモニタリング – しきい値を下回った在庫の通知
  26. 26. イベント処理 - どの様に行うか S3 Event Notifications Kinesis stream DynamoDB Streams AWS LambdaKCL Apps EMR
  27. 27. イベント処理の利点 • リアルタイムイベントを作成/追加する – データ収集と分析の間に、アクションを追加する • アラートと通知、パフォーマンスやセキュリティ • 自動的なデータの高度化(eg: アグリゲーション) • アプリのモジュールを疎結合に – ストリームの構築と運用 – 機敏性を向上させる • MVP + 個別コンポーネントのイテレーション Collect | Store | Analyze Alert
  28. 28. 28 プリミティブなパターン EMR Redshift Machine Learning Collect Process Analyze Store Data Collection and Storage Data Processing Event Processing Data Analysis
  29. 29. 29 データプロセッシング/分析 • データに関する問題への回答 • 問題 – 分析: SQL/データウェアハウス – 分類: センチメント分析 – 予測: ページビュー予測 – など
  30. 30. AWS ビッグデータ事例紹介
  31. 31. 31 ※個別のAWSサービスの紹介は、後ほど! • まずは事例から、どういうことができる のかイメージを膨らませて下さい • 改善と革新をイメージして下さい – 今もやれていることがもっと簡単にならないか? – 今はできないことが、できるようにならないか?
  32. 32. 32 TempTracker AWSクラウドでの 蜂の巣箱のモニタリング
  33. 33. 33 温度センサー ボード “raspberry pi” マイクロサーバー 防水のボックス
  34. 34. 34 Python (boto) DynamoDBKinesis App Kinesis 収集 ダッシュボード Lambda イベント ソース SNS TempTracker: IoT センサーデータ収集例
  35. 35. 35 蜂の巣箱内の温度 蜂の巣箱外の温度
  36. 36. 36 ビッグデータ事例: あきんどスシロー
  37. 37. 37 あきんどスシロー • 回転寿司チェーンレストラン • センサーデータをKinesisに収集
  38. 38. 38 スシローにおけるデータフロー
  39. 39. 39 http://www.slideshare.net/AmazonWebServices/gam301-realtime-game-analytics-with-amazon-kinesis-amazon-redshift-and-amazon- dynamodb-aws-reinvent-2014
  40. 40. 40 Ad Clicks Downloads Perf Data Attribution Campaign Performance SC Balance HC Balance IAP Player Targeting 分析 @ GREE
  41. 41. 41 データ収集 Source of data • Mobile devices • Game servers • Ad networks Data size & growth • 500 G+/day • 500 M+ events/day • Size of event ~ 1 KB Analytics Data {"player_id":"323726381807586881","player_level":169,"device":"iPhone 5","version":"iOS 7.1.2”,"platfrom":"ios","client_build":"440”, "db":”mw_dw_ios","table":"player_login", "uuid":"1414566719-rsl3hvhu7o","time_created":"2014-10-29 00:11:59”}
  42. 42. 42 キーとなる要件 • 保証されたデータ転送 • データ欠損ゼロ • データ故障ゼロ • コンシューマの追加が簡単 • リアルタイムに近いデータのレイテンシ • リアルタイムなアドホック分析 • マネージドサービス
  43. 43. アーキテクチャ – シンプルに保存 S3 Amazon S3 Consumer Game DB Game Servers Kinesis Amazon Redshift Amazon Elastic MapReduce DSV JSON
  44. 44. DynamoDB – リアルタイム集計 Amazon DynamoDB DashboardConsumerKinesis
  45. 45. Spark – リアルタイム分析 Spark SQLSpark Streaming SQLKinesis
  46. 46. 最終的なアーキテクチャ
  47. 47. Amazon S3 Amazon S3 Spark SQL JDBC Server SQL Dashboard Amazon Redshift Consumer Amazon EMR Consumer Game DB Game Servers Kinesis DynamoDB DSV JSON
  48. 48. 48 http://www.slideshare.net/AmazonWebServices/adv402-beating-the-speed-of-light-with-your-infrastructure-in-aws-aws-reinvent-2014
  49. 49. いくつかの特徴的な要件 • 150TB/日を処理できること • 5ms以下のレスポンスタイム • 100万以上の世界中からのリクエスト/秒 • 1000億のアイテム
  50. 50. データ収集=バッチレイヤ Bidding=スピードレイヤ バッチ & スピードレイヤ Data Collection Data Storage Global Distribution Bid Storage Bidding
  51. 51. 51 Biddingデータ収集 データ収集 & Bidding
  52. 52. NASDAQ レガシーなデータウェアハウス • 高価 (毎年 $1.16M) • 限られた容量 (オンラインデータだと1年) • 毎取引日に40〜80億行が追加され保存されている: – Orders – Trades – Quotes – Market Data – Security Master – Membership DWはマーケットシェアの分析、 クライアントのアクティビティ、 監視、請求の仕組み、その他から 使われる
  53. 53. NASDAQ • 毎日55億件のレコードが Amazon Redshiftにロード される • クライアントサイド暗号化 がセキュリティ上の要件 • 時系列データ – HDFSは高 価になりすぎた – S3 + EMRが助けてくれる EMR & Redshift
  54. 54. 54 http://www.slideshare.net/smartnews/aws-summit-tokyo2015newsads
  55. 55. 55 http://www.slideshare.net/smartnews/aws-summit-tokyo2015newsads
  56. 56. 56 http://www.slideshare.net/smartnews/aws-summit-tokyo2015newsads
  57. 57. 57 http://www.slideshare.net/smartnews/aws-summit-tokyo2015newsads
  58. 58. 58 Presto-Amazon Kinesis connector by Qubole • KinesisのStreamに対 して直接PrestoのSQL を実行できる – QuboleというPresto as a Serviceなら簡単に設 定可能 • チェックポイントを 使ってリアルタイム検 出やダッシュボード等 http://aws.typepad.com/sajp/2015/07/presto-amazon-kinesis-connector-for-interactively-querying-streaming-data.html
  59. 59. 59 Scalable & Responsive Big Data Interface with AWS Lambda at FireEye http://blogs.aws.amazon.com/bigdata/post/Tx3KH6BEUL2SGVA/Building-Scalable-and-Responsive-Big-Data-Interfaces- with-AWS-Lambda • Lambda+S3で、 サーバを全く使わな い分析環境 – 脅威分析、異常検知等 • Web UIへのクエリを 複数のLambda functionを非同期に 呼び出して処理
  60. 60. AWS ビッグデータサービス紹介
  61. 61. 61 プリミティブなパターン S3 Kinesis DynamoDB Collect Process Analyze Store Data Collection and Storage Data Processing Event Processing Data Analysis
  62. 62. 62 Amazon Simple Storage Service
  63. 63. Amazon S3 • Amazon S3はオブジェクトを保存(“ファイル”的な) • オブジェクトはバケットに保存される • バケットは1つのAWSリージョンの中で、複数のAZに 渡って複製してデータを保持する – クロスリージョンの複製も、最近リリースされました! • 高い耐久性、高い可用性、高いスケーラビリティ • 安全 • 99.999999999%の耐久性を持つ設計
  64. 64. なぜAmazon S3がビッグデータに向くのか? • コンピュートとストレージを分離できる • オブジェクトの数に制限はない • オブジェクトのサイズは最大5TB • 非常に高い帯域 • バージョンのサポートやライフサイクルポリシー • Amazon Glacierとの連携 – Amazon Glacier: アーカイブ用のストレージサービス
  65. 65. Amazon S3 イベント通知 通知を、Amazon SNS, Amazon SQS, AWS Lambdaに 配信することができる S3 Events SNS topic SQS queue Lambda function Notifications Foo() { … }
  66. 66. サーバサイド暗号化の選択肢 • SSE with Amazon S3 managed keys – チェックボックスをチェックするだけで、データは安心して暗号化 • SSE with customer provided keys – ご自身で暗号化鍵を管理して、PUTやGETの時に適応する • SSE with AWS Key Management Service – AWS KMSが中央管理し、権限管理や利用の監査ができる
  67. 67. バージョン • パフォーマンス劣化無しに、意図せぬ上書きや削除から 守る • アップロード毎に、常に新しいバージョンを生成 • 削除されたオブジェクトの取り出しや過去のバージョン へのロールバックが簡単にできる • Amazon S3 バケットには3つの状態がある – デフォルト – バージョン無し – バージョン有効化 – バージョン無効化
  68. 68. ライフサイクルポリシー • 自動で異なるストレージクラス・コスト管理への、自動 的な遷移方法を提供 • 2つの可能なアクション: – 移行: 特定の期間が過ぎたらAmazon Glacierへアーカイブする – 失効: 特定の期間が過ぎたらオブジェクトを削除する • アクションは組み合わせも可能 – アーカイブしてから 削除 • プレフィックスを使ってライフサイクルを管理できる
  69. 69. 69 Amazon Kinesis
  70. 70. Amazon Kinesis ストリーミングデータの取込、そして処理のための マネージドサービス 何百万ものソース が、何百TB/時間の データを生成 認証 認可 AZAZAZ 3つのAWSアベイラビリティゾーンに渡る、 耐久性があり一貫性のあるレプリカ リージョン 低価格 万 ペイロードユニット毎に 東京リージョン 集約し に アーカイブする リアルタイム ダッシュボードと アラーム 機械学習 アルゴリズム や での 集計分析 複数の読み取りを サポートし、順序のついた イベントストリーム
  71. 71. 71 Amazon Kinesis構成内容 Data Sources App.4 [Machine Learning] App.1 [Aggregate & De-Duplicate] Data Sources Data Sources Data Sources App.2 [Metric Extraction] S3 DynamoDB Redshift App.3 [Real-time Dashboard] Data Sources Availability Zone Shard 1 Shard 2 Shard N Availability Zone Availability Zone Kinesis AWSEndpoint • 用途単位でStreamを作成、Streamは1つ以上のShardで構成される • Shardは、データ入力側 1MB/sec, 1000 TPS、データ処理側 2 MB/sec, 5TPSのキャパシティを持つ • 入力するデータをData Recordと呼び、入力されたData Recordは、24 時間かつ複数のAZに保管される • Shardの増加減によってスケールの制御が可能 Stream
  72. 72. データ入力 & ストリーム処理 HTTP Post AWS SDK LOG4J Flume Fluentd Get* APIs Kinesis Client Library + Connector Library Apache Storm Amazon Elastic MapReduce データ入力 データ処理 AWS Mobile SDK Apache Spark Streaming
  73. 73. 73 Data Recordに設定されたパーティションキーを基にShard に分配 データ入力イメージ Stream Shard-0 Shard-1 Data Record Data Record Data Record DataRecordの中身 データブロブ (Max 1M) パーティ ションキー (Max 256B)
  74. 74. 74 シーケンス番号 • KinesisがStream内でユニークなシーケンス番号を付与 • データもシーケンス番号も不変 • シーケンス番号でデータが何回でも取得できる(24時間以内) • 何度取得してもシーケンス番号の順番はかわらない SeqNo (14) SeqNo (17) SeqNo (25) SeqNo (26) SeqNo (32) Stream
  75. 75. 75 Amazon Kinesisと、、、初音ミク? http://www.slideshare.net/shimy_net/kinesi s-32355276
  76. 76. 76 Amazon DynamoDB
  77. 77. Amazon DynamoDB • マネージドなNoSQLのデータベースサービス • ドキュメントとキーバリューの両方のデータモデル をサポート • 高いスケーラビリティ – テーブルサイズやスルー プットに上限がない • 一貫性と数ミリ秒のレイテンシを、どんなスケール でも実現 • 高い可用性 – 3つ以上のレプリケーション • 単純かつ強力なAPI
  78. 78. 78 DynamoDBのテーブル テーブル アイテム 属性 ハッシュ キー レンジ キー 必須 キーバリューのアクセスパターン データの分散を規定する オプション 1:Nの関連をモデル化 リッチなクエリを実行可能にする • 1つのハッシュキーの全 てのアイテム • ==, <, >, >=, <= • "で始まる" • "の間にある" • ソートされた結果 • 個数 • 上位/下位N個 • ページングレスポンス
  79. 79. 79 • テーブルへの更新のス トリーム • 非同期 • 確実に1回だけ • 必ず順序が守られる – アイテム毎に • 高い耐久性 • テーブルと共にスケール • 24時間の生存時間 • 1秒以下のレイテンシ DynamoDB Streams
  80. 80. 80 Emerging Architecture Pattern
  81. 81. 81 プリミティブなパターン AWS Lambda KCL Apps EMR (後述) Collect Process Analyze Store Data Collection and Storage Data Processing Event Processing Data Analysis
  82. 82. 主な処理パターン2つ • ストリーム処理 (リアルタイム) – データストリームのイベントに対してリアルタイムで反応 – 比較的シンプルなデータ計算 (集約、フィルタ、スライディング ウィンドウ) • マイクロバッチ (準リアルタイム) – データストリームのイベントの小さいバッチに対する準リアルタイ ムな処理 – 分析のための標準的な処理やクエリエンジン
  83. 83. 83 AWS Lambda
  84. 84. クラウド上でのイベント駆動なコンピュート • Lambda functions: ステートレスでリクエスト 駆動なコード実行 – 他のサービスでのイベントからトリガーされる • Amazon S3バケットにPUTされた • Amazon DynamoDBテーブルに書き込まれた • Amazon Kinesisストリームのレコード – これらを簡単にしてくれる • データがクラウドに来たらすぐに変換する • データ駆動な監査、分析、そして通知を実行する • キックされるワークフロー
  85. 85. 85 インフラの管理が不要 • ビジネスロジックにフォーカス できる • コードをアップロードするだけ で、あとはAWS Lambdaが以 下をハンドリング – キャパシティ – スケール – デプロイ – 耐障害性 – モニタリング – ロギング – セキュリティパッチの適用
  86. 86. 86 オートスケール • イベントのレートに合うように Lambdaが自動でスケール • プロビジョニング中や完了を気にす る必要なし • コードが稼働した分だけのお支払い
  87. 87. 87 Bring your own code • Node.jsまたはJavaで書かれたコー ドを実行 • コード内では以下も可能 – スレッド/プロセスの生成 – バッチスクリプトや他の実行ファイルの実行 – /tmpのread/write • 各種ライブラリも利用可能 – ネイティブライブラリも可能 – 利用するライブラリを一緒にアップロード
  88. 88. 88 多彩なイベント呼び出し • Pull型 – Amazon Kinesis – Amazon DynamoDB Streams • Push型 – Amazon S3 Event Notification – Amazon SNS – Invoke API(同期、非同期)
  89. 89. 89 細やかな料金体系 • 100ミリ秒単位でのコンピュー ト時間に対する価格設定 • リクエストに対する低額の課金 • 十分な無料枠
  90. 90. 90 データトリガー: Amazon S3 Amazon S3 バケットイベント AWS Lambda オリジナル画像 サムネイル画像 1 2 3
  91. 91. 91 データトリガー: Amazon DynamoDB AWS LambdaAmazon DynamoDB Table and Stream Amazon SNSで 通知を送信 他のテーブルを 更新
  92. 92. 92 Amazon Kinesis Client Library
  93. 93. Kinesis Client Library (KCL) Client library for fault-tolerant, at least-once, Continuous Processing • Shardと同じ数のWorker • Workerを均等にロードバランシング • 障害感知と新しいWorkerの立ち上げ • Shardの数に応じてworkerが動作する • ShardのSplitやMergeにも追従 • AutoScalingでエラスティック • チェックポインティングとAt least once処理 これらの煩雑な処理を意識することなく ビジネスロジックに集中することができる。
  94. 94. 94 Kinesis Client Libraryの動き Stream Shard-0 Shard-1 Kinesis アプリケーション (KCL) ワーカー シーケンス番号 Instance A 12345 Instance B 98765 Data Record (12345) Data Record (24680) Data Record (98765) DynamoDB Instance A Kinesis アプリケーション (KCL) Instance B 1. Kinesis Client LibraryがShardからData Recordを取得 2. 設定された間隔でシーケンス番号をそのワーカーのIDをキーにした DynamoDBのテーブルに格納 (*)実際のKey, Attribute名は異なります。
  95. 95. 95 プリミティブなパターン EMR Redshift Machine Learning Collect Process Analyze Store Data Collection and Storage Data Processing Event Processing Data Analysis
  96. 96. 96 Amazon Elastic MapReduce
  97. 97. 97 Task Node Task Instance Group Amazon EMRのアーキテクチャ Master Node Master Instance Group Amazon S3 Core Node Core Instance Group HDFS HDFS HDFS HDFS Task Node Task Instance Group スレーブ群を 管理 HDFS アクセス AWSサービス アクセス
  98. 98. 98 EMRFS: Amazon S3をHDFSの様に扱う • 計算資源とストレージを隔離できる • クラスタのシャットダウンが可能 – クラスタを消してもデータをロストしない • 複数クラスタ間でデータ共有が簡単 – クラスタのバージョンアップ検証が並行できる EMR EMR Amazon S3
  99. 99. 99 Amazon EMRならではの使い方 • 必要な時だけクラスタ起動 – 時間課金なので、消せばお 金はかからない – 処理が終わったら自動で消 える設定も可能 • データは全てAmazon S3に 置く – クラスタを消してもデータ は消えない – データを貯める段階なら EMRすら不要 t
  100. 100. 100 参考: スポットリクエストと課金 単価 時間 1h 1h <1h スポット価格 入札額 課金額 ②入札額>スポット価格 となったので インスタンス起動 ④入札額<スポット価格 となったので インスタンス終了 ⑥入札額>スポット価格 となったので インスタンス起動 ①リクエスト 投入 ⑤強制終了時の1時間 未満の利用分は非課金 ③1時間 単位の課金
  101. 101. 101 Spot Instanceの活用例 Task Instance GroupCore Instance Group 予測されたコストでSLAを満たす 低コストでSLAを上回る On-demandを Core Nodeに利用 SLAを満たすだけの キャパシティをOn- demand価格で確保 Spot Instanceを Task Nodeに利用 On-demandの最大 90%引き程度の価格 で追加のキャパシ ティを確保
  102. 102. 102 Hive, Spark on Amazon EMR • Applicationサポート – クラスタ起動時に指定 – すぐに利用可能 • Metastore – デフォルトではMaster 上のMySQLに保存 – hive-site.xmlを設定し て任意のMySQLも利用 可能 $ aws emr create-cluster … --applications Name=Hive Name=Spark …
  103. 103. 103 CREATE TABLE call_data_records ( start_time bigint, end_time bigint, … ) ROW FORMAT DELIMITED FIELDS TERMINATED BY "," STORED BY 'com.amazon.emr.kinesis.hive.KinesisStorageHandler' TBLPROPERTIES("kinesis.stream.name"=”MyTestStream") ; Amazon EMRでの連携: Hive + Amazon Kinesis
  104. 104. 104 Amazon Kinesis Streamsを処理する Amazon Kinesis Amazon EMR with Spark Streaming
  105. 105. 105 Amazon KinesisとSpark Streamingの連携 http://spark.apache.org/docs/latest/streaming-kinesis-integration.html
  106. 106. • 離散化されたStreams(Dstreams)と呼ばれる、 高レベルの抽象表現 • 弾力的な分散データセット(RDD)のシーケンスと して表現される DStream RDD@T1 RDD@T2 Messages Receiver Spark Streaming – 基本コンセプト http://spark.apache.org/docs/latest/streaming-kinesis-integration.html
  107. 107. Apache Spark Streaming • ウィンドウベースの変換 – countByWindow, countByValueAndWindow etc. • スケーラビリティ – 分割された入力stream – それぞれのレシーバは別々のワーカ上で動くことができる • 耐障害性 – StreamingのためのWrite Ahead Log (WAL) – ステートフルで、確実に一度だけ
  108. 108. 108 Amazon EMR Release 4.0.0 • Apache Bigtopベースの新しいパッケージング – より高速なリリースサイクル – Release 4.0.0(7/24リリース)のアプリケーションバージョン • Hadoop 2.6.0, Hive 1.0, Spark 1.4.1など • アプリケーションの設定カスタマイズが簡単 – 設定値を渡すと、設定ファイルを変更してくれる • Spark on YARNのDynamic Allocationが簡単 – 面倒なJAR配置や設定が済んでいる
  109. 109. 109 Amazon Redshift
  110. 110. 110 Amazon Redshift の概要 • Data Warehouse as a Service – 分析用に整理された大量の統合 業務データの管理サービス(フルマネージドサービス) • 拡張性:数百GB〜数PBまで拡張可能 • 高速:カラムナ型、超並列演算(MPP) • 低額:インスタンスの従量課金(初期費用、ライセンス費用不要)
  111. 111. 111 ノード・タイプ DS1 - Dense Storage(旧:DW1) vCPU ECU Memory(GB) Storage I/O Price / hour ds1.xlarge 2 4.4 15 2TB HDD 0.30GB/s $1.190 ds1.8xlarge 16 35 120 16TB HDD 2.40GB/s $9.520 DC1 - Dense Compute(旧:DW2) dc1.large 2 7 15 0.16TB SSD 0.20GB/s $0.314 dc1.8xlarge 32 104 244 2.56TB SSD 3.70GB/s $6.095 DS2 – Dense Storage ds2.xlarge 4 14 31 2TB 0.50GB/s $1.190 ds2.8xlarge 36 116 244 16TB 4.00GB/s $9.520
  112. 112. 112 拡張性 シングルノード クラスター 2 – 32ノード クラスター 2 – 100ノード dc1.large or ds2.xlarge dc1.8xlarge or ds2.8xlarge
  113. 113. 113 アーキテクチャ BIツール リーダー ノード コン ピュート ノード コン ピュート ノード コン ピュート ノード JDBC/ODBC 10GigE Mesh SQL エンドポイント: • クエリーの並列化 • 結果を生成 クエリー実行ノード • “N” スケールアウト を実現 • ローカルディスク S3, DynamoDB, EMRとの統合 • リーダーノードを経由して クエリーを実行 • 各コンピュートノードで演算 が並列実行 • 各コンピュートノードに ローカルストレージを保持 • データは、S3、DynamoDB、 EMRから直接コンピュート ノードへ並列ロード
  114. 114. 114 アーキテクチャ:MPP(超並列演算) SELECT * FROM lineitem; コンパイル・ コードの生成 と配信 CPU CPU CPU CPU CPU CPU
  115. 115. 115 アーキテクチャ:クエリーの並列実行 SELECT * FROM lineitem; CPU CPU CPU CPU CPU CPU SELECT * FROM part; クエリー 最大同時実行数:50
  116. 116. 116 アーキテクチャ:カラムナ型 • DWH にはカラムナ型のデータベースが用いられる。 orderid name price 1 Book 100 2 Pen 50 … n Eraser 70 orderid name price 1 Book 100 2 Pen 50 … n Eraser 70 行型 – トランザクション処理向き カラムナ型 – 分析処理向き
  117. 117. 117 Amazon Machine Learning
  118. 118. 118 Amazon Machine Learning 使いやすく、マネージド。開発者の ために作られた機械学習サービス
  119. 119. 119 Machine Learning as a Service Amazonが提供するアルゴリズム – 利用者は自分でアルゴリズムの実装や詳細な チューニングを行う必要がない パッケージサービスとしての提供 – 必要なワークフローが予め提供されている スケーラビリティ – 利用者はシステムの拡張やその運用について も考える必要がない
  120. 120. 120 4つのステップ 1. 教師用/評価用データを準備 2. モデルを作成(学習、トレーニング) 3. モデルの品質評価 4. 実際の予測の実施
  121. 121. 121 1.教師用/評価用データを準備 Data Sourceの作成 S3、 Amazon Redshift、 RDS上の MySQLに格納されたデータを指定し、教 師データ/評価用データとして利用する デフォルトの設定を使うと、自動的に7 割を教師データ(T)、3割を評価用データ (E)に分割して管理してくれる s3://SOURCEDATA T E S3、Redshift、RDS が利用可能
  122. 122. 122 2.教師データからモデルを作成 二項分類 ロジスティック回帰 多クラス分類 多項式ロジスティック回帰 回帰分析 線形回帰 教師データを元にAmazon Machine Learningが自動的に モデルを選択してくれる。例 えば予測対象のカラムが二値 型であれば二項分類が自動的 に選択される。
  123. 123. 123 3. モデルの品質評価 作成したモデルに対して評価 (評価用のデータを流してみて 予測の精度を測ること)を実施 する。 精度に満足できない場合、教師 データのETLや量を精査し、ト レーニングと品質評価を繰り返 す。
  124. 124. 124 4.実際の予測の実施 バッチ予測 S3(S3、Redshift、RDS)等 にアップロードされた予測対 象データに対してまとめて予 測を実施 リアルタイム予測 データ1件ずつAPIを使って 予測を実施する Model ml = Aws::MachineLearning::Client.new record = { attr_A: ‘foo’, attr_B: ‘bar’,... } result = ml.predict( ml_model_id: MODELID, record: record, predict_endpoint: ENDPOIND ) 予測対象 データ S3バケット 結果 データ S3バケット 予測対象 データ 予測対象 データ
  125. 125. 125 http://qiita.com/horike37/items/cd9995e986249d011a7b
  126. 126. 126 http://qiita.com/horike37/items/cd9995e986249d011a7b
  127. 127. 127 http://qiita.com/horike37/items/cd9995e986249d011a7b
  128. 128. 128 http://qiita.com/horike37/items/cd9995e986249d011a7b
  129. 129. 129 http://qiita.com/horike37/items/cd9995e986249d011a7b
  130. 130. まとめ
  131. 131. 131 プリミティブなパターン S3 Kinesis DynamoDB AWS Lambda KCL Apps EMR EMR Redshift Machine Learning Collect Process Analyze Store Data Collection and Storage Data Processing Event Processing Data Analysis
  132. 132. 132 「AWSでビッグデータ」の特徴 • データのinからoutまで、豊富なサービス群 – サービス間の連携も強力、高速なアップデート • どんな規模でもスケールできるクラウドが、今 すぐ使い始められる • 豊富な活用事例 • Solutions ArchitectやAWS Support等、手厚い 支援体制
  133. 133. 133 「AWSでビッグデータ」はじめましょう! • お気軽にご相談くださいませ!

×