1) O documento discute como construir um Data Lake na AWS utilizando várias tecnologias da AWS.
2) É apresentada uma agenda com conceitos de Data Lake, simplificando o Data Lake e quais tecnologias utilizar.
3) Uma arquitetura de referência e design patterns são discutidos.
2. Agenda
Conceitos de Data Lake
Simplificando o seu Data Lake
Quais tecnologias utilizar?
• Por quê?
• Como?
Arquitetura de referência
Design patterns
3. O que é Data Lake?
Data Lake é uma nova arquitetura que vem se tornando
cada vez mais popular com objetivo armazenar e analisar
um volume massivo e tipos heterogêneo de dados.
4. Por que Data Lake?
Utilizar os dados que podem influênciar o desempenho da sua
organização
• Foco no cliente
• Agilidade de negócio
• Melhores previsões utilizando Machine Learning
• Vantagem Competitiva
5. Viabilizadores do Data Lake
• Evolução das tecnologias de Big Data
• Evolução/economics dos serviços de cloud
• Convergência da arquitetura Big Data+Cloud
6. Evolução do Big Data
Processamento
Batch
Processamento
Stream
Inteligência
Artificial
9. Desafios do Data Lake
Por quê?
Como?
Quais ferramentas
utilizar?
Há uma arquitetura de referência?
10. Princípios de Arquitetura
Construir sistemas desacoplados
• Dados → Armazenar→ Processamento→ Armazenar → Análise → Respostas
Ferramenta certa para o trabalho certo
• Estrutura de dados, latência, taxa de transferência, padrões de acesso
Utilizar serviços gerenciados da AWS
• Escalabilidade/elasticidade, disponibildiade, segurança, baixa ou nenhuma necessidade de administração
Utilizar design patterns com foco em logs.
• Log imutável (apenas incremental), materialized views
Custo otimizado
• Big data ≠ $$$$$$
11. Simplificar o Data Lake
COLETAR ARMAZENAR
PROCESSAR
/ANALISAR
CONSUMIR
Tempo de resposta(Latência)
Taxa de transferência
Custo
12. Tipos de DadosCOLETAR
Mobile apps
Web apps
Data centers
AWS Direct
Connect
RECORDS
Applications
Estrutura de dados em memória
Registros de banco de dados
AWS Import/Export
Snowball
Logging
Amazon
CloudWatch
AWS
CloudTrail
DOCUMENTS
FILES
LoggingTransport
Busca em documentos
Arquivos de log
Messaging
Message MESSAGES
Messaging
Mensagens
Devices
Sensors &
IoT platforms
AWS IoT STREAMS
IoT
Streams de dados
Transações
Arquivos
Eventos
14. Características do Dado : Quente, Morno, Frio
Quente Morno Frio
Volume MB–GB GB–TB PB-EB
Tamanho do Item B–KB KB–MB KB–TB
Latência ms ms, sec min, hrs
Durabilidade Baixo–Alto Alto Muito Alto
Taxa de acesso Muito Alto Alto Baixo
Custo/GB $$-$ $-¢¢ ¢
Dados Quentes Dados Mornos Dados Frios
16. ARMAZENAR
Devices
Sensors &
IoT platforms
AWS IoT STREAMS
IoT
COLETAR
AWS Import/Export
Snowball
Logging
Amazon
CloudWatch
AWS
CloudTrail
DOCUMENTS
FILES
LoggingTransport
Messaging
Message MESSAGES
MessagingApplications
Mobile apps
Web apps
Data centers
AWS Direct
Connect
RECORDS
Tipos de armazenamento de dados
Database Banco de dados SQL & NoSQL
Search Motores de busca
File store Sistemas de arquivos
Queue Filas de mensagens
Stream
storage
Pub/sub filas de mensagens
In-memory Caches, data structure servers
17. In-memory
Amazon Kinesis
Firehose
Amazon Kinesis
Streams
Apache Kafka
Amazon DynamoDB
Streams
Amazon SQS
Amazon SQS
• Serviço de filas de mensagens geranciado
Apache Kafka
• Plataforma distribuída de streaming com alta
taxa de transferência
Amazon Kinesis Streams
• Serviço gerenciado de processamento e
armazenamento de dados de streaming
Amazon Kinesis Firehose
• Serviço gerenciado de entrega de dados
Amazon DynamoDB
• Banco de dados NoSQL gerenciado
• Tabelas podem ter stream habilitado
Armazenamento de Mensagens e Stream
Devices
Sensors &
IoT platforms
AWS IoT STREAMS
IoT
COLETAR ARMAZENAR
Mobile apps
Web apps
Data centers
AWS Direct
Connect
RECORDS
Database
Applications
AWS Import/Export
Snowball
Logging
Amazon
CloudWatch
AWS
CloudTrail
DOCUMENTS
FILES
Search
File store
LoggingTransport
Messaging
Message MESSAGES
Messaging
Message
Stream
19. E sobre Amazon SQS?
• Desacoplar produtores e consumidores
• Buffer persistente
• Coletar streams múltiplos
• Sem ordenação (Padrão)
• Fila FIFO preserva a ordem
• Sem streaming MapReduce
• Sem consumo paralelo
• Amazon SNS consegue publicar
para múltiplos subscribers (filas
ou funções ʎ)
Publisher
Amazon SNS
topic
function
ʎ
AWS
Lambda
function
Amazon SQS
queue
queue
Subscriber
Consumers
4 3 2 1
12344 3 2 1
1234
2134
13342
Standard
FIFO
20. Qual armazenamento Stream/Fila de Mensagens devo utilizar?
Amazon
DynamoDB
Streams
Amazon
Kinesis
Streams
Amazon
Kinesis
Firehose
Apache
Kafka
Amazon
SQS (Standard)
Amazon SQS
(FIFO)
AWS gerenciado Sim Sim Sim Não Sim Sim
Garantia de ordem Sim Sim Não Sim Não Sim
Entrega
(desaclopamento)
Exatamente
uma vez
Pelo menos
uma vez
Pelo menos uma
vez
Pelo menos uma
vez
Pelo menos uma
vez
Exatamente uma
vez
Tempo de retenção 24 horas 7 dias N/A Configurável 14 dias 14 dias
Disponibilidade 3 AZ 3 AZ 3 AZ Configurável 3 AZ 3 AZ
Escala /
throughput
Sem limite /
~ table IOPS
Sem limite /
~ shards
Sem limite /
Automático
Sem limite /
~ nós
Sem limite /
Automático
300 TPS / fila
Consumo paralelo Sim Sim Não Sim Não Não
Stream MapReduce Sim Sim N/A Sim N/A N/A
Tamanho da
linha/objeto
400 KB 1 MB Tamanho da linha
do destino/objeto
Configurável 256 KB 256 KB
Custo Alto Baixo Baixo Baixo
(+administração)
Baixo-médio Baixo-médio
Hot Warm
New
21. In-memory
COLETAR ARMAZENAR
Mobile apps
Web apps
Data centers
AWS Direct
Connect
RECORDS
Database
AWS Import/Export
Snowball
Logging
Amazon
CloudWatch
AWS
CloudTrail
DOCUMENTS
FILES
Search
Messaging
Message MESSAGES
Devices
Sensors &
IoT platforms
AWS IoT STREAMS
Apache Kafka
Amazon Kinesis
Streams
Amazon Kinesis
Firehose
Amazon DynamoDB
Streams
Hot
Stream
Amazon S3
Amazon SQS
Message
Amazon S3
File
LoggingIoTApplicationsTransportMessaging
Armazenamento de
Arquivos
22. Por que o Amazon S3 é utilizado para Data Lake?
• Suportado nativamente por frameworks de Big Data (Spark, Hive, Presto, etc.)
• Desacoplar armazenamento e processamento
• Sem necessidade de rodar clusters para storage (diferente do HDFS)
• Permite rodar clusters Hadoop transientes & utilizar instâncias EC2 Spot
• Múltiplos clusters distintos podem usar os mesmos dados
• Número ilimitado de objetos e de volume de dados
• Alta taxa de transferência – sem limite agregado de taxa de transferência
• Desenhado para ter 99.99% de disponibilidade - tolera falha nas AZs
• Desenhado para durabilidade de 99.999999999%
• Não é necessário pagar por replicação do dado
• Suporte nativo a versionamento
• Tiered-storage (Standard, IA, Amazon Glacier) com políticas de ciclo de vida do dado
• Seguro – criptografia em trânsito com SSL, em descanso com client/server-side
• Baixo custo
23. E o HDFS e Amazon Glacier?
• Usar HDFS para dados frequentemente
acessados (quente)
• Usar Amazon S3 Standard para dados
frequentemente acessados
• Usar Amazon S3 Standard – IA para dados
que não são frequentemente acessados
• Usar Amazon Glacier para arquivar dados
frios
• Usar o Amazon S3 Analytics para analisar a
categoria de armazenamento dos objetos.
New
24. In-memory
COLETAR ARMAZENAR
Mobile apps
Web apps
Data centers
AWS Direct
Connect
RECORDS Database
AWS Import/Export
Snowball
Logging
Amazon
CloudWatch
AWS
CloudTrail
DOCUMENTS
FILES
Search
Messaging
Message MESSAGES
Devices
Sensors &
IoT platforms
AWS IoT STREAMS
Apache Kafka
Amazon Kinesis
Streams
Amazon Kinesis
Firehose
Amazon DynamoDB
Streams
Hot
Stream
Amazon SQS
Message
Amazon S3
File
LoggingIoTApplicationsTransportMessaging
In-memory, Banco de
dados, Busca
28. COLETAR ARMAZENAR
Mobile apps
Web apps
Data centers
AWS Direct
Connect
RECORDS
AWS Import/Export
Snowball
Logging
Amazon
CloudWatch
AWS
CloudTrail
DOCUMENTS
FILES
Messaging
Message MESSAGES
Devices
Sensors &
IoT platforms
AWS IoT STREAMS
Apache Kafka
Amazon Kinesis
Streams
Amazon Kinesis
Firehose
Amazon DynamoDB
Streams
Hot
Stream
Amazon SQS
Message
Amazon Elasticsearch
Service
Amazon DynamoDB
Amazon S3
Amazon ElastiCache
Amazon RDS
SearchSQLNoSQLCacheFile
LoggingIoTApplicationsTransportMessaging
Amazon ElastiCache
• Serviço gerenciado de Memcached ou
Redis
Amazon DynamoDB
• Base de dados NoSQL gerenciado
Amazon RDS
• Serviço de banco de dados relacional
gerenciado
Amazon Elasticsearch Service
• Serviço gerenciado de Elasticsearch
29. Qual tipo de armazenamento utilizar?
Estrutura de dados → Schema fixo, JSON, chave-valor
Padrão de acesso → Armazenar dados no formato que você
vai acessar
Temperatura do dado → Quente, morno, frio
Custo→ Custo adequado
30. Estrutura de dados e Padrões de acesso
Padrões de Acesso O que utilizar?
Put/Get (chave, valor) In-memory, NoSQL
Relações simples → 1:N, M:N NoSQL
Multi-table joins, transação, SQL SQL
Faceting, search Search
Estrutura de dados O que utilizar?
Schema fixo SQL, NoSQL
Schema flexível (JSON) NoSQL, Busca
(Chave, Valor) In-memory, NoSQL
31. In-memory
SQL
Taxa de acesso
Alto Baixo
Custo/GB
Alto Baixo
Latência
Baixo Alto
Volume de dados
Baixo Alto
Amazon
Glacier
Esruturado
NoSQL
Dados quentes Dados mornos Dados frios
Pouco
Muito
32. Qual tipo de armazenamento devo utilizar?
Amazon
ElastiCache
Amazon
DynamoDB
Amazon
RDS/Aurora
Amazon
Elasticsearch
Amazon S3 Amazon Glacier
Latência
Média
ms ms ms, seg ms,seg ms,seg,min
(~ tamanho)
hrs
Volume de Dados GB GB–TBs
(sem limite)
GB–TB
(64 TB
Max)
GB–TB MB–PB
(sem limite)
GB–PB
(sem limite)
Tamanho do Item B-KB KB
(400 KB
max)
KB
(64 KB)
B-KB
(2 GB max)
KB-GB
(5 TB max)
GB
(40 TB max)
Taxa de Acesso Alta -
Muito Alta
Muito Alta
(sem limite)
Alta Alta Baixa –
Muito Alta
(sem limite)
Muito Baixa
Custo
armazenamento
GB/mês
$$ ¢¢ ¢¢ ¢¢ ¢ ¢4/10
Durabilidade Baixo -
Moderada
Muito Alta Muito Alta Alta Muito Alta Muito Alta
Availability Alta
2 AZ
Muito alta
3 AZ
Muito alta
3 AZ
Alta
2AZ
Muito alta
3 AZ
Muito alta
3 AZ
Quente Morno Frio
33. Modelo com Custo Otimizado
Exemplo: Eu deveria usar Amazon S3 ou Amazon DynamoDB?
“Atualmente estou analisando um projeto. O modelo requer
diversos arquivos pequenos, talvez um bilhão durante o
pico. O tamanho total seria na ordem de 1.5 TB por mês…”
Taxa de
requisição
(Escrita/seg)
Tamanho do
objeto
(Bytes)
Tamanho
total
(GB/mês)
Objetos por
mês
300 2048 1483 777,600,000
38. Batch
Leva de minutos a horas
Exemplo: Reports diários/semanais/mensais
Amazon EMR (MapReduce, Hive, Pig, Spark)
Interativo
Leva segundos
Exemplo: Self-service dashboards
Amazon Redshift, Amazon Athena, Amazon EMR (Presto, Spark)
Messagem
Leva de milissegundos a segundos
Exemplo: Processamento de mensagens
Amazon SQS applications on Amazon EC2
Stream
Leva de milissegundos a segundos
Exemplo: Alertas de fraude, Métricas de 1 minuto
Amazon EMR (Spark Streaming), Amazon Kinesis Analytics, KCL, Storm, AWS
Lambda
Inteligência Artificial
Leva de milissegundos a segundos
Exemplo: Detecção de fraude, previsão de demanda, text to speech
Amazon AI (Lex, Polly, ML, Rekognition), Amazon EMR (Spark ML), Deep
Learning AMI (MXNet, TensorFlow, Theano, Torch, CNTK and Caffe)
Tipos de Analytics e Frameworks PROCESSAR / ANALISAR
Message
Amazon SQS apps
Amazon EC2
Streaming
Amazon Kinesis
Analytics
KCL
apps
AWS Lambda
Stream
Amazon EC2
Amazon EMR
Fast
Amazon Redshift
Presto
Amazon
EMR
FastSlow
Amazon Athena
BatchInteractive
Amazon
AI
AI
39. Qual processamento Stream/Mensagem devo utilizar?
Amazon EMR
(Spark
Streaming)
Apache Storm KCL
Application
Amazon
Kinesis
Analytics
AWS
Lambda
Amazon SQS
Application
AWS
gerenciado
Sim(Amazon
EMR)
Não (Faça
você mesmo)
Não (EC2 +
Auto Scaling)
Sim Sim Não (EC2 + Auto
Scaling)
Serverless Não Não Não Sim Sim Não
Escala /
throughput
Sem limite /
~ nodes
Sem limite /
~ nodes
Sem limite /
~ nodes
Até 8 KPU /
automático
Sem limite /
automático
Sem limite /
~ nodes
Disponibilidade Única AZ Configurável Multi-AZ Multi-AZ Multi-AZ Multi-AZ
Linguagem de
programação
Java, Python,
Scala
Qualquer
linguagem via
Thrift
Java, outras
MultiLangDaemon
ANSI SQL with
extensions
Node.js, Java,
Python
AWS SDK (Java,
.NET, Python,
…)
Uso Múltiplos
estágios de
processamento
Múltiplos
estágios de
processamento
Único estágio
de
processamento
Múltiplos
estágios de
processamento
Eventos
simples
baseados em
triggers
Eventos simples
baseados em
triggers
Confiabilidade KCL e Spark
checkpoints
Framework
managed
Gerenciado
pelo KCL
Gerenciado pelo
Amazon Kinesis
Analytics
Gerenciado
pelo AWS
Lambda
Gerenciado pelo
SQS Visibility
Timeout
40. Qual ferramenta analítica devo utilizar?
Amazon Redshift Amazon Athena Amazon EMR
Presto Spark Hive
Caso de uso Otimizado para data
warehousing
Ad-hoc Queries interativas Queries
interativas
Propósito geral
(interativa ML, RT, ..)
Batch
Escala/throughput ~Nodes Automático / Sem limite ~ Nodes
AWS Serviço
gerenciado
Sim Sim, Serverless Sim
Armazenamento Local storage Amazon S3 Amazon S3, HDFS
Otimização Storage Colunar,
Compressão de dados, e
zone maps
CSV, TSV, JSON,
Parquet, ORC, Apache
Web log
Framework dependent
Metadados Amazon Redshift
managed
Athena Catalog Manager Hive Meta-store
Suporte a
ferramentas de BI
Sim (JDBC/ODBC) Sim (JDBC) Sim (JDBC/ODBC & Custom)
Controle de acesso Usuários, grupos, e
controle de acesso
AWS IAM Integração com LDAP
Suporte a UDF Sim (Scalar) Não Sim
Slow
41. E sobre ETL?
https://aws.amazon.com/big-data/partner-solutions/
ETLARMAZENAR PROCESSAR / ANALISAR
Parceiros de Integração de Dados
Reduzir o esforço para mover, limpar, sincronizar, gerenciar
e automatizar processos relacionados a dados AWS Glue
AWS Glue é um serviço de ETL totalmente
gerenciado que facilita o entendimento da sua fonte
de dados, prepara os dados e os move de forma
confiável entre camadas de armazenamento de
dados
New
47. E os Metadados?
• Amazon Athena Catalog
• Catálogo interno para tabelas/esquemas no S3
• Glue Catalog
• Hive Metastore compatível
• Crawlers - Detectar novos dados, schema e
partições
• Busca - Metadata discovery
• EMR Hive Metastore (Presto, Spark, Hive, Pig)
• Pode ser armazenado no Amazon RDS
Presto
Amazon
EMR
Amazon Athena
Data
Catalog
Amazon Athena
Catalog RDS
Amazon EMR
Hive Metastore
Amazon RDS
Glue
Catalog
48. Segurança e Governança
• AWS Identity and Access Management (IAM)
• Amazon Cognito
• Amazon CloudWatch & AWS CloudTrail
• Amazon KMS
• AWS Directory Service
• Apache Ranger
Security &
Governance IAM Amazon
CloudWatch
AWS
CloudTrail
AWS
KMS
AWS
CloudHSM
AWS Directory
Service
Amazon
Cognito
49. Security &
Governance IAM AWS
STS
Amazon
CloudWatch
AWS
CloudTrail
AWS
KMS
AWS
CloudHSM
AWS Directory
Service
Data
Catalog
Amazon Athena
Catalog RDS
Hive
Metastore EMR RDS
Glue
Catalog
Arquitetura de
referência para
Data Lake
50. Data Lake na AWS
Catalog & Search
Access and search metadata
Access & User Interface
Give your users easy and secure access
DynamoDB Elasticsearch API Gateway Identity & Access
Management
Cognito
QuickSight Amazon AI EMR Redshift
Athena Kinesis
Analytics
RDS
Central Storage
Secure, cost-effective
Storage in Amazon S3
S3
Snowball Database Migration
Service
Kinesis Firehose Direct Connect
Data Ingestion
Get your data into S3
Quickly and securely
Protect and Secure
Use entitlements to ensure data is secure and users’ identities are verified
Processing & Analytics
Use of predictive and prescriptive
analytics to gain better understanding
Security Token
Service
CloudWatch CloudTrail Key Management
Service
55. Interativo &
Batch
Amazon S3
Amazon
Redshift
Amazon EMR
Presto
Hive
Pig
Spark
Amazon
ElastiCache
Amazon
DynamoDB
Amazon
RDS
Amazon
ES
AWS Lambda
Storm
Spark Streaming
on Amazon EMR
Aplicãções
Amazon
Kinesis
App state
or
Materialized
View
KCL
Amazon
AI
Real-time
Amazon
DynamoDB
Amazon
RDS
Change Data
Capture
Transações
Stream
Arquivos
Data Lake
Amazon Kinesis
Analytics
Amazon Athena
Amazon Kinesis
Firehose
56. Resources
• https://aws.amazon.com/blogs/big-data/introducing-the-data-
lake-solution-on-aws/
• AWS re:Invent 2016: Netflix: Using Amazon S3 as the fabric of
our big data ecosystem (BDM306)
• AWS re:Invent 2016: Deep Dive on Amazon S3 (STG303)
• https://aws.amazon.com/blogs/big-data/reinvent-2016-aws-big-
data-machine-learning-sessions/
• https://aws.amazon.com/blogs/big-data/implementing-
authorization-and-auditing-using-apache-ranger-on-amazon-emr/
58. “Tomada de decisão orientada à dados”
Webmotors tem 21 anos e é
considerada top of mind entre os
classificados automotivos.
+ 30 milhões de visitas por mês
+ 130 milhões de buscas por mês
Maior estoque automotivo do Brasil
+ 250 veículos anunciados
“Escolhemos a AWS
pela variedade de
recursos para obter o
melhor potencial das
nossas analises”
59. O Desafio
• Analise de grande volume de
informações;
• Acessos
• Conversão em vendas
• Único repositorio para
informações;
• Governança de dados;
• Analises em tempo real.
60. Solução
AWS Region
security group
EC2 instance
IIS
(App layer)
AmazonKinesis
Streams
s3://wm-datalake/source
logs
Adobe Analytics and DMP
Upload to S3 through
connectors
EC2 instance
SQL
Server
(Database
layer)
Adobe Cloud
Pentaho
CloudWatch
Logs
s3://wm-4insights
Amazon Redshift
COPY from S3 into Redshift
ST IT Services on AWS
EC2 instance
4Insights
(Metadata and
Mapping Layer)
Metadata , mapping and
Submit load jobs to Redshift s3://wm-sandbox/
EMR Cluster –
Hive/Spark/Presto
Exploratory
analysis,
Transform,
Advanced
Analytics
Glacier
EMR Cluster –
Hive/Spark/Presto
Create Schemas and
Process Data
Hive metastore
DynamodDB
Data Catalog
and tags
EMR Cluster –
Spark Streaming
Lambda
Lambda
Send data
to Kinesis
Data transformation,
metrics calculations and
geração de alertas
Amazon Elasticsearch Service
WM corporate office
User DesktopEC2 instance
PDI
(ETL
layer)
s3://wm-datalake/consume
Kibana/Dashboard
Tableau
Desktop
VPN
connection
EC2 instance
Tableau Server
(BI layer)
Extract data from Redshift and
load into S3 wm-sandbox
WM - VPC
61. Ainda não tem o App oficial do
AWS Summit São Paulo?
http://amzn.to/2rOcsVy
Não deixe de avaliar as sessões no app!
Is it about storing all data in a single location ?
It is not enough….
You need all the critical components
I will show you how to assemble this together…?
Persist an immutable copy of data
Materialize views
Hourly server logs: were your systems misbehaving 1hr ago
Weekly / Monthly Bill: what you spent this billing cycle
Daily customer-preferences report from your web site’s click stream: what deal or ad to try next time
Daily fraud reports: was there fraud yesterday
Real-time alerts: what went wrong now
Real-time spending caps: prevent overspending now
Real-time analysis: what to offer the current customer now
Real-time detection: block fraudulent use now
I need to harness big data, fast
I want more happy customers
I want to save/make more money
Is there a reference architecture?What tools should I use?How? Why?
Types of Data
Heavily read, app defined data structuresDatabase records
Search documents
Log files
Messaging events
Devices / sensors / IoT stream
Database Records
Search Documents
Log Files
Messaging Events
What is streaming data?
An unbounded sequence of events that is continuously captured and processed with low latency.
Devices / Sensors / IoT Stream
Types of Data
Heavily read, app defined data structuresDatabase records
Search documents
Log files
Messaging events
Devices / sensors / IoT stream
Database Records
Search Documents
Log Files
Messaging Events
Devices / Sensors / IoT Stream
http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html
https://aws.amazon.com/blogs/aws/new-for-amazon-simple-queue-service-fifo-queues-with-exactly-once-delivery-deduplication/
http://calculator.s3.amazonaws.com/index.html#r=IAD&key=calc-BE3BA3E4-1AC5-4E7A-B542-015056D8EDAF
Kinesis -> $52.14 per month
SQS -> $133.42 per month for puts or $400/month (put, get, delete)
DynamoDB -> $3809.88 per month (10TB of storage cost itself is $2500/month)
Cost (100rpsx 35KB)
$52/month
$133/month * 2 = $266/month
?
Amazon DynamoDB Service (US-East)
$
Provisioned Throughput Capacity:
$120
Indexed Data Storage:
$2560.90
DynamoDB Streams:
$1.3
Amazon SQS Service (US-East)
Pricing Example
Let’s assume that our data producers put 100 records per second in aggregate, and each record is 35KB. In this case, the total data input rate is 3.4MB/sec (100 records/sec*35KB/record). For simplicity, we assume that the throughput and data size of each record are stable and constant throughout the day. Please note that we can dynamically adjust the throughput of our Amazon Kinesis stream at any time.
We first calculate the number of shards needed for our stream to achieve the required throughput. As one shard provides a capacity of 1MB/sec data input and supports 1000 records/sec, four shards provide a capacity of 4MB/sec data input and support 4000 records/sec. So a stream with four shards satisfies our required throughput of 3.4MB/sec at 100 records/sec.
We then calculate our monthly Amazon Kinesis costs using Amazon Kinesis pricing in the US-East Region:
Shard Hour: One shard costs $0.015 per hour, or $0.36 per day ($0.015*24). Our stream has four shards so that it costs $1.44 per day ($0.36*4). For a month with 31 days, our monthly Shard Hour cost is $44.64 ($1.44*31).
PUT Payload Unit (25KB): As our record is 35KB, each record contains two PUT Payload Units. Our data producers put 100 records or 200 PUT Payload Units per second in aggregate. That is 267,840,000 records or 535,680,000 PUT Payload Units per month. As one million PUT Payload Units cost $0.014, our monthly PUT Payload Units cost is $7.499 ($0.014*535.68).
Adding the Shard Hour and PUT Payload Unit costs together, our total Amazon Kinesis costs are $1.68 per day, or $52.14 per month. For $1.68 per day, we have a fully-managed streaming data infrastructure that enables us to continuously ingest 4MB of data per second, or 337GB of data per day in a reliable and elastic manner.
2 x 2 Matrix
Structured
Level of query (from none to complex)
Draw down the slide
Add connector
Direct Acyclic Graphs?
Exactly once processing & DAG? – how do you do this??
https://storm.apache.org/documentation/Rationale.html
http://www.slideshare.net/ptgoetz/apache-storm-vs-spark-streaming
Athena – Simple
Redshift – Fast
EMR - Configurable
Add connector
30% queries & 70% of data – Athena…
Direct Acyclic Graphs?
Exactly once processing & DAG? — how do you do this??
https://storm.apache.org/documentation/Rationale.html
http://www.slideshare.net/ptgoetz/apache-storm-vs-spark-streaming
Data Integration
Reduce the effort to move, cleanse, synchronize, manage, and automatize data related processes.
Applications & API
Analysis and Visualization
Notebooks
IDE
Amazon Athena uses an internal data catalog to store information and schemas about the databases and tables that you create for your data stored in Amazon S3.
AWS Identity and Access Management (IAM) - enables you to securely control access to AWS services and resources for your users
Amazon Cognito lets you easily add user sign-up and sign-in to your mobile and web apps
Amazon CloudWatch is a monitoring service for AWS cloud resources and the applications you run on AWS
With CloudTrail, you can log, continuously monitor, and retain events related to API calls across your AWS infrastructure
AWS Key Management Service (KMS) is a managed service that makes it easy for you to create and control the encryption keys used to encrypt your data, and uses Hardware Security Modules (HSMs) to protect the security of your keys. AWS Key Management Service is integrated with several other AWS services to help you protect the data you store with these services. AWS Key Management Service is also integrated with AWS CloudTrail to provide you with logs of all key usage to help meet your regulatory and compliance needs.
AWS Directory Service for Microsoft Active Directory (Enterprise Edition), also known as AWS Microsoft AD, enables your directory-aware workloads and AWS resources to use managed Active Directory in the AWS Cloud. The Microsoft AD service is built on actual Microsoft Active Directory and does not require you to synchronize or replicate data from your existing Active Directory to the cloud
https://aws.amazon.com/blogs/big-data/implementing-authorization-and-auditing-using-apache-ranger-on-amazon-emr/
This is a summary of all six design patterns together. This summarizes all of the solutions available in the context of the temperature of the data and the data processing latency requirements.
Hive – 1 year worth of click stream data
Spark – 1 year of click stream data – what people are buying frequently together
Redshift – reporting, enterprise reporting tool – SQL Heavy
Impala – same as redshift
Preseto same league as Impala presto – Interactive SQL analytics – have a Hadoop installed base….
NoSQL – Analytics on NoSQL
Best practices
BDT318 - Netflix Keystone: How Netflix Handles Data Streams Up to 8 Million Events Per Second
Use Kinesis or Kafka for stream storage
Use appropriate stream processing tool
KCL – Simple, only for Kinesis
Apache Storm – general purpose
Spark Streaming – Windowing, MLlib, Statefull
AWS Lambda – fully managed, no servers, stateless
Use Amazon SNS for Alerts
Use Amazon ML for predictions
Use a managed database/cache for state management
Use a visualization tool for KPI visualization
Lambda Architecture best practices
Use Kinesis or Kafka for stream storage
Maintain an immutable (append only) raw master data in Amazon S3 - use Amazon Kinesis S3 connector or Firehose
Use appropriate batch processing technologies for creating batch views
Use appropriate stream processing technology for real-time views
Use a serving layer with an appropriate database to serve downstream applications
Diagrama de solução, e explicar a solução, vantagens, etc
30 segundos para apresentar a empresa, rapidamente
Os 4 (máximo) maiores desafios do projeto, que foram resolvidos pela utilização da nuvem da AWS
Diagrama de solução, e explicar a solução, vantagens, etc