© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry...
Transcript of © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry...
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Fábio Silva e Henry Alvarado
Arquitetos de Solução @ Amazon Web Services LATAM
São Paulo, 27 de Março de 2015
AWS @ QConSP 2015Sem Servidores: Mobile Backend-as-a-Service na plataforma AWS
Agenda
Agenda
• Amazon Web Services
• Mobile Backend-as-a-Service (MBaaS)
• Arquitetura MBaaS na AWS
• Demo
• Próximos Passos
Amazon Web Services
Infraestrutura Global
Mais de 1 milhão de clientes ativos em mais de 190 países
Mais de 800 agências governamentais
Mais de 3,000 instituições educacionais
11 regiões
29 zonas de disponibilidade
52 pontos de presença
A cada dia, a AWS adiciona capacidade computacional equivalente ao que era necessário para suportar a Amazon.com quando ela era um negócio de $7 bilhões
O Diferencial da AWS
Construindo e gerenciando nuvem desde 2006
Mais de 40 serviços para suportar qualquer workload
Histórico de releases rápidos e orientados aos clientes
11 regiões, 29 zonas, 52 pontos de presença
45 reduções proativas de preço até hoje
Mais de 8,000 SIs e ISVs e 2,000 produtos no marketplace
Experiência
Variedade de serviços
Inovação
Presença Global
Filosofia de Precificação
Ecossistema
O Diferencial da AWS
Infrastructure RegionsPoints of PresenceAvailability Zones
Core ServicesStorage(Object, Block and Archival)
Compute(VMs, Auto-scaling and Load Balancing)
Databases(Relational, NoSQL, Caching)
Networking(VPC, DX, DNS)
CDN
Access ControlUsage Auditing
Monitoring and Logs
Administration & Security
Key Storage
IdentityManagement
Platform Services
Deployment & Management
One-click web app deployment
Dev/ops resourcemanagement
Resource Templates Push Notifications
Mobile Services
Mobile Analytics
Identity
Sync
App Services
Workflow
Transcoding
Search
Queuing &Notifications
App streaming
Analytics
Hadoop
Data Pipelines
Data Warehouse
Real-timeStreaming Data
EnterpriseApplications
Virtual Desktops
Collaboration and Sharing
Mobile Backend-as-a-Service (MBaaS)
O Que é MBaaS?
• Mobile Backend-as-a-Service• Modelo para provimento de serviços de backend via
cloud para aplicações web e mobile• Notificações via push, integração com redes sociais,
armazenamento, banco de dados, busca, etc.• Agilidade e desenvolvimento mais rápido (foco na
aplicação e não em serviços de no backend) • Baixo custo e alta disponibilidade e escalabilidade• Menos Infraestrutura para manter (servidores, SO, web
e app server, BD, storage, redes, etc.)
Aplicações e Casos de Uso
• Jogos, Apps de Live Score, Votação, etc.• Aplicações Mobile• Aplicações Web• Aplicações Multi-plataforma• Aplicações Híbridas (parte MBaaS e parte tradicional
com servidores)• Aplicações 100% sem servidores
Caso de Uso: Transição de Estado
Perfil do usuário inicialmente como “anônimo” ou “guest”
Caso de Uso: Transição de Estado
Posterior registro da conta
• A transição deveria ser tranquila
Caso de Uso: Transição de Estado
Múltiplas contas podem ser vinculadas ao mesmo perfil
• Usuário deveria ter um identificador padronizado e único
Caso de Uso: Estado em Jogos
Arquitetura MBaaS na AWS
Um Exemplo na AWS: Aplicação Sem Servidor, Backend 100% através de MBaaS
• Nenhum servidor• Mini-CMS Web para cadastro de categorias e itens• Publicação (geração de versões estáticas das páginas
para as múltiplas plataformas de visualização – Web Browser, Android e IOS)
• Perfil do usuário (Favoritos) em datastore sincronizado entre as plataformas
• Geração de Thumbnail, Busca, Notificações SNS e Analytics
Sem MBaaS, o que seria necessário?
• Webservers para entrega de conteúdo estático (i.e. nginx ou apache)
• Application Servers para conteúdo dinâmico (i.e. tomcat ou jboss)
• Banco de Dados (i.e. mysql ou mongodb)• Engine de Busca (i.e. solr ou elasticsearch)• Implementação de Datastore• Instalação e manutenção de toda essa infraestrutura!• Muito, mas muito mais código do que com serviços
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
AUT
H
COGNITO SYNC STORE
(FAVORITES)
FAVORIT
ESSNS
SEA
RC
HIN
G
COGNITO PUSH SYNC
MOBILE ANALYTIC
S
COGNITO
CM
S
EDITORWEB
BROWSER
CM
S
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
CM
S
SDK Javascript AWS
• Acesso aos serviços da AWS diretamente do browser
• Não requer servidores
• Fácil de instalar
• Fácil de aprender (javascript!)
• Login em redes sociais com Cognito
• Dados persistentes com Dynamodb
• Armazenamento de arquivos com o S3
• Suporte a todos os browser modernos
SDK Mobile AWS
• Mecanismo comum de autenticação entre diversas plataformas
• Tratamento automático de intermitências de rede
• Suporte a múltiplas plataformas: Android, IOS, Unity e FireOS
• SDKs nativos otimizados para OS móvel, como por exemplo, através do uso de arquitetura local para cache offline
• Footprint de memória otimizado; Escolha e use apenas os jars que necessitar
Outros SDKs AWS
ROUTE 53
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
CM
S
BA
CK
EN
D (
MB
aaS
)
Route 53• Serviço de DNS altamente disponível e
escalável.• Tradução de nome para IP com excelente custo
benefício.• Múltiplos tipos de roteamento:
• Roteamento Baseado em Latência.• Geo DNS.• Round Robin por Peso.• DNS Failover com healthchecks.
• Registro de domínio (compra de domínios).• Pode ser usado também para redirecionar
usuários para infraestrutura fora da AWS.
ROUTE 53
CLOUDFRONT
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
CM
S
BA
CK
EN
D (
MB
aaS
)
CloudFront (Content Delivery Network / CDN)
• Rede de entrega de conteúdo• Infraestrutura Global (52 pontos de presença)• Otimizada para alta performance• Escalabilidade massiva• Altamente segura• Self Service • Precificada para minimizar custo
CloudFront (Content Delivery Network / CDN)
• Arquivos estáticos• Media e Entretenimento• Jogos• eCommerce• Publicidade Digital• Downloads de Softwares• Websites Dinâmicos e Aplicações
ROUTE 53
CLOUDFRONT S3
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
CM
S
BA
CK
EN
D (
MB
aaS
)
S3 (Simple Storage Service)
• Armazenamento de objetos acessível via Web• Pague exatamente e apenas pelo que usar• Altamente durável (desenhado para 99.999999999%)• Escalabilidade virtualmente ilimitada• Nativamente online
S3 (Simple Storage Service)
• Objetos armazenados no S3 são URLs• Transfira o trabalho de servir arquivos estáticos para o Amazon S3• Redução de uso de disco físico• Características:
• I/O paralelizado para máxima velocidade• Permissões a nível de recursos via IAM• Listas de controle e políticas de acesso• Envio direto das aplicações ao S3• Criptografia server-side
S3 Code Snippet (Javascript)
var bucket = new AWS.S3({params : {
Bucket : 'pairarchitecture'}
});
var fileChooser = document.getElementById('add-file-chooser');var file = fileChooser.files[0];Var fileName = file.name.toLowerCase();
var params = {Key : 'images/' + fileName,ContentType : file.type,Body : file
};
bucket.upload(params, function(err, data) {...
});
ROUTE 53
CLOUDFRONT S3
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
CM
S
BA
CK
EN
D (
MB
aaS
)
ROUTE 53
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
CM
S
BA
CK
EN
D (
MB
aaS
)
AUTH
Cognito (Autenticação e Data Store)
Simplifica o gerenciamento de
acesso e identidades
Acesso seguro a todos os serviços da
AWS
Sincronização Cross-device e Cross-
plataforma
Implementa melhores práticas de segurança
“Dados da sua aplicação seguros, disponíveis offline e sincronizados entre diferentes dispositivos”
Sincroniza dados do usuário entre as
plataformas e dispositivos
Gerencia usuários com identidade única entre diferentes provedores
Guest Sua própriaAutenticação
Cognito Code Snippet (Javascript)
var params = {AccountId : "98XXXXXX48490",RoleArn : "arn:aws:iam::982433XXXXXX90:role/Cognito_pairarchitecturecmsAuth_Role",IdentityPoolId : "us-east-1:4eXXXXXX40-16df-4ad8-a55f-c0a68616e585",Logins : {
'graph.facebook.com' : response.authResponse.accessToken}
};
AWS.config.region = 'us-east-1';AWS.config.credentials = new AWS.CognitoIdentityCredentials(params);
AWS.config.credentials.get(function(err) {if (!err) {
console.log("Cognito Identity Id: ” + AWS.config.credentials.identityId);}
});
ROUTE 53DYNAMOD
B
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
CM
S
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
DynamoDB
Serviço de banco NoSQL em nuvem
• Não-relacional
• Performance previsível
• Escalabilidade sem esforço
• Fácil administração
DynamoDB Code Snippet (Javascript)
var db = new AWS.DynamoDB();
var params = {KeyConditions : {
category_name : {ComparisonOperator : 'EQ',AttributeValueList : [ {
S : ‘Categoria1’} ]
}},TableName : 'pairarchitecture_items',ConsistentRead : true
};
db.query(params, function(err, data) {...
});
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
S
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
Lambda
Escalabilidade automática
Foco na lógica do negócio, não na infraestrutura. Suba seu código e deixe o Lambda fazer o resto.
Nenhuma Administração
Lambda escala a infraestrutura conforme necessário e você paga conforme usa
Traga seu próprio Código
“Execute funções stateless na nuvem e escale automaticamente sem ter de gerenciar nenhum servidor”
Lamba está começando com Javascript (node.js), mas em
breve teremos suporte a outras linguagens.
Lambda
Gatilhos a partir de Dados
Processamento de Streams de dados
Indexação &sincronização
Back-endsem servidor
IoT
Lambda Code Snippet (Node.js)var aws = require('aws-sdk');var AWS_REGION = "us-east-1";var CLOUDSEARCH_DOC_ENDPOINT = "doc-mbaasdemo- ... cloudsearch.amazonaws.com";var sdf1;var params = {query: '-foobar’, size: 10000};
exports.handler = function(event, context) {csd = new aws.CloudSearchDomain({endpoint: CLOUDSEARCH_DOC_ENDPOINT,region:
AWS_REGION});csd.search(params, function(err, data) {
data.hits.hit.forEach (function(item, index) {sdf1.push({type: "delete", id: item.id});
});});
csd.uploadDocuments({documents: JSON.stringify(sdf1),contentType: "application/json"}, function(err, data){
if (err) {console.log("Error Deleting Documents: ” + err);
});});
}
Lambda Code Snippet (Javascript)
var lambda = new AWS.Lambda();
thumb = fileName.split(".")[0] + "_thumb." + fileName.split(".")[1];
var params = {FunctionName : 'ThumbCreator',InvokeArgs : "{\"bucket\":\"pairarchitecture\",\"key\":\"" + "images/" + fileName +
"\"}”};
lambda.invokeAsync(params, function(err, data) {...
});
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
CloudSearch
• Engine de Busca 100% gerenciada
• Fácil setup e operação
• Escalável
• Confiável
• Alta Performance
• Não tenha mais que adivinhar capacidade
• Funcionalidades
• Busca facetada, sugestões, relevância, busca geo-localizada, suporte a multi-língua, etc.
• Custo
• Pague apenas aquilo que utilizar
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
COGNITO
AUTH
Cognito Code Snippet (Android)private Session.StatusCallback callback = new Session.StatusCallback() {
@Overridepublic void call(Session session, SessionState state, Exception exception) {
onSessionStateChange(session, state, exception);}
};
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);CognitoSyncClientManager.init(this);
}
private void onSessionStateChange(Session session, SessionState state, Exception exception) {if (state.equals(SessionState.OPENED)) {
setFacebookSession(session);}
}
private void setFacebookSession(Session session) {CognitoSyncClientManager.addLogins("graph.facebook.com”, session.getAccessToken());
}
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
COGNITO
AUTH
FAVORITES
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
AUTH
COGNITO SYNC STORE
(FAVORITES)
FAVORITES
SNS
COGNITO PUSH SYNC
COGNITO
SNS (Simple Notification Service)
Amazon SNSMobile Push
Cross-plataforma
Internet
Apple APNS
Google GCM
Amazon ADM
Windows WNS e MPNS
Baidu CP
Com o Amazon SNS, desenvolvedores podem mandar notificações push para múltiplas plataformas e usuários mobile ao redor do mundo
Celulares e Tablets Android
Celulares e Tablets Apple
Dispositivos Kindle
iOS
Dispositivos Windows Desktop e Windows Phone
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
SNS
COGNITO PUSH SYNC
COGNITO
AUTH
COGNITO SYNC STORE
(FAVORITES)
FAVORITES
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
SNS
SEA
RC
HIN
G
COGNITO PUSH SYNC
COGNITO
AUTH
COGNITO SYNC STORE
(FAVORITES)
FAVORITES
ROUTE 53
LAMBDA
DYNAMODB
CLOUDFRONT S3
COGNITO
EDITORWEB
BROWSER
AWS SDKJAVASCRIPT
LAMBDA CALL FOR THUMBNAIL CREATION
CM
STHUMBNAILS
BA
CK
EN
D (
MB
aaS
)
CATEGORIES AND ITEMS CREATION
AUTH
LAMBDA CALL FOR JSON + HTML PUBLISHING
AND INDEXING S3
THUMBNAILS
JSON + HTML
CLOUDSEARCH
IND
EX
IN
G
FR
ON
TEN
D
END USERWEB
BROWSER
AWS SDKJAVASCRIPT
END USERMOBILE (IOS)
AWS MOBILE SDKIOS
END USERMOBILE
(ANDROID)
AWS MOBILE SDK ANDROID
ROUTE 53
CLOUDFRONT
SNS
SEA
RC
HIN
G
COGNITO PUSH SYNC
MOBILE ANALYTIC
S
COGNITO
AUTH
COGNITO SYNC STORE
(FAVORITES)
FAVORITES
Mobile Analytics
Free Tier escalável e generoso
Foco em métricas que importam. Relatórios de utilização disponíveis a cada 60 minutos a partir
do recebimento dos dados
Rápido
Escale até bilhões de eventos por dia partir de
milhões de usuários
Tome posse dos seus dados
“Fácil de coletar, visualizar e interpretar os dados de uso da sua aplicação mobile em larga escala”
Dados coletados não são compartilhados,
agregados ou reutilizados.
Demo
Próximos passos
Comece a usar sem pagar
aws.amazon.com/free/
Blogshttps://aws.amazon.com/blogs/aws/
http://aws.typepad.com/brasil/
http://blogs.aws.amazon.com/application-management
http://blogs.aws.amazon.com/php/
http://blogs.aws.amazon.com/net/
http://ruby.awsblog.com/
http://mobile.awsblog.com/
http://java.awsblog.com/
http://blogs.aws.amazon.com/security/
https://medium.com/aws-activate-startup-blog
https://blogs.aws.amazon.com/bigdata/
https://aws.amazon.com/blogs/apn/
https://aws.amazon.com/blogs/compute/
http://sesblog.amazon.com/
Documentações (Getting Started)Amazon Route53:
http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html
Amazon CloudFront:
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarted.html
Amazon S3:
http://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html
Amazon Cognito
http://aws.amazon.com/documentation/cognito/
Amazon DynamoDB
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html
AWS Lambda
http://docs.aws.amazon.com/lambda/latest/dg/getting-started.html
Amazon CloudSerach
http://docs.aws.amazon.com/cloudsearch/latest/developerguide/getting-started.html
Amazon SNS
http://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html
Obrigado!
Fábio Silva
Henry Alvarado