AWS proporciona una gama de servicios que lo ayudan a desarrollar aplicaciones móviles que pueden escalarse a cientos de millones de usuarios y alcanzar a un público global. Con AWS, es posible comenzar rápidamente, garantizar un alto nivel de calidad con pruebas en dispositivos reales en la nube y medir y mejorar la participación de los usuarios.
2. Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Contenido de la tienda
Pruebas en Dispositivos
Entrega de contenido
Almacene los datos
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Envíe Push Notifications
Administre usuarios y proveedores de identidad
Sincronice entre dispositivos
Acceso seguro a recursos
de la nube
Realice pruebas en múltiples
dispositivos y sistemas operativos
Rastre el engagement
de usuarios activos
Ejecute código personalizado
sin necesidad de servidores
Almacene contenido generado
por los usuarios y compártelos
Entregue rápida y globalmente el contenido
Traiga nuevamente a los usuarios a su app
Al enviar mensajes confiablemente
Guarde y consulte rápidamente datos
NoSQL a través de usuarios y dispositivos
Registre logs de evento en tiempo real
y tome acciones rápido
3. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon DynamoDB
Amazon Lambda
Amazon SNS
Mobile Push
AWS Mobile SDK
Amazon Kinesis
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Contenido de la tienda
Pruebas en Dispositivos
Entrega de contenido
Almacene los datos
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Envíe Push Notifications
4. SDKs
Java Python (boto) PHP .NET Ruby Node.js
iOS Android AWS Toolkit for
Visual Studio
AWS Toolkit
for Eclipse
AWS Tools for
Windows
PowerShell
AWS CLI
JavaScript
5. AWS Mobile SDK
• SDKs para iOS y Android
• Conectores para los servicios de
AWS
• SDK para Unity
• Cross Platform Game
Development environment
• SDK para Xamarin
• Cross-Platform App Development
Framework para C#
iOS Android
7. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon DynamoDB
Amazon Lambda
Amazon SNS
Mobile Push
AWS Mobile SDK
Amazon Kinesis
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Contenido de la tienda
Pruebas en Dispositivos
Entrega de Contenido
Almacene los datos
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Envíe Push Notifications
8. • Autentica a sus usuarios
• Facebook, Google,
Amazon,Twitter, OpenID
• Anonymous
• Administra los usuarios y
sincroniza los datos a través de
múltiples dispositivos
• Permite la comunicación segura
con otros servicios de AWS
Amazon Cognito
Amazon
Cognito
9. Sincronice los datos a través de mutiles
dispositivos con Cognito
Sincronice
Game State
a través de SO y
dispositivos
State Transition
(ligue múltiples
cuentas)
Sincronice perfiles de usuarios
a través de SO, dispositivos
y Web
10. Proveedores
de Identidad
Identidades
únicasJose Ana Pedro
Any Device
Any Platform
Any AWS
Service
Ayuda a implementar las mejores
practicas de seguridad
Acceso seguro a cualquier servicios de AWS
desde un dispositivo móvil. Interacción
simplificada con AWS Identity and Access
Management.
Soporta Múltiples proveedores Log-In
Fácilmente se integra con la mayoría de los
proveedores de log-in para autenticación
Usuarios únicos vs. Dispositivos
Administre identidades únicas. Automáticamente
reconozca usuarios únicos a través de
dispositivos y plataformas.
Amazon Cognito Identity
Amazon
Mobile Analytics
Amazon
S3
Amazon
DynamoDB
Amazon
Kinesis
11. Amazon Cognito Flow
(Cualquier OpenID Connect Token)
Amazon Cognito ID
(Temp Credentials)
Amazon
DynamoDB
End Users
Desarrollador
App with
AWS Mobile
SDK
Access
to AWS
Services
Amazon Cognito
Identity Broker
User Name
Password
Amazon Cognito ID,
Temp Credentials
Amazon S3
Amazon Mobile
Analytics
Amazon Cognito
Sync Store
AWS
Management
Console
OIDC Token
Pool ID
Role ARNs
User Authentication
System
(Running on AWS or not)
OIDC Token
12. Amazon Cognito Flow
(Cualquier OpenID Connect Token)
Amazon Cognito ID
(Temp Credentials)
Amazon
DynamoDB
End Users
Desarrollador
App with
AWS Mobile
SDK
Access
to AWS
Services
Amazon Cognito
Identity Broker
Get OpenID Token
User Name
Password
Amazon Cognito ID,
Temp Credentials
Amazon S3
Amazon Mobile
Analytics
Amazon Cognito
Sync Store
AWS
Management
Console
OIDC Token
Pool ID
Role ARNs
User Authentication
System
(Running on AWS or not)
OIDC Token
OIDC Token
13. Amazon Cognito
Cloud Save & Sync
Datos de usuario
Almacenaje y
Sincronización
Cualquier
Plataforma
iOS/Android/FireOS
Almacene App Data, Preferencias y estado
Almacene datos y aplicaciones en la nube y después
descárguelas a partir del login
Cross-Device Cross-OS Sync
Sincronice los datos de usuarios y preferencias a
través de dispositivos con una sola línea de código
Trabaje Offline
Los datos siempre se almacenan primero el la BD
SQLite. Trabaja fácilmente cuando hay
intermitencia o sin conectividad.
k/v data
Identity Pool
Sin Back End
Cliente SDK sencillo que elimina la necesidad de
código en el lado del servidor
14. Inicializamos el cliente de Cognito
CognitoCachingCredentialsProvider cognitoProvider =
new CognitoCachingCredentialsProvider(
myActivity.getContext(), // obtengo el contexto para la actividad
"AWS_ACCOUNT_ID",
"COGNITO_IDENTITY_POOL_ID",
"arn:aws:iam::AWS_ACCOUNT_ID:role/UNAUTHENTICATED_ROLE",
"arn:aws:iam::AWS_ACCOUNT_ID:role/AUTHENTICATED_ROLE",
Regions.US_EAST_1
);
// Cree un service client con el proveedor
AmazonDynamoDB client = new AmazonDynamoDBClient(cognitoProvider);
15. Almacenamos y sincronizamos los datos
CognitoSyncManager syncClient = new
CognitoSyncManager(myActivity.getContext(),
COGNITO_POOL_ID, Regions.YOUR_REGION, cognitoProvider);
Dataset dataset = client.openOrCreateDataset("myDataset");
dataset.put("myKey", "my value");
String value = dataset.get("myKey");
dataset.remove("myKey");
dataset.synchronizeOnConnectivity(this, syncCallback);
16. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon DynamoDB
Amazon Lambda
Amazon SNS
Mobile Push
AWS Mobile SDK
Amazon Kinesis
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Contenido de la tienda
Pruebas en Dispositivos
Entrega de Contenido
Almacene los datos
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Envíe Push Notifications
17. Le permite controlar el acceso a sus recursos de AWS
• Cree usuarios, grupos y roles
• Control granular de acceso a través de políticas de IAM
• Controle quien puede hacer que en su ambiente de AWS
• Permita acceso con identidades sociales o publicas
• Fácilmente añada autenticación multi factor utilizando
tokens de hardware o apps de smartphone
Identity and Access Management (IAM)
19. Allow
Actions:
S3 Get/Put operations
Resource:
Only to a specific part
of bucket to that identity
{
"Effect": "Allow”,
"Action": ["s3:GetObject","s3:PutObject"],
"Resource": ["arn:aws:s3:::
myBucket/amazon/myapp/${cognito-identity.amazonaws.com:sub}"]
}
Allow
Actions:
DDB Get/Put operations
Resource:
Only to a specific cells in
the database
{
"Effect": "Allow”,
"Action": ["dynamodb:GetItem", "dynamodb:PutItem"],
"Resource" : [ "arn:aws:dynamodb:REGION:12345:table/TABLE_NAME”],
"Condition": {
"ForAllValues:StringEquals”:{
"dynamodb:LeadingKeys": ["${cognito-identity.amazonaws.com:sub}"],
"dynamodb:Attributes”: ["Wins","Losses”,"TopScore",”DateTime" ]
},
}
Políticas de restricción de acceso (Policy Variables)
20. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon DynamoDB
Amazon Lambda
Amazon SNS
Mobile Push
AWS Mobile SDK
Amazon Kinesis
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Contenido de la tienda
Pruebas en dispositivos
Entrega de contenido
Almacene datos
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Envíe Push Notifications
21. AWS Device Farm
• Pruebe su aplicación en dispositivos
reales en la nube de AWS
• Plataforma de pruebas completamente
administrada y escalable
• Múltiples y distintos modelos de
smartphone y tabletas disponibles
• Full built-in test suite
• Integración con custom frameworks
(ej. Appium, Calabash etc.)
AWS Device
Farm
22.
23. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon DynamoDB
Amazon Lambda
Amazon SNS
Mobile Push
AWS Mobile SDK
Amazon Kinesis
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Almacene contenido
Pruebas en dispositivos
Entrega de contenido
Almacene Datos
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Envié Push Notifications
24. Amazon Mobile Analytics
• Le permite recolectar, visualizar
y entender el uso de su
aplicación móvil
• Escala fácilmente a billones de
eventos por día
• Usted mantiene el control total y
la propiedad de los datos
Amazon Mobile
Analytics
25.
26. Obtenga el detalle dentro
de las acciones
especias de la app que
los usuarios realizan
Ejemplos
Rastree el numero de
Likes/Shares en la
aplicación de noticias
Abort rates de los
jugador por nivel
del juego
Numero de canciones
ejecutadas en un app
de música
Compras In-app
popularidad de ítems
Custom Events
27. Inicialice Mobile Analytics
// Dentro de la actividad
private static MobileAnalyticsManager analytics;
// Dentro de la actividad onCreate()
try {
AnalyticsConfig options = new AnalyticsConfig();
options.withAllowsWANDelivery(true);
analytics = MobileAnalyticsManager.getOrCreateInstance(
getApplicationContext(),
"YOU MOBILE ANALYTICS APP ID",
Regions.US_EAST_1,
cognitoProvider, // You need a Cognito credential provider
options
);
} catch(InitializationException ex) {
Log.e(this.getClass().getName(), "Failed to initialize Amazon Mobile Analytics", ex);
}
28. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon DynamoDB
Amazon Lambda
Amazon SNS
Mobile Push
AWS Mobile SDK
Amazon Kinesis
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Almacene el contenido
Pruebas en dispositivos
Entrega de contenido
Almacene Datos
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Envíe Push Notifications
29. AWS Lambda
Auto escalamiento
Foco en la lógica
negocio y no en la
infraestructura.
Sin administración
Lambda escala la
infraestructura
para igualar
cualquier rango
de eventos
Tu propio código
“Ejecute su código en la nube en respuesta a eventos y escale sin servidores
que administrar”
Escriba su código en
JavaScript o Java
30. AWS Lambda
• Código Stateless denominado Lambda
functions
• Invoque funciones Lambda directamente
desde su app móvil
• Trigger functions por eventos (state
transitions) en otros servicios:
• Un Nuevo archivo en su object storage
• Un Nuevo ítem en su base de datos NoSQL
• Un Nuevo mensaje en su servicio de notificaciones
Amazon
Lambda
31. Añadiendo Backend Lambda en su App
Inicialice LambdaFactory y defina la interface para las funciones
Llame la sincronización del dataset
Cree la función Lambda
lambda = new LambdaInvokerFactory(context, Regions.US_WEST_2, provider);
//interface
@LambdaFunction(functionName="cloudFunction”)
String localFunction(String nameInfo);
lambda.localFunction(“Hola desde “); // Esto tendrá de output “Hola desde Lambda”
exports.handler = function(event, context) {
context.done(null, event + 'Lambda'); // SUCCESS with message
};
32. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon DynamoDB
Amazon Lambda
Amazon SNS
Mobile Push
AWS Mobile SDK
Amazon Kinesis
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Contenido de la tienda
Pruebas en dispositivos
Entrega de contenido
Almacene datos
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Envíe Push Notifications
33. Amazon S3 y Amazon CloudFront
• Amazon S3
• Un object storage altamente disponible
• Diseñado para 99.999999999% de durabilidad
• Ofrece endpoints HTTP / HTTPS a los objetos
• Amazon CloudFront
• Red de Content Delivery con 53 ubicaciones
de frontera alrededor del mundo
• Caches content en ubicaciones de frontera
para disminuir las latencias
Amazon S3
Amazon
CloudFront
34. Amazon
KinesisAWS
Mobile
SDK
Mobile-Optimized Connectors (AWS Mobile SDK)
Amazon S3
Integrated AWS Mobile SDK
Optimized for native OS
Multipart upload media
Fault tolerant download
Automatic retries
Pause, resume, cancel functions
Generic batching system
handles intermittent network
connection
Optimize battery utilization
Amazon
DynamoDB
35. Amazon S3 Connector: Transfer Manager
S3 Connector
Multipart upload media (photos, videos, audio)
Fault tolerant download (e.g. assets)
No back end required
Automatic retries
Pause, resume, cancel functions
Optimized for native OS
36. Amazon S3 Connector: Transfer Manager in Android
// Creating the transfer manager
TransferManager = new TransferManager(credentialProvider);
// Upload image
Upload upload = transferManager.upload(BUCKET_NAME, fileName, file);
// Download image
Download download = transferManager.download(BUCKET_NAME, mKey,
file);
// Pause, and Resume
try {
PersistableDownload = download.pause();
//do something if we didn’t abort
} catch(PauseException e) {
//do something if we aborted
}
download = transferManager.resumeDownload(persistableDownload);
38. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon DynamoDB
Amazon Lambda
AWS Mobile SDK
Amazon Kinesis
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Contenido de la tienda
Pruebas en dispositivos
Entrega de contenido
Almacene datos
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Amazon SNS
Mobile Push
Envíe Push Notifications
39. Amazon SNS Mobile Push Notifications
• Amazon SNS es una
plataforma administrada,
cross-platform mobile
push intermediary service
• Completamente escala a
millones de dispositivos
• Permite crear topics (ej.
por geo, intereses, uso
patrones, etc.)
Amazon SNS
Apple APNS
Google GCM
Amazon ADM
Windows WNS and
MPNS
Baidu CP
Android Phones and Tablets
Apple iPhones and iPads
Kindle Fire Devices
Android Phones and Tablets in China
iOS
Windows Phone Devices
Amazon
SNS
41. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon Lambda
AWS Mobile SDK
Amazon Kinesis
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Contenido de la tienda
Pruebas en dispositivos
Entrega de contenido
Registre eventos en
tiempo real
Ejecute la lógica de
negocio
Amazon SNS
Mobile Push
Envíe Push Notifications
Amazon DynamoDB
Almacene datos
42. Amazon DynamoDB
Servicio administrado de base de datos NoSQL
• Modelo de datos Schemaless
• Rendimiento Consistente y con baja latencia
• Aprovisionamiento de throughput predecible
• Escalabilidad transparente
• Sin limite de almacenamiento
• Altamente durable y disponible
• Replicada en 3 ubicaciones
• Altamente Administrada y bajo costo
DynamoDBtabla
ítems
atributos
43. @DynamoDBTable(tableName = ”Usuario")
public static class Usuario {
private String hash, alias, avatar;
private int score;
@DynamoDBHashKey(attributeName = ”hash")
public String getHash() {
return hash;
}
public void setHash(String hash) {
this.hash = hash;
}
@DynamoDBAttribute(attributeName=”alias")
public String getalias() {
return alias;
}
...
hash alias avatar punt
aje
abce64 Oli4 s3://mybucket/av
1.jpg
1500
feru643 LoLZ s3://mybucket/lol
z_56.jpg
800
4568c5 L33t s3://otherbucket/
catface.png
750
Tabla: Usuario
Object Mapper Example - Class
44. // Create a user object
Usuario usuario = new Usuario();
note.setHash(”abce64”);
note.setAlias(”Oli4");
note.setAvatar(”s3://mybucket/av1.jpg");
note.setPuntaje(0);
// Save user object to DynamoDB
mapper.save(usuario);
// Update score and save user again
user.setPuntaje(user.getPuntaje()+100);
mapper.save(user);
// Load another user
User anotherUsuario = mapper.load(Usuario.class,”feru643”);
Object Mapper Example – Store and Update
45. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3
Amazon CloudFront
Amazon Lambda
AWS Mobile SDK
Autenticación y Sincr.
Autorización de acceso
Analice el comportamiento
Contenido de la tienda
Pruebas en dispositivos
Entrega de contenido
Ejecute la lógica de
negocio
Amazon SNS
Mobile Push
Envíe Push Notifications
Amazon DynamoDB
Almacene datos
Amazon Kinesis
Registre eventos en
tiempo real
46. Stream en tiempo real: Amazon Kinesis
• Procesamiento de datos en
tiempo real de stream distribuidos
• Capacidad elástico que permite
escalar hasta millones de eventos
por segundo
• Reaccione en tiempo real a
eventos de streaming
• Almacenamiento confiable del
stream replicado en 3 ubicaciones
Amazon Kinesis
49. Amazon API Gateway
• Servicio de RESTful API Gateway
completamente administrado y
escalable
• Potenciado por nuestra red de content
delivery vía nuestros 53 puntos de
frontera
• Protección DDoS y capacidades de
Throttling
Amazon API
Gateway
50. Amazon API Gateway
• Ofrece todos los métodos
comunes RESTful (GET, PUT,
POST etc.)
• Múltiples API stages que se
pueden definir(ej. dev, test, prod)
• Deployment sencillo entre
stages
• AWS Lambda, Amazon’s
Service APIs o su propia API
como backend para el código que
se ejecuta
Amazon
Lambda
Amazon API
Gateway
Amazon
EC2
AWS API
On-Prem
Server
One of the key benefits of Amazon Cognito is its Identity broker component. It creates a unique identifier and matches it when user’s login with any of the login providers. Developers have the flexibility to choose any login provider, in v1, we support G+, Amazon and Facebook and you can easily integrate using the SDK.
We focus on users and not login providers and manage the user preferences for that users.
Implementing AWS security best practices for accessing cloud resources with Amazon Cognito is easy. Amazon Cognito gives each app a set of temporary, limited privilege AWS credentials for each app user to access all AWS services.
With Amazon Cognito developers can synchronize application data across an end user’s devices with a single line of code.
With Amazon Cognito, developers can securely store application data, such as preferences and game state in the AWS cloud. With synchronized application data, developers can give your users a consistent, unified experience on their app across all of their mobile devices.
Developers can use Amazon Cognito directly from their mobile app without building or maintaining any backend infrastructure. Amazon Cognito handles secure application data storage and sync, enabling them to focus on their application experiences, instead of the heavy lifting of creating and managing a user application data sync solution.
It manages the complexity of conflict resolution and intermittent network connectivity by managing offline cache ensuring your application can always deliver a great user experience. Each data set in the Amazon Cognito sync store can be synchronized on all devices associated with an identity simply by calling the synchronize () method.
draft
Let’s look at the Account sign up process:
There is a website dedicated to helping customers understand how to get started on AWS. This site offers a number of introductory videos and step-by-step tutorials.
I want to point out that since AWS operates on utility based pricing, you will not be charged unless you start using our services. Signing up for an account does not cost you.
When you are ready to sign up for an account, you can go to http://aws.amazon.com and click on the button called “Sign Up”
To sign up for an account, you need a valid email address. You can use your exiting Amazon.com account based email address or create a new email account and use that to sign up for an AWS account.
On a subsequent page, you need to provide your contact info
For billing and payment, default payment instrument is CC. If you are interested in setting up for Invoice based payment, please contact an AWS sales rep and they can send you a special link.
After you provide billing information, a phone based verification is conducted to ensure that request is coming from a valid source.
On the last stage, you can select a support plan. If you are just playing around, select “Basic”, which is free.
Free Tier: To help new AWS customers get started, AWS offers a free usage tier. This free tier can be used for anything you want to run in the Cloud: launch new applications, test existing applications in the Cloud, or simply gain hands-on experience with AWS. Please refer to the link on the slide to see what you can do using the free tier.
Main account sign up page
Login credential setup page