TC-03 テクノロジートラック AWSビッグデータソリューション Amazon Redshift, Amazon EMR, Amazon DynamoDBご紹介 Yuta Imai Solutions Architect Amazon Data Services Japan ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Thank You! ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. フィードバックをお寄せ下さい 本イベントについてツイートされる際は、 ハッシュタグをご利利⽤用ください。 #AWSRoadshow お帰りになる前には、アンケートへのご協⼒力力をお願いします。 引換⽤用の記念念品をご⽤用意しています。 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ⾃自⼰己紹介 • 名前 今井 雄太 (いまい ゆうた) • 所属 アマゾンデータサービスジャパン ソリューションアーキテクト • 仕事 広告業界、ゲーム業界のお客様を担当 50ms or dieなWebサービスの技術全般 4 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. アジェンダ 1. AWSのサービス全体像と ビッグデータ関連サービス 2. 解剖ビッグデータ 3. Getting Started with Big Data Services – – – Amazon Redshift Amazon Elastic MapReduce Amazon DynamoDB 4. Practical Deep Dive ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. アジェンダ 1. AWSのサービス全体像と ビッグデータ関連サービス 2. 解剖ビッグデータ 3. Getting Started with Big Data Services – – – Amazon Redshift Amazon Elastic MapReduce Amazon DynamoDB 4. Practical Deep Dive ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWSサービスの全体像 Ecosystem Management & Administration Technology Partner / Consulting Partner CloudWatch CloudTrail IAM データ分析 Kinesis Management Console コンテンツ配信 EMR Data Pipeline Region 7 AZ CLI S3 Virtual Private Cloud Glacier BeanStalk CloudFormation OpsWorks アプリケーションサービス SNS SWF SES ストレージ Elastic Auto Scaling WorkSpaces Load Balancing ネットワーク SQS CloudFront コンピュート処理理 EC2 SDK ⾃自動化とデプロイメント EBS Storage Gateway Elastic Transcoder CloudSearch データベース RDS Direct Connect AWSグローバルインフラ Regions / Availability Zones / Contents Delivery POPS ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. DynamoDB ElastiCache Redshift Rout53 Big Data services on AWS DynamoDB NoSQL Hadoop Elastic Redshift DWH MapReduce Interface Workflow Management Kinesis S3 Storage 8 Data Pipeline Glacier RDS ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. RDB AWSビッグデータサービス群 Amazon Simple Storage Service(S3) • 容量量制限がなく、利利⽤用分だけの⽀支払い で利利⽤用できるストレージ • データの耐久性は99.999999999% • 静的HTTPサーバーとしても利利⽤用可 Amazon Glacier(Glacier) • S3と同等のデータ耐久性 • S3の1/3の価格で利利⽤用可能なストレージ • データの取り出しリクエストからアクセ ス可能になるまで約4時間かかる ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWSビッグデータサービス群 Amazon DynamoDB(DynamoDB) • NoSQL as a Service • ストレージ容量量の制限なし • 必要なスループットをプロビジョンして利利⽤用 Amazon Redshift(Redshift) • マネージドData Ware House • EC2やRDSと同じように使った分だけの課⾦金金 • スケールアウト/インも容易易 Amazon RDS(RDS) • マネージドRelational Database • PostgreSQL,MySQL,Oracle,SQL Serverか ©2014, Amazonらエンジンを選択可能 Web Services, Inc. or its affiliates. All rights reserved. AWSビッグデータサービス群 Amazon Elastic MapReduce(EMR) • マネージドHadoop • HDFSとシームレスにS3を扱える Amazon Kinesis(Kinesis) • Stream Computingのためのサービス • ストリーミングMapReduceのようなこと を容易易に可能にしてくれる ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWSビッグデータサービス群 AWS Data Pipeline(Data Pipeline) • データの移動やETLのバッチ処理理/ パイプライン処理理のためのオーケ ストレーションサービス ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Big Data services on AWS DynamoDB NoSQL Hadoop Elastic Redshift DWH MapReduce Interface Workflow Management Kinesis S3 Storage 13 Data Pipeline Glacier RDS ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. RDB Big Data services on AWS DynamoDB NoSQL Hadoop Elastic Redshift DWH MapReduce Interface Workflow Management Kinesis S3 Storage 14 Data Pipeline Glacier RDS ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. RDB Big Data services on AWS DynamoDB NoSQL Hadoop Elastic Redshift MapReduce DWH Interface 本⽇日はこれらのサービスの役割や使い分け、 組み合わせ⽅方をメインに取り上げていきます。 Workflow Kinesis Management S3 Data Pipeline Storage RDS RDB Glacier 15 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. アジェンダ 1. AWSのサービス全体像と ビッグデータ関連サービス 2. 解剖ビッグデータ 3. Getting Started with Big Data Services – – – Amazon Redshift Amazon Elastic MapReduce Amazon DynamoDB 4. Practical Deep Dive ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. データ活⽤用の4つのステップ 1. あつめる – 多数のアプリケーションサーバーやクライアント、デバイスからの データ収集 2. ためる – 安全でコスト効率率率よく、かつ利利⽤用しやすい形でデータを保存 3. 処理理する – 抽出、除外、整形、いわゆる前処理理 – ⼀一次集計もここに含まれる 4. つかう – BIツールで利利⽤用 – データをAPIで提供 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. データ活⽤用のステップで⾒見見る EMR ETL Kinesis Web app DynamoDB S3 Analytics Data Redshift Data Pipeline Sum EMR 18 あつめる©2014, 処理する ためる Glacier RDS Amazon Web Services, Inc. or its affiliates. All rights reserved. Dashboard つかう 例例:バッチ処理理によるアクセスログ集計 USER PATH TIMESTAMP -‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒-‐‑‒ USER1 /login 2014-‐‑‒02-‐‑‒26 00:00:01 USER2 /home 2014-‐‑‒02-‐‑‒26 01:13:31 1.1.1.1, /login, 20140226000101, … 192.168…, /home, 20140226011226, … 1.1.1.2, /home, 20140226011331, … Webサーバー S3 ログ(オリジナル) EMR S3 処理理済みデータ Redshift ETL済みデータ BIツールなど ログ集約サーバー ETL 1.1.1.1, /login, 20140226000101, … 192.168…, /home, 20140226011226, … 1.1.1.2, /home, 20140226011331, … 19 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 例例:収集したデータの活⽤用 –DMP-‐‑‒ USER1, 20140226000101, … USER2, 20140226011226, … USER1, 20140226011331, … EMR Webサーバー S3 処理理済みデータ Redshift ETL済みデータ S3 レポートツール ログ(オリジナル) ログ集約サーバー データ提供API EMR ユーザーごとにログを集計して興味分野を 分析する 20 S3 処理理済みデータ DynamoDB ETL済みデータ USER1: { Interest: [ ʻ‘Carʼ’, ʻ‘Homeʼ’ ], ... } USER2: { Interest: [ ʻ‘Dogʼ’, ʻ‘Catʼ’ ], … } ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. データ活⽤用の4つのステップ 1. あつめる – 多数のアプリケーションサーバーやクライアント、デバイスからの データ収集 2. ためる – 安全でコスト効率率率よく、かつ利利⽤用しやすい形でデータを保存 3. 処理理する – 抽出、除外、整形、いわゆる前処理理 – ⼀一次集計もここに含まれる 4. つかう – BIツールで利利⽤用 – データをAPIで提供 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. アジェンダ 1. AWSのサービス全体像と ビッグデータ関連サービス 2. 解剖ビッグデータ: あつめる、ためる、つかう 3. Getting Started with Big Data Services – Amazon DynamoDB、Amazon Elastic MapReduce、 Amazon Redshift 4. Practical Deep Dive – 現場で⾒見見かけるアーキテクチャ ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Redshift ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Redshiftのアーキテクチャ • MPP(超並列列演算) – CPU、Disk・Network I/Oの並列列化 – 論論理理的なリソースの括り「ノードスライス」 • データの格納 – 列列指向(カラムナ) – 圧縮 • データの通信 – コンピュート・ノード間の通信 – 各コンピュート・ノードからリーダー・ノードへの通信 – 他のAWSサービスとの通信 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Redshift概要 BIツール • リーダーノードを経由して クエリーを実⾏行行 • インターフェイスはPostgreSQL互 換(psqlで使えます) • 各コンピュートノードで演算が並列列 実⾏行行 • 各コンピュートノードにローカルス トレージを保持 JDBC/ODBC リーダー ノード SQL エンドポイント: • クエリーの並列列化 • 結果を⽣生成 10GigE Mesh コン ピュー トノー ド コン ピュー トノー ド コン ピュー トノー ド クエリー実⾏行行ノー ド • “N” スケールア ウトを実現 • ローカルディス ク S3, DynamoDB, EMRとの統合 25 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. アーキテクチャ:列列指向 • ⾏行行指向(RDBMS) • 列列指向(Redshift) orderid name price orderid name price 1 Book 100 1 Book 100 2 Pen 50 2 Pen 50 … n Eraser … 70 n Eraser ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 70 Amazon Redshiftのノードタイプ " dw1.xlarge: • • • • • CPU: 2 virtual cores ECU: 4.4 Memory: 15 GiB Storage: 2TB(HDD) Network: 0.3GB/s " dw1.8xlarge • • • • • 27 • CPU: 16 virtual cores ECU: 35 Memory: 120 GiB Storage: 16TB(SSD) Network: 2.4GB/s dw2.large: – – – – – • CPU: 2 virtual cores ECU: 7 Memory: 15 GiB Storage: 160GB(SSD) Network: 0.2GB/s dw2.8xlarge – – – – – CPU: 32 virtual cores ECU: 104 Memory: 244 GiB Storage: 2.56TB(SSD) Network: 3.7GB/s ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Redshiftの拡張性 dw1.8xarge & dw2.8xlarge dw1.xlarge & dw2.large クラスター 2 – 100ノード シングルノード 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L 8X L XL クラスター 2 – 32ノード XL 28 XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL XL ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon S3からCSVファイルをロードしてみる • まずはRedshiftにログイン psql -d mydb –h YOUR_REDSHIFT_ENDPOINT -p 5439 -U awsuser -W! ! • Redshiftのシェルでcopyコマンド COPY customer FROM 's3://data/customer.tbl.’ CREDENTIALS ’aws_access_key_id=KEY;aws_secret_access_key= SEC’ DELIMITER ‘,’ GZIP TIME_FORMAT ‘auto’;! 29 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Redshiftにログインしてデータロードしてク エリを掛けてみる • Redshiftのシェルでテーブルを定義 CREATE TABLE nginx (! remote_addr char(15),! time timestamp,! request varchar(255),! status integer,! bytes bigint,! ua varchar! );! 30 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. あとはいつものSQL SELECT ua, request, COUNT(*) ! FROM nginx! GROUP BY ua, request;! 31 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3へデータを書き出すのも簡単 UNLOAD TO ‘s3://YOUR_BUCKET/PATH/! SELECT * FROM nginx;! 32 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Redshiftとは・・・ • • • • • ⼤大量量のデータを⾼高速にSQLで処理理してくれる RDBと違いデータ量量が増えても性能が劣劣化しにくい ただし、あくまでOLAP⽤用データベースである データはETLや正規化されている必要がある 集計や統計など、数値の可視化に有効 レポートツール等,データ可視化に最適 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Redshiftについてより深く知りたい⽅方は・・ • Amazon Redshiftパフォーマンス・チューニン グ – 資料料: http://media.amazonwebservices.com/jp/ summit2014/TA-‐‑‒08.pdf – 動画: https://www.youtube.com/watch? v=_̲x4o1vNWbAA ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Elastic MapReduce ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Elastic MapReduce ユーザーは普通のHadoopとして 利用できる • AWSが提供するマネージドHadoop • Hadoop1系、2系、MapRが利利⽤用可能 • マネージド? • クラスタの構築・監視・復復旧 • CloudWatchによるモニタリング • S3のデータを扱える • 2つの⼤大きな特徴 • ワークフローマネジメント • S3、DynamoDBのデータを扱える 36 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Hadoop Hadoop ワークフローマネージメント:スクリプトでHadoopを起動 aws emr create-cluster \! --name bigdata-handson \! --ami-version 3.2.1 \! --applications Name=Hive \! --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m1.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m1.large \! --log-uri s3:/PATH/TO/LOG/ \! --ec2-attributes SubnetId=subnet-a06474e6,KeyName=YOUR_KEY! 37 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ワークフローマネージメント:スクリプトでHadoopを起動 aws emr create-cluster \! --name bigdata-handson \! --ami-version 3.2.1 \! --applications Name=Hive \! --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m1.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m1.large \! --log-uri s3:/PATH/TO/LOG/ \! --ec2-attributes SubnetId=subnet-a06474e6,KeyName=YOUR_KEY! 名前をつける 38 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ワークフローマネージメント:スクリプトでHadoopを起動 aws emr create-cluster \! --name bigdata-handson \! --ami-version 3.2.1 \! --applications Name=Hive \! --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m1.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m1.large \! --log-uri s3:/PATH/TO/LOG/ \! --ec2-attributes SubnetId=subnet-a06474e6,KeyName=YOUR_KEY! AMI(Hadoop)のバージョンを指定する 39 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ワークフローマネージメント:スクリプトでHadoopを起動 aws emr create-cluster \! --name bigdata-handson \! --ami-version 3.2.1 \! --applications Name=Hive \! --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m1.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m1.large \! --log-uri s3:/PATH/TO/LOG/ \! --ec2-attributes SubnetId=subnet-a06474e6,KeyName=YOUR_KEY! インストールするアプリケーションを指定 40 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ワークフローマネージメント:スクリプトでHadoopを起動 aws emr create-cluster \! --name bigdata-handson \! --ami-version 3.2.1 \! --applications Name=Hive \! --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m1.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m1.large \! --log-uri s3:/PATH/TO/LOG/ \! --ec2-attributes SubnetId=subnet-a06474e6,KeyName=YOUR_KEY! インスタンスタイプを指定 41 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ワークフローマネージメント:スクリプトでHadoopを起動 aws emr create-cluster \! --name bigdata-handson \! --ami-version 3.2.1 \! --applications Name=Hive \! --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m1.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m1.large \! --log-uri s3:/PATH/TO/LOG/ \! --ec2-attributes SubnetId=subnet-a06474e6,KeyName=YOUR_KEY! ログの吐き出し先を指定 42 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ワークフローマネージメント:スクリプトでHadoopを起動 aws emr create-cluster \! --name bigdata-handson \! --ami-version 3.2.1 \! --applications Name=Hive \! --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m1.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m1.large \! --log-uri s3:/PATH/TO/LOG/ \! --ec2-attributes SubnetId=subnet-a06474e6,KeyName=YOUR_KEY! VPCなどの情報を指定 43 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. さらに ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 仕事を予め定義して起動し、終わったら⾃自動削除 aws emr create-cluster \! --name bigdata-handson \! --ami-version 3.2.1 \! --applications Name=Hive \! --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m1.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m1.large \! --log-uri s3:/PATH/TO/LOG/ \! --ec2-attributes SubnetId=subnet-a06474e6,KeyName=YOUR_KEY! --steps Type=HIVE,Name='Hive program’, Args=[-f,s3://PATH/TO/ QUERY.q] \! --auto-terminate! 45 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. cronやData Pipelineでワークフローを制御す ればHadoopのジョブを⾃自動化できる! ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3、DynamoDBとの連携 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3のデータを扱える • HDFSとシームレスにS3上のデータを扱える • INPUTやOUTPUTにs3://〜~を指定する • S3からデータを取り出して結果を更更にS3に吐き出す hadoop jar YOUR_JAR.jar \! --src s3://YOUR_BUCKET/logs/ \! --dest s3://YOUR_BUCKET/output/! • S3からデータを取り出して結果はローカルのHDFSに吐き出す hadoop jar YOUR_JAR.jar \! --src s3://YOUR_BUCKET/logs/ \! --desct hdfs:///output/ ! 48 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. もちろんHiveでも CREATE EXTERNAL TABLE s3_as_external_table(! "user_id INT,! "movie_id INT,! "rating INT,! "unixtime STRING )! ROW FORMAT DELIMITED FIELDS ! TERMINATED BY '\t'! STORED AS TEXTFILE! LOCATION 's3://mybucket/tables/';! 49 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Hiveを使ったETL INSERT INTO TABLE table2! SELECT! column1,! ←例例えばtable1から column2,! column3,4を除外したい column5,! FROM table1;! ! 50 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 同じようにDynamoDBのテーブルもマウントできるの で・・・ CREATE EXTERNAL TABLE dynamodb_as_external_table(! "user_id INT,! "movie_id INT,! "rating INT,! "unixtime STRING )! STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' ! TBLPROPERTIES (! "dynamodb.table.name" = ”your_table",! "dynamodb.column.mapping" = ! ”user_id:UserID,movie_id:MovieId,rating:Rating,unixtime:UnixTime”! );! 51 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 同じようにDynamoDBのテーブルもマウントできるの で・・・ • DynamoDBのデータをS3にバックアップしたり INSERT OVERWRITE TABLE! "s3_as_external_table! SELECT * ! FROM dynamodb_as_external_table;! • DynamoDBのデータをHiveでMapReduceしたりできる SELECT COUNT(*) ! FROM dynamodb_as_external_table;! 52 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. EMR ちょっとDeep Dive 〜~RedshiftとEMRどちらを使う?〜~ ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. EMRのジョブ分布 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Redshift • • • • • • 基本的な使い勝⼿手はRDB SQLを使って解析 BIツールのバックエンドとして ある程度度正規化されたデータが前提条件 複雑なジョインも得意 クラスタは基本的には起動しっぱなし ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Elastic MapReduce • Hadoop • map reduce, hive, pig, streamingなどのHadoopの エコシステムが利利⽤用できる • hiveでSQLっぽく使うこともできるがRedshiftのほう が速いし簡単(ただし、TRANSFORMやUDF/UDAFな どの独⾃自のメリットはある) • 正規化しづらいデータを扱うのが得意 • ⽴立立ちあげっぱなしではなく、ジョブごとにクラスタを 起動して終了了した破棄する使い⽅方もできる ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. EMRかRedshiftか • SQLを使った分析/解析ならRedshiftのほ うが圧倒的に速い • それ以外ならEMR と う ⾔言 っくり ざ ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Elastic MapReduceとは・・・ • Hadoopを便便利利に利利⽤用できるようにしたサービスで ⼤大量量のテキストデータを整形するのが⾮非常に得意 • ワークフローをうまく活⽤用すれば処理理の⾃自動が⽤用意 • S3のデータを⾃自在に扱える ⽣生ログのETLや⼀一次集計に強みを持つ ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon DynamoDB ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. DynamoDBとは • NoSQL as a Service • データ量量が増えても性能が劣劣化しない • ⼤大規模なデータを⾼高速に扱いたいときに真の価値を発揮 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. DynamoDBの特⻑⾧長 • 管理理不不要で信頼性が⾼高い • プロビジョンドスループット • ストレージの容量量制限がない ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 特⻑⾧長1:管理理不不要で信頼性が⾼高い • SPOFの存在しない構成 • データは3箇所のAZに保存されるので信頼性が⾼高い • ストレージは必要に応じて⾃自動的にパーティショニング される クライアント ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 特⻑⾧長2:プロビジョンドスループット • テーブルごとにReadとWriteそれぞれに対し、必要 な分だけのスループットキャパシティを割り当てる (=プロビジョンする)ことができる • 例例えば下記のようにプロビジョンする – Read : 1,000 – Write : 100 • 書き込みワークロードが上がってきたら – Read : 500 – Write : 1,000 • この値はDB運⽤用中にオンラインで変更更可能 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 特⻑⾧長3:ストレージの容量量制限がない • 使った分だけの従量量課⾦金金制のストレージ • データ容量量の増加に応じたディスクやノードの増設作業 は⼀一切切不不要 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. DynamoDBの構成要素 Client application SDK Database ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Service Side API Client Side • オペレーションはHTTPベースのAPIで提供されている • ユーザーはコードを書くだけで利利⽤用できる DynamoDBのテーブルのプライマリキーの持ち⽅方は2種類 • Hash key • Hash key & Range key ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. プライマリキーがハッシュキーのサンプル1: ユーザー情報データベース ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ユーザー情報データベース ユーザーIDをプライマリキーとしたKVS的なテーブル – UserIdで⼀一意のItemを特定し情報の参照や更更新、削除を⾏行行う Users Table UserId (Hash) Name Nicknames Mail Address Interests aed9d Bob [ Rob, Bobby ] [email protected] some address [ Car, Motor Cycle] edfg12 Alice [ Allie ] a8eesd Carol [ Caroline ] f42aed Dan [ Daniel, Danny ] ※DynamoDBにはauto_increment等でユニークIDを払い出す機能はないので注意。 UUIDなどを使ってください。 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. プライマリキーがハッシュ&レンジのテーブルサンプル: ゲームの⾏行行動履履歴管理理データベース ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ゲームの⾏行行動履履歴管理理データベース ⾃自分のバトル履履歴を確認するケースを想定 – Userに⾃自分(Alice)を指定し、更更にTimestampが7⽇日以内のデータ をクエリしたりできる Your Battle History Charlie 02-25 16:21 Won! Dan 02-24 09:48 Won! Alice 02-21 12:42 Won! Battle History User (Hash) Timestamp (Range) Opponent Result Alice 2014-02-21 12:21:20 Bob Lost Alice 2014-02-21 12:42:01 Bob Won Alice 2014-02-24 09:48:00 Dan Won Alice 2014-02-25 16:21:11 Charlie Won ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. テーブル設計のための基礎知識識+1 • Local Secondary Index – Range key以外に絞り込み検索索のためのキーを持つことができる – Hash keyが同⼀一のアイテム群の中からの検索索のために利利⽤用 – インデックスもテーブルにプロビジョンしたスループットを利利⽤用する • Global Secondary Index – Hash Keyをまたいで検索索を⾏行行うためのインデックス – インデックスにテーブルとは独⽴立立したスループットをプロビジョンし て利利⽤用する ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon DynamoDBとは・・・ • • • • 分散型のNoSQL ⼤大量量のデータを投⼊入しても性能が劣劣化しない Redshiftとは違い、こちらはOLTP⽤用データベース SQLのようにJOINができるわけではない • ⼤大量量のデータを格納しておいて、必要な少数のデー タを⾼高速にやりとりするのに強みを持つ ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. データ活⽤用のステップで⾒見見る EMR ETL Kinesis Web app DynamoDB S3 Analytics Data Redshift Data Pipeline Sum EMR 73 あつめる©2014, 処理する ためる Glacier RDS Amazon Web Services, Inc. or its affiliates. All rights reserved. Dashboard つかう アジェンダ 1. AWSのサービス全体像と ビッグデータ関連サービス 2. 解剖ビッグデータ: あつめる、ためる、つかう 3. Getting Started with Big Data Services – – – Amazon Redshift Amazon Elastic MapReduce Amazon DynamoDB 4. Practical Deep Dive ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS上でデータ処理理を⾏行行う際には S3の利利⽤用がキー 75 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. データがS3にあれば あとは必要に応じて処理理クラスタを起動して利利⽤用できる S3 Elastic MapReduce 76 DynamoDB ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Redshift S3とEMR 負荷 時間 Hadoop単体ではデータ共有はできない ↓ ひとつのデータに対する処理理は ひとつのクラスタに強く結合してしまう ↓ キャパシティプランニングが難しい 77 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3とEMR 負荷 キャパシティ 時間 データをHDFSではなく S3に格納しておけば・・ S3 78 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3とEMR 負荷 キャパシティ 時間 S3 79 S3上のデータを複数の クラスタから共⽤用できる ↓ 仕事量量に合わせて都度度 クラスタを⽴立立ち上げて使える! ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3とRedshift COPY table_name FROM ‘s3://hoge’ CREDENTIALS ‘access_key_id:hoge…’ DELIMITER ‘,’ S3 Redshift データ Redshiftへのデータロードは S3経由が効率率率的 80 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3とRedshift UNLOAD (‘SELECT * FROM…’) TO ‘s3://fuga/….’ CREDENTIALS ‘access_key_id:hoge…’; S3 RedshiftからS3への エクスポートも容易易 81 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Redshift S3とRedshift S3 古いデータはより安価な ストレージのGlacierへ 82 Glacier ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. Redshift S3とRedshift S3 Glacier 83 Redshift クラスタに問題が起こったら、 S3からクラスタを再構築 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3とDynamoDB DynamoDB 84 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3とDynamoDB 古いデータはS3へオフロード もしくはバックアップ S3 85 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. DynamoDB S3とDynamoDB 更更に古いデータはGlacierへ Glacier 86 S3 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. DynamoDB S3を使ったパイプライン処理理 S3 87 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3を使ったパイプライン処理理 EMR S3 S3 処理理1 88 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3を使ったパイプライン処理理 EMR S3 S3 S3 処理理1 89 EMR 処理理2 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3を使ったパイプライン処理理 EMR EMR S3 S3 S3 処理理1 処理理2 S3をチェックポイントとして利利⽤用することによって 処理理を疎結合にできる 90 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3を使ったパイプライン処理理 EMR EMR S3 S3 S3 処理理1 処理理2 処理理が途中で失敗したら・・・ 91 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. S3を使ったパイプライン処理理 EMR EMR S3 S3 S3 処理理1 処理理2 チェックポイントからやりなおせる 92 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. ⼤大事なことなのでもう⼀一度度。 中⼼心にあるのはいつもS3データ コンテンツ 配信 CloudFront 分析 コンテンツ トランスコード Elastic Redshift MapReduce Elastic Transcode r データ 交換 データ バックアップ Amazon S3 93 EC 2 RDS EBS Storage Gatewa y Redshift Data Pipeline データ アクセスGW コンテンツ アーカイブ ©2014, Amazon Web Services, Inc. or Glacie its affiliates. All rights reserved. Storage Gateway One more thing.. ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. リアルタイム ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. リアルタイム性の導⼊入 データは逐次的に流流れる 15分や1時間に1回データを更更新する EMR Webサーバー S3 処理理済みデータ Redshift ETL済みデータ S3 BIツールなど ログ(オリジナル) ログ集約サーバー データ提供API EMR S3 処理理済みデータ DynamoDB ETL済みデータ 15分や1時間に1回データを更更新する 96 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. リアルタイム性の導⼊入 データは逐次的に流流れる Webサーバー 15分や1時間に1回データを更更新する EMR S3 処理理済みデータ Redshift ETL済みデータ S3 BIツールなど ログ(オリジナル) データ提供API EMR S3 処理理済みデータ DynamoDB ETL済みデータ 15分や1時間に1回データを更更新する 97 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. リアルタイム性の導⼊入:ラムダアーキテクチャ リアルタイムに速報値を流流し込む データは逐次的に流流れる Webサーバー 15分や1時間に1回データを更更新する EMR S3 処理理済みデータ Redshift ETL済みデータ S3 BIツールなど ログ(オリジナル) データ提供API EMR S3 処理理済みデータ DynamoDB ETL済みデータ 15分や1時間に1回データを更更新する リアルタイムに速報値を流流し込む 98 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. まとめ ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 各サービスの役割を理理解し、うまく組み合わせる • あつめる、ためる、処理理する、つかう、それぞ れのフェーズに有効なサービスは異異なる。 • ⾃自分がどのフェーズのソリューションを必要と しているのかを⾒見見極めてサービスを選ぶ。 ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. 各サービスの役割を理理解し、うまく組み合わせる どこから? あつめる サーバー どのくらい? どういう? ためる 処理する S3 EMR どうやって? つかう Redshift DynamoDB DynamoDB EC2 モバイル RDS ©2014, Amazon Web Services, Inc. or its affiliates. All rights reserved. RDS
© Copyright 2024 ExpyDoc