1 © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アマゾン ウェブ サービス ジャパン ソリューションアーキテクト 下佐粉 昭 2016年6月3日
クラウド上に効率的な
ビッグデータ処理基盤を構築するには?
~データ特性に応じたシステム設計~2
でAWS Summitに参加しよう!
公式アカウント
@awscloud_jp
をフォローしたお客様にフリクションボールペン
をプレゼント!3 コ レ ク タ ー Kinesis Producer ストリーム データ StreamKinesis Lambda Kinesis Consumer AWS IoT IoT Device
本セッションの範囲
ビッグデータ処理基盤:2つの領域 • 一旦ディスクに保存(着地)してからの処理 • バッチ、マイクロバッチ • Hadoop, Data Warehouse ..• リアルタイム処理
• ストリーミング処理
本セッション で扱う内容
4
ビッグデータ処理基盤 on クラウド:変わらないこと
• データを収集して、分析し、可視化 • 分析では、標準的な技術・OSSや商用ソフトウェアを活用 • AWSのマネージドサービスを活用することでより便利に 収集 分析 可視化 データを収集 大規模データ を高速に分析 人間が参照し やすい形に5
クラウド+ビッグデータ:3つのポイント
#1. 全てを叶える万能ツールは存在しない #2. データは加工せず全期間を残す
#3. スケールアウトで解決する
6
#1. 全てを叶える万能ツールは存在しない
例)自由検索&レポート • レスポンス:数秒~数分 • データサイズ:直近13ヶ月(ホットデータ) • 技術:高速RDB、BIツール 例)長期的なビジネストレンド分析 • レスポンス:数十分~数時間 • データサイズ:全期間データ(10年間) • 技術:スループット重視、Hadoop ONE SIZE DOES NOT FIT ALLphoto credit; marissa anderson
7
必要な技術を必要なところへ配置する
基準:サイズ、レイテンシー、アクセス頻度、コスト … 物理構築の負荷から開放され、何をどう使うかにフォーカス 収集 分析 可視化 自由検索 分析 可視化 全期間分析8 これまで: 1. ディスクが高価で上限がある 2. データはサマリーだけ、もし くは期間限定で保存 3. 処理できる内容は固定的
#2. データは加工せず全期間を残す
On クラウド: 1. 安価・上限無しのストレージ 2. オリジナルデータを全て残す 3. 処理対象・処理内容はビジネ スに合わせて変わる インフラ管理者の仕事: データを活用して新しい課題に素 早く対応できるインフラを用意す る。個別リクエストへの対応 インフラ管理者の仕事: ストレージを溢れさせず、時 間内に処理が終るようにサイ ズや処理内容を調整する9
データレイク
• 多様なデータを一元的に保存 • データを失わない • サイズ制限からの開放 • 決められた方法(API)です ぐにアクセスできる →システム全体のハブ センター データ RDBMS 非構造化ファイルテキストファイル データレイク API呼び出しによる連携10 • 適切な技術を選択する (#1) • データを消さずにデータレイクに集め、分析につなげる(#2)
大規模データ分析に必要な基盤
収集 データレイク (保存) 分析 可視化 データを収集 し、データレ イクへ格納 全期間保存。 共通APIでア クセス ニーズ #1 分析 可視化 ニーズ #2 API11
#3. スケールアウトで解決する
スケールアップもスケールアウトもク ラウドでは容易 …しかしスケールアップには限界があ る(CPU、メモリ) スケールアウト可能なテクノロジー =規模の増加に耐えうる設計 S XL スケールアップ スケールアウト12
スケールアウト ≠ 高価
クラウドではスケールアウトがコスト・時間の両面で効率的 • 必要な時に必要なだけノードを追加できる • ノードを増やしても利用時間が短くなればコストは同じ 処理時間 8時間 処理時間 2時間 JOB 16ノードに 拡張 JOB 4ノード×8時間 =32 16ノード×2時間=3213 • 適切な分析技術を選択する (#1) • データをデータレイクに集め、多様な分析につなげる(#2) • 分析はスケールアウト可能なインフラの上で(#3)
大規模データ分析 on クラウド(ここまでのまとめ)
収集 データレイク (保存) 分析 可視化 データを収 集し、デー タレイクへ 格納 全期間保存。 共通APIでア クセス 可視化 スケールアウト 可能な技術 分析 スケールアウト 可能な技術 API14
15
EC2があれば何でも出来るけど…
マネージドサービスで管理負荷を低減可能 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運用設計 スケールアウト設計 ミドルウェア導入 OS導入 アプリケーション作成 オンプレミス 独自構築 on EC2 AWSマネージドサービス お客様がご担当する作業 AWSが提供するマネージド機能 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運用設計 スケールアウト設計 ミドルウェア導入 OS導入 アプリケーション作成 電源・ネットワーク ラッキング HWメンテナンス OSパッチ ミドルウェアパッチ 定形運用設計 スケールアウト設計 ミドルウェア導入 OS導入 アプリケーション作成16 分析 保存 Amazon Glacier Amazon S3 Amazon DynamoDB Amazon RDS/ Aurora
AWSマネージドサービス:ビッグデータ
AWS Data Pipeline Amazon CloudSearch AmazonEMR Amazon EC2
Amazon Redshift Amazon Machine Learning AWS IoT AWS Direct Connect 収集 Amazon Kinesis Amazon Kinesis Firehose Amazon Elasticsearch Amazon Kinesis Analytics Amazon QuickSight AWS DMS (近日公開) (近日公開) Snowball 可視化 Amazon EC2
17
例)オンプレミスのデータをAWSで分析する
• データ・ソースがオンプレミスのDC内に複数 • 多種多様なシステムからEXPORTしたデータをAWSへ転送(定期的) • 10年間以上のデータを保存して分析できるようにしたい(例:数100TB~) • 多くの利用者は直近1年間のデータしか分析しない(例:数10TB) 収集 データ レイク 分析 可視化 EXP?
?
?
?
18
経路と帯域
経路によって帯域・安定 性が異なる • インターネット経由 • Direct Connect(専用線) • Import/Export Snowball 帯域を活かすには、並列 化が有効 オンプレミスDC orders1.csv 1,pencil,100,15-06-01 2,eraser,50,15-06-02 … ・・・ ordersN.csv 30,pen,150,15-06-28 31,book,50,15-06-29 … • 差分・圧縮 • 並列転送 DX (専用線) インターネット VPN OR プロトコルの選択19
データ転送方法の検討ポイント
• 送信データを小さくする • 圧縮、差分 • 帯域を使い切れていない場合は、並列化が最重要 • 転送先がS3の場合、aws s3コマンドを使うと、自動的に分 割して転送される • 帯域の安定性が問題の場合はプロトコルを専用のものに • 高速ファイル転送に最適化されたプロトコルやツールが開発 されている。商用ソフトウエアや、Tsunami UDP(OSS)等 • http://tsunami-udp.sourceforge.net/ • 1ファイル当たりの転送においてscp等より速度が出やすい20 Amazon S3 データ 分析 Elastic MapReduceRedshift データ バックアップ EC2 RDS Storage Gateway EBS Redshift コンテンツ 配信 CloudFront データ アクセスGW Storage Gateway コンテンツ トランスコード Elastic Transcoder データ アーカイブ Glacier データ 交換 Data Pipeline
AWSのデータレイク=Amazon S3
21
S3によるデータレイク実現のメリット
• 上限無し:サイジング不要 • 高い耐久性:99.999999999% • 安価な費用: • $0.033/GB/月*(スタンダード) • $0.019/GB/月*(標準-低頻度アクセス) 例)10TBの保存で約2.1万円/月** • APIアクセス • 多様な言語にライブラリを提供 • AWS各種サービスと連携 データレイク Amazon EMR (Hadoop) AmazonRedshift Amazon API Gateway Amazon S3 センターデータ 非構造化ファイル テキストファイル RDBMS * 費用は2016年6月時点での東京リージョンでの価格です ** 1USドル = 110円での試算 Machine Learning
22 ElastiCache インメモリDB RDS RDB DynamoDBNoSQL Amazon S3 汎用ファイル データレイク Amazon Glacier 長期保存
階層化による格納
(#1. 全てを叶える万能ツールは存在しない) ホットデータ: • 応答速度重視 • 限定範囲のデータ コールドデータ: • 容量当たりの単価重視 • 膨大なデータ23 Amazon Redshift • マネージドRDBMS • SQL(標準) • スケールアウト可能
スケールアウト可能な分析サービス
Amazon Elastic MapReduce (EMR)
• マネージドHadoop
• Hadoop/Spark(標準) • スケールアウト可能
OR
24
Amazon Redshift
特徴 • データサイズ:最大2PBまで拡張可能 • 超並列(MPP)、カラムナ型DBエンジンに よる高速SQL処理 • スケールアウト可能。最大128台 • PostgreSQLとの互換性 • 使った分だけの利用料金。従来のデータ ウェアハウスの1/10のコストで実現 フルマネージドのデータウェアハウスサービス 10Gb Ether JDBC/ODBC Redshift 大規模分散処理 で分析SQLを高 速実行25
SQLを分散処理(スケールアウト)
SELECT * FROM …
SQLをコンピュート ノードへ配信
CPU CPU CPU CPU CPU CPU
リーダーノード コンピュートノード 分散して SQLを処理 ノードに直結した高 速ストレージ
26
フルマネージド型のRDBMS
運用管理に必要な機能をビルトイン • S3からの高速ロード&アンロード • 自動バックアップ&リストア • モニタリング • データの再編成 • クエリの解析 :27
Amazon Elastic MapReduce(EMR)
大規模データ処理をHadoop/Sparkなどの 分散処理フレームワークを使って効率的に処理 AWS上の分散処理サービス • 簡単かつ安全にBig Dataを処理 • 多数のアプリケーションサポート 簡単スタート • 数クリックでセットアップ完了 • 分散処理アプリも簡単セットアップ 低コスト • ハードウェアへの投資不要 • 従量課金制 • 処理の完了後、クラスタ削除 • Spotインスタンスの活用 Hadoop 分散処理アプリ 分散処理基盤 Amazon EMRクラスタ 簡単に複製 リサイズも1クリック Spotも利用可能
28
EMRFS: S3をHDFSの様に扱う
“s3://” と指定するだけでHDFSと同様にS3にアクセス • 計算資源とストレージを分離できる • コスト面でもメリット大 • クラスタのシャットダウンが可能 • クラスタを消してもデータをロストしない • 複数クラスタ間でデータ共有が簡単 • データの高い耐久性(S3) EMR EMR Amazon S329
EMRで稼動するSQLエンジン
SQLエンジン 操作アプリ ストレージ YARN MapReduce Tez Spark
Hive SparkSQL Presto JDBC / ODBC H iv e M etast or e HDFS EMRFS Hue Zeppelin SELECT…
30
データ分析プラットフォーム比較
Amazon Redshift Amazon EMR
分類 大規模データ処理に特化したマネー ジドRDBMS Hadoop/Spark等分散処理フレームワークのマネージド環境 処理系 SQL(PostgreSQLと互換性) アプリケーションに依存:Hive、Pig … Presto等でSQLでの分析も可能 スケールアウト 可能 可能 ストレージの種類 高速なローカルストレージ HDFS、もしくはEMRFSでS3上のデータ を取り込まずにアクセス ノードとストレージの 分離 ノードとストレージは同時に増加・ 削減 ストレージに影響を与えずにノード増減 が可能(EMRFSの場合) 最大処理サイズ 2PB(圧縮後) 上限無し(EMRFSの場合)
処理レイテンシー Low • Presto (Low)
• Hive (Midium~High)
運用管理 運用管理に必要な機能がビルトイン 分散処理系+OSSアプリ環境を容易に 分析ツール、ETL等 JDBC/ODBC+プッシュバック対応
31
Amazon Redshift
• SQL処理に特化・高速
• ローカルディスク上で処理
分析サービスの選択例
Amazon Elastic MapReduce (EMR) • 自由にアプリケーションを選択 • EMRFSでS3データにアクセス S3に直接アクセスできるEMRFSを 使い、データレイク上の全期間の データ分析に活用 頻繁にアクセスされるホットデー タを格納し、高速なSQLアクセス 機能を活用して分析
32
分析に必要なプリプロセスをどこで実行するか?
AWSに転送前のオンプレミス環境で実施 • スケールアウトが困難 • データレイクをオンプレミス側に用意する必要がある S3上のファイルをElastic MapReduceで変換 • スケールアウト可能なインフラで処理 • 言語・アプリを柔軟に選択可能 • データレイクを含むAWSサービスへの接続性 Redshift内でSQLで変換 • スケールアウト可能 • Redshift内に取り込んだデータのみ操作可能33
EMR:プリプロセス処理に向く高い接続性
例)Spark on EMRとAWSサービスとの連携 Amazon EMR Amazon S3 (データレイク) DynamoDB Amazon RDS Amazon Kinesis Amazon Redshift Elastic Search Service EMRFS Streaming Data Connector Copy from HDFS EMR-DynamoDB Connector JDBC(SparkSQL) Elastic Search Connector34
例)プリプロセスの構成例
Amazon Redshift Amazon EMR • 非構造化データの構造化・整形 • 構造化データのフィルタリング • S3へ変形済データを出力 サマリー テーブル ファクト テーブル マート・サマ リー表の更新を SQLで実行 Amazon S3 全データ 変形済データ35
可視化部分は用途に応じて選択可能
EC2+BIツール • 多彩なパートナーソリューショ ン・OSSをEC2上で活用 Amazon QuickSight [プレビュー] • 専門家不要のBIサービス • AWS内外のデータソースにアクセス36 分析 分析 データレイク
選択の例:全体図
• データをAWSへ転送、S3で収集&保存、データレイクとする • ホットデータ(直近データ)分析環境としてRedshift • 全期間データ分析環境としてEMR 収集 可視化 Presto /EMR Redshift QuickSight EXP Amazon S3 BI+EC2 Direct Connect プリプロセス EMR 全データ 変形済37
事例で見るビッグデータ処理
on AWS
38
事例:Nasdaq様 Redshift/EMRを使い分け
• Redshift:300TB分の直近データ
• EMR+Presto+S3:全期間データ 共通のSQLでアクセス
39
事例:Finra様 750億イベント/日の処理基盤
• S3をデータ共有サービスとして定義し、EMRやRedshiftからアクセス
40
Finra様:DWHアプライアンスとHive/Tez+S3比較
• S3に置いたままのデータをHive/Tez on EMRでアクセス • DWHアプライアンスとの比較で十分な速度を実現
41
事例:スマートニュース様
マネージド・サービスを中心とした技術選択
42
スマートニュース様(Batch~Serving~Output部分)
• S3に入った生データをEMRでETL処理 • レポート:データはRDS→BIツール
43 App Server ア プ リ ケ ー シ ョ ン Web Server トランザク ショナル・ データ ロ ギ ン グ デ バ イ ス コ レ ク タ ー Android iOS Kinesis Producer ファイル データ ストリーム データ S3 RDS Dynamo DB Amazon Redshift Kinesis Stream Lambda Pig Hive Kinesis Consumer A m azo n Ela st ic M apR educe AWS IoT 収集 分析 可視化 Quick Sight IoT Device 保存 EC2 分析SW
44
まとめ:変化を織り込んだビッグデータ処理基盤
#1. 全てを叶える万能ツールは存在しない
• 適切な技術は変わっていく#2. データはオリジナルを残す
• 活用方法は将来的に変わる#3. スケールアウトで解決する
• 対象データはビジネスによって変わる45
AWS Black Belt Online Seminarのご案内
AWSJ の Tech メンバーがAWSに関する様々な事を日本語で紹 介・解説する無料のオンラインセミナーAWSについてもっと勉強したい方にオススメ!
46
47
ノード単体障害への対応
• ノード単体の障害への対応はサー ビスの機能で対応可能 • Redshift:ノード障害の発見、新 ノードでの復帰がビルトイン • EMR:Hadoopの仕組みの中での ジョブリトライ リスタート 大量のリソース48 AZ #2
システム全体の可用性はマルチAZで担保する
• どこまで可用性が必要なの か要検討 • システム全体の可用性はマ ルチAZで担保するのが基本 • S3は自動的に3箇所以上の DCにデータをコピー AZ #149
EMR+マルチAZ環境
EMRFSでS3にデータを維 持しているため、別AZで処 理の引き継ぎが可能 ジョブごとに別のAZにクラ スターを起動することも可 能 AZ #2 AZ #1 S3 EMRFS50
Redshift+マルチAZ環境
案)2つのRedshiftクラスター ①:1年分データ HDDでバイト単位のコスト重視 ②:超ホットデータ(1ヶ月) SSDで速度重視、サイズを小さく メリット ②を小さく、コスト最適化 メンテナンスウィンドウを別に設定 最悪でも直近データにアクセス可能 その間にリカバリ AZ #2 AZ #1 S3 HDD 1ヶ月分の データ 1年間分の データ ① ②51 本資料では2016年6月3日時点のサービス内容および価格についてご説明しています。最 新の情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価 格に相違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。
内容についての注意点
AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
価格は税抜表記となっています。日本居住者のお客様が各サービスを使用する場合、別途 消費税をご請求させていただきます。