© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Fábio Silva e Henry...

Post on 22-Apr-2015

107 views 0 download

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

Email

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/

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

silfabio@amazon.com

Henry Alvarado

gomhenry@amazon.com