SlideShare uma empresa Scribd logo
1 de 148
Baixar para ler offline
Delivering Media Mobile Apps
using the AWS Mobile &
Javascript SDKs
Adam Larter, Solutions Architect, Amazon Web Services
alarter@amazon.com
•  Presentation ~55 minutes
•  Q & A using the questions panel during the presentation
•  Reminder – please fill in the survey!
Housekeeping
•  Learn how you can deliver websites and applications that share
state across platforms and devices, using Amazon Cognito
•  Learn how to leverage the content repurposing,
storage and delivery capabilities of
Amazon Elastic Transcoder and Amazon S3
•  Learn how to create highly scalable
systems by decoupling application
tiers using Amazon SQS and
Amazon Elastic Beanstalk
Today’s Agenda
•  Learn how to send push notifications
to mobile devices using Amazon SNS
•  Learn how to use the AWS Mobile and
Javascript SDKs to create applications
that manage media
•  Learn how to use DynamoDB to create
a shared inventory for media assets
Today’s Agenda (continued)
In this session, we’ll be creating 5 Android apps
to demonstrate various features of AWS
How do we build mobile apps today?
Authenticate  users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
Deliver media
Store shared data
Stream real-time dataTrack Retention
Send push notifications
Manage users and
identity providers
Securely access
cloud resources
Sync user prefs
across devices
Track active users,
engagement
Manage funnels,
Campaign performances
Store user-generated photos
Media and share them
Automatically detect mobile devices
Deliver content quickly globally
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream
logs and take actions
quickly
Your
Mobile
App
Your mobile
application
Introducing AWS Mobile Services
Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector
AWS Global Infrastructure (11 Regions, 28 Availability Zones, 53 Edge Locations)
Core Building Block
Services
Mobile Optimized
Connectors
Mobile Optimized
Services
Your Mobile App, Game or Device App
AWS Mobile SDK, API Endpoints, Management Console
Compute Storage Networking Analytics Databases
Integrated SDK
Amazon Cognito
Amazon SNS Mobile Push
DynamoDB Connector
S3 Connector
SQS Connector
User identity &
data synchronization
service
Store any NoSQL data and
also map mobile OS specific
objects to DynamoDB tables
Powerful Cross-platform
Push notification service
Easily upload, download to S3 and
also pause, resume, and cancel
these operations
Access distributed buffering
and queuing service
AWS Mobile Services we’ll focus on today
Fully integrated AWS
mobile SDK
Cross-platform,
optimized for mobile
Automatically handles
intermittent and latent
network
AWS Mobile SDK
Reduced memory footprint
Common authentication
method across all services	
  
Authenticate  users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
Deliver media
Store shared data
Stream real-time dataTrack Retention
Send push notifications
Manage users and
identity providers
Securely access
cloud resources
Sync user prefs
across devices
Track active users,
engagement
Manage funnels,
Campaign performances
Store user-generated photos
Media and share them
Automatically detect mobile devices
Deliver content quickly globally
Bring users back to your app by sending
messages reliably
Store and query fast NoSQL data
across users and devices
Collect real-time clickstream
logs and take actions
quickly
Your
Mobile
App
Your mobile
application
Authenticate  users
Authorize access
Analyze User Behavior
Store and share media
Synchronize data
Deliver media
Store shared data
Stream real-time dataTrack Retention
Send push notifications
Amazon Cognito
(Identity broker)
AWS Identity and
Access Management
Amazon Cognito
(Sync)
Amazon Mobile
Analytics
Amazon Mobile
Analytics
Amazon S3
Transfer Manager
Amazon CloudFront
(Device Detection)
Amazon SNS
Mobile Push
Amazon DynamoDB
(Object Mapper)
Amazon Kinesis
(Recorder)
Your mobile
application
with the AWS
Mobile SDK
Let’s build a Media App!
What should it do?
Our Media App’s wish-list of features
q  Upload & Download media files to/from S3 buckets
q  Grant anonymous but secure access to AWS resources in our account
q  Grant authenticated access for users that log in via Public Identity Providers
q  Send push notifications to mobile devices
q  Store the media library inventory in the cloud so it can be queried by many users
q  Provide partitioned access to the media library based on Public and Private views
q  Synchronise user data across devices
q  Make all this available across devices (iOS, Android, Kindle) and web
q  Convert uploaded video files to various mobile/web formats
•  Goals:
•  User is anonymous – we don’t care who they are, treat them as ‘Public’ or ‘Guest’
•  Directly access AWS Simple Storage Service (S3) from the mobile application
•  We do not want to upload to a server and then have the server push the file to S3…
•  Requirements:
•  We need to authenticate the application on the mobile device
•  We do not want to bake the AWS credentials in our mobile app!
•  Even though users are anonymous, we still want to control access to AWS
First App: Basic Download/Upload App
Mobile App
S3 Bucket with
test media
Cognito Identity
First App: Basic Download/Upload App
Amazon Cognito
Granting ‘guest’ access to our
‘Public’ users for controlled access to AWS resources
User ID
(Temp
Credentials)
DynamoDB
End Users
Developer
App w/SDK
Access
to AWS Services
Cognito Identity
Broker
Login OAUTH/OpenID
Access Token
Cognito ID,
Temp
Credentials
S3
Mobile Analytics
Cognito Sync
Store
AWS
Management
Console
Access Token
Pool ID
Role ARNs
Amazon Cognito Security Architecture
Cognito Identity Example
Cognito Identity for Guests
Cognito assigns a unique identifier for each
device when a user is not logged on
Cognito Identity for Authenticated Users
Cognito assigns a unique identifier for each user
when they are authenticated. This will be the
same identifier for this user regardless of which
device they use
Cognito setup
Create a new Cognito Identity Pool
Create a new Cognito Identity Pool
Supplying public identity
providers is optional
For this demo, we will not be
supporting public identity
providers, so we leave them empty
Create a new Cognito Identity Pool
Enable guest access
For this demo, we will allow ‘anonymous access’
so that unauthenticated users can upload and
download from our S3 bucket
Create a new Cognito Identity Pool
Create IAM Roles
Create IAM roles for
this Cognito Identity
Pool. We will assign
tight security controls
to these roles later
Create a new Cognito Identity Pool
And assign a role for
unauthenticated access
Create a new Cognito Identity Pool
Starter code samples
Cognito conveniently
provides starter code for you
for Android, iOS and .Net!
This is an example of how
you can easily connect your
app to Cognito
Setup the required permissions in IAM
Setup the required permissions in IAM
Note the default policy
Setup the required permissions in IAM
Default policy created by
Cognito
By default, access to Cognito
Sync and Mobile Analytics is
permitted. This policy has been
generated by the Cognito Create
Identity Pool wizard
Media in our S3 bucket
S3 Bucket contents
Test file that we will be
downloading via the
TransferManager S3 connector
S3 Bucket ACLs
Note that the ACLs on the bucket
do not permit ‘Public’ so the asset
is not world-accessible
Media in our S3 bucket
Let’s give the anonymous ‘guest’ access to our
S3 bucket for read and write
Setup the required permissions in IAM
Use the Policy Generator
We’ll create our specific S3-
related policy using the Policy
Generator
Setup the required permissions in IAM
Specify our bucket
Our policy will specify access for
our specific bucket. We’ll allow
GetObject and PutObject
Setup the required permissions in IAM
Resulting Policy Document
Here’s what the resulting policy
looks like for allowing READ
access to any object in the
specific bucket, and the ability to
WRITE any object
We’re now set up – let’s start coding!
Instantiate Cognito Credentials Provider
Give Cognito your details
•  Account Id
•  Identity Pool ARN
•  UnAuthenticated access Role ARN
•  Authenticated access Role ARN
•  The Region you are running Cognito in
Implementation Note!
This ‘Cognito’ class is just
my convenience wrapper!
I have chosen to implement
this as a Singleton at
App-scope
Your implementation may
be different
The only important thing is
that you instantiate a
CognitoCachingCredentialsProvider
S3 Connector
•  Multipart upload media (photos, videos, audio)
•  Fault tolerant download (e.g. assets)
•  No backend required
•  Automatic retries
•  Pause, resume, cancel functions
•  Optimized for native OS
Amazon S3 Connector: Transfer Manager
Pass Cognito Credentials to the
AWS S3 Transfer Manager constructor
Pass the Cognito Provider to the TransferManager S3
connector to construct based on the Cognito-acquired
AWS credentials
Set up the download request and go!
Initiate the download
Demo App
First, the Application instantiates a
CognitoCachingCredentialsProvider()
Then initiates a download, followed by an upload
Our Media App’s wish-list of features
q  Upload & Download media files to/from S3 buckets
q  Grant anonymous but secure access to AWS resources in our account
q  Grant authenticated access for users that log in via Public Identity Providers
q  Send push notifications to mobile devices
q  Store the media library inventory in the cloud so it can be queried by many users
q  Provide partitioned access to the media library based on Public and Private views
q  Synchronise user data across devices
q  Make all this available across devices (iOS, Android, Kindle) and web
q  Convert uploaded video files to various mobile/web formats
Amazon Cognito
Now let’s authenticate our users
via public identity providers
•  Goals:
•  User can be anonymous or they can choose to sign-in via Facebook
•  If they are anonymous, we let them see a ‘Public’ view of the media library
•  If they choose to sign-in, we let them see their own ‘Private’ view of the library
•  Requirements:
•  We will use Cognito to help with the Public and Private authentication
•  Again, no AWS credentials in our mobile app!
•  We want to enforce Fine-Grained Access Control on the database views
Next app: Implement Public & Private views
For this demo, we’ll use Facebook as our
Public Identity Provider
Mobile App
DynamoDB
Next app: Implement Public & Private views
OAUTH/OpenID
Access Token
Cognito Identity
Broker
Cognito ID,
Temp
Credentials
Query for results
filtered by
OwnerId
•  Great how-to
https://developers.facebook.com/docs/
android/getting-started
Using Facebook in your App
Create an App on Facebook
Create an App on Facebook
Create an App on Facebook
Cognito needs the App ID
The App ID from Facebook is what
binds the Identity Pool to the
Facebook application
Configure Cognito to use Facebook
Add an Android application to FB
Add an Android application to FB
Add an Android application to FB
Generate your signing hash from your development
environment – check the documentation…
We’re now set up – let’s start coding!
Secure access to DynamoDB
Simply instantiate the
AmazonDynamoDBClient and
specify your Cognito provider as
the credential provider in the
constructor
Use the DynamoDB Mapper
Use the DynamoDB Mapper
annotations to decorate
your value object
Specify the HashKey,
RangeKey and the individual
Attributes in your value object
that should map to columns in
the DynamoDB table
Raw DynamoDB records example
Inventory is partitioned
based on the OwnerId
‘public’ is accessible
to the ‘guest’
Cognito Identity
Anything else must
match the identity of
the user accessing
the application
Assigned by
Cognito
automatically
Raw DynamoDB records example
Range Key
Each OwnerId
has multiple
Filenames
Hash Key
Each OwnerId
identifies a user by
their Cognito identity,
or ‘public’ if they didn’t
log on to Facebook
Querying the DynamoDB table from code
Querying the DynamoDB table is
simple!
The DynamoDB Mapper will map the
columns in the table to the fields in
your value object and return a typed
list of records ready to iterate
Demo App
Guest access
•  Connects to Cognito as anonymous user
•  Gets AWS token and uses that to instantiate
a DynamoDB client
•  Queries DynamoDB using the key ‘public’
Authenticated access
•  Gets token from Facebook
•  Passes token to Cognito
•  Impersonates authenticated user
•  Queries DynamoDB using the key that matches
the Cognito Identity of this user
Raw DynamoDB records example
Inventory is partitioned
based on the OwnerId
‘public’ is accessible
to the ‘guest’
Cognito Identity
Anything else must
match the identity of
the user accessing
the application
FGAC on DynamoDB using IAM
Fine-Grained Access Control (FGAC)
•  Restrict which Actions can be called by the user
•  Restrict which DynamoDB Tables can be accessed by the user
•  Restrict which rows in the table are accessible by the user
•  Control which fields are accessible in the query results
FGAC on DynamoDB using IAM
Control the actions the user
can invoke
The “Unauthenticated”
Role Policy
FGAC on DynamoDB using IAM
Control the DynamoDB Table
the user can access
The “Unauthenticated”
Role Policy
FGAC on DynamoDB using IAM
Restrict the Rows in the DynamoDB
table the user can access
The “Unauthenticated”
Role Policy
FGAC on DynamoDB using IAM
Use the Cognito Id for this user to restrict
the rows that will be accessible to the user
The “Authenticated”
Role Policy
Our Media App’s wish-list of features
q  Upload & Download media files to/from S3 buckets
q  Grant anonymous but secure access to AWS resources in our account
q  Grant authenticated access for users that log in via Public Identity Providers
q  Send push notifications to mobile devices
q  Store the media library inventory in the cloud so it can be queried by many users
q  Provide partitioned access to the media library based on Public and Private views
q  Synchronise user data across devices
q  Make all this available across devices (iOS, Android, Kindle) and web
q  Convert uploaded video files to various mobile/web formats
Amazon SNS
Push Notifications
Each platform works differently, and push gets even more complex as you
scale to support millions of devices.
Cloud App
Platform Services Mobile Apps
SNS application targets
Amazon SNS
Cross-platform

Mobile Push 
Apple APNS
Google GCM
Amazon ADM
Windows WNS and MPNS
Baidu CP
With Amazon SNS, developers can send push notifications on multiple
platforms and reach mobile users around the world
Android Phones and Tablets
Apple iPhones and iPads
Kindle Fire Devices
Android Phones and Tablets in China
Windows Desktop and Phones
SNS application targets
Your application

back-end
•  Goals:
•  Application automatically registers with Google Cloud Messaging (GCM)
•  The device registration Id is then sent to SNS to register as a device endpoint
•  The application then subscribes that device endpoint to a well-known SNS topic
This topic is shared by all other devices using the application
•  The application then confirms SNS Push Notifications are working by sending
a message to itself via SNS. The user sees a pop-up message.
•  Later, whenever a message is sent to the shared SNS Topic,
all devices subscribed receive a pop-up notification
Next App: SNS Push Notification App
Mobile App
Next App: SNS Push Notification App
SNS Topic
SNS Application
ENDPOINT APP
TOPIC
Cognito
Create Platform
Endpoint
Subscribe to topic
Publish test
message to our
Endpoint
Push notification
from GCM
SNS
Setup Amazon SNS
On the SNS Dashboard, create a new Topic
On the SNS Dashboard, create a new Topic
Note the Topic’s ARN
We will need this in our code to
subscribe the device to the topic
so we can receive notifications
On the SNS Dashboard, create a new Topic
Create a Google API Project
and obtain the Google Project ID	
  
Enable GCM for Android
Create the Server API Key
Obtain the Server API Key from Google
On the SNS Dashboard, create a new App
Specify the API Key you got from Google
Note the ARN for this SNS Application
We’re now set up – let’s start coding!
Instantiate Cognito Credentials Provider
Give Cognito your details
•  Account Id
•  Identity Pool ARN
•  UnAuthenticated access Role ARN
•  Authenticated access Role ARN
•  The Region you are running Cognito in
Again, this ‘Cognito’ class is just my convenience wrapper
implemented as a Singleton
Instantiate SNS using Credentials from Cognito
Get the device registration ID from GCM
We’re requesting the device
identifier/token for this unique
device, against the Google
Project Id we created earlier
And register this device with the SNS App
The ‘deviceIdentifier’
is the device
token returned
from GCM for
this unique
device
Finally, subscribe the endpoint to the Topic
The endpoint is the ARN you got
back from the previous call to
getEndpointArn()
Demo App
At startup, we register this device
with the SNS Application
Then we subscribe this device
Endpoint to the global SNS Topic
We then send a test message from
the device to ourselves to confirm
the round trip is working
If we subsequently publish to the
global SNS Topic, all devices
subscribed will be notified
Our Media App’s wish-list of features
q  Upload & Download media files to/from S3 buckets
q  Grant anonymous but secure access to AWS resources in our account
q  Grant authenticated access for users that log in via Public Identity Providers
q  Send push notifications to mobile devices
q  Store the media library inventory in the cloud so it can be queried by many users
q  Provide partitioned access to the media library based on Public and Private views
q  Synchronise user data across devices
q  Make all this available across devices (iOS, Android, Kindle) and web
q  Convert uploaded video files to various mobile/web formats
How did we initiate the
sending of the Push Notification to the
global SNS Topic?
But wait!
Demo web page to send Push Notifications
Plain old Javascript and HTML!
The website is a standard HTML site with Javascript. It is
being served from S3, so no back-end servers
The magic comes from the AWS Javascript SDK
Demo web page to send Push Notifications
Topic ARN
This is the topic we subscribed
our application to when
it started up
Cognito Role
This is the IAM role we want to use –
we’re using the unauthenticated ‘guest’
role in this demo
Cognito Identity Pool ID
This is the specific Cognito pool
we want to use for authentication
Demo web page to send Push Notifications
Demo web page to send Push Notifications
Our Media App’s wish-list of features
q  Upload & Download media files to/from S3 buckets
q  Grant anonymous but secure access to AWS resources in our account
q  Grant authenticated access for users that log in via Public Identity Providers
q  Send push notifications to mobile devices
q  Store the media library inventory in the cloud so it can be queried by many users
q  Provide partitioned access to the media library based on Public and Private views
q  Synchronise user data across devices
q  Make all this available across devices (iOS, Android, Kindle) and web
q  Convert uploaded video files to various mobile/web formats
Amazon Cognito
Sharing data between devices
•  Goals:
•  User is authenticated with Facebook
•  Each time they modify gadgets in the app, the state of the
gadgets is synchronized with all other devices
using the application (for that user account)
•  Verify these shared data changes in a companion web page, where the
user is also authenticated with Facebook, and is the same user principal
Next App: Shared application data
Add a Web application to FB
Add a Web application to FB
S3 bucket name
We’re using S3 to serve the web site in this example, but
you can use CloudFront, or EC2, or use a CNAME
Javascript code to read Cognito Sync Data
Instantiate the CognitoSync object
It will inherit the Cognito credentials from those we obtained
earlier from our call to CognitoIdentityCredentials()
Javascript code to read Cognito Sync Data
Specify our parameters
We need to specify the DatasetName that we want to connect to,
and the Cognito Identity information as shown
Javascript code to read Cognito Sync Data
Call CognitoSync::listRecords()
…and provide our params and a
callback
Javascript code to read Cognito Sync Data
OnSuccess()
…iterate the results and do something
interesting with the data records
Demo App Web Page
The web page has access
to the shared data when
authenticated as the
Facebook User
Mobile application
…and the mobile
application has access to
the same shared data if
the user is logged on to
Facebook as the same
user
Our Media App’s wish-list of features
q  Upload & Download media files to/from S3 buckets
q  Grant anonymous but secure access to AWS resources in our account
q  Grant authenticated access for users that log in via Public Identity Providers
q  Send push notifications to mobile devices
q  Store the media library inventory in the cloud so it can be queried by many users
q  Provide partitioned access to the media library based on Public and Private views
q  Synchronise user data across devices
q  Make all this available across devices (iOS, Android, Kindle) and web
q  Convert uploaded video files to various mobile/web formats
Media Repurposing with the
Elastic Transcoder
•  Goals:
•  User can be an anonymous Guest user and share inventory with all other guest users
•  User can authenticate with Facebook and see their own inventory
•  User can capture video and upload it to their private inventory, or the public inventory
•  Media uploaded is converted into adaptive bitrate formats and thumbnails for preview
•  Video can be replayed via CloudFront by touching on the item
•  Items can be deleted from the inventory by touching them
Our Final App: Media Manager app
Mobile App
DynamoDB
S3 Upload Bucket
App Architecture - Upload
Cognito Identity
Elastic Beanstalk – Worker Tier
SQS Queue
Elastic
Transcoder
Auto-scaling
Worker Instances
S3 Output Bucket
Mobile App
DynamoDB
App Architecture - Delivery
Elastic Beanstalk – Worker Tier
SQS Queue
Elastic
Transcoder
Auto-scaling
Worker Instances
S3 Output Bucket
CloudFront
Distribution
Adaptive bitrate
video stream
Cognito Identity
Mobile App
DynamoDB
App Architecture – On Delete
Elastic Beanstalk – Worker Tier
SQS Queue
Media Deletion
Long-running task
performed
asynchronously from the
user’s perspective
Auto-scaling
Worker Instances
S3 Media
Storage Bucket
Set up transcode pipeline
On Completion Event
Elastic Transcoder notifies this SNS topic when
the transcode is complete. We then forward
the notification to our Worker Tier queue.
Create transcode jobs via Java SDK
Specify the outputs
We are using various presets to create our
transcode outputs, including thumbnails
Create an HLS playlist
HLS is the streaming format we will use in this
demonstration app
Create the job
Call the ETS API to create the
job
How do we deploy our Worker Tier?
We’ll use Elastic Beanstalk
Create Elastic Beanstalk Application
using the eb tool from the commandline
Provide your credentials
Use the Access Key and
Secret Key obtained from
the IAM Console
Create Elastic Beanstalk Application
using the eb tool from the commandline
Choose your region
We’ll use us-east-1
Create Elastic Beanstalk Application
using the eb tool from the commandline
Specify names
Provide a name for your
application and a name for the
environment (eg: Production)
Create Elastic Beanstalk Application
using the eb tool from the commandline
Specify the Tier
We’ll be using a Worker Tier
that manages reading from
the SQS queue for us
Create Elastic Beanstalk Application
using the eb tool from the commandline
Choose the stack
For this demo, we will be
using Java 7 in a Tomcat
container
Create Elastic Beanstalk Application
using the eb tool from the commandline
Select environment type
We’ll use a Load Balanced
configuration
Create Elastic Beanstalk Application
using the eb tool from the commandline
Create an RDS DB?
We don’t need an RDS
database so we skip this
Create Elastic Beanstalk Application
using the eb tool from the commandline
Finally, choose a Role
Select an IAM Role for
instances in this Worker Tier
to run in
Now we have our Elastic Beanstalk
Application set up, let’s deploy into it
Build and deploy to Elastic Beanstalk
using the AWS CLI tool from the commandline
Build WAR
We’re using Maven to build
our WAR
Build and deploy to Elastic Beanstalk
using the AWS CLI tool from the commandline
Push WAR to S3
We push the resulting WAR
file to our deployment bucket
Build and deploy to Elastic Beanstalk
using the AWS CLI tool from the commandline
Create Application Version
Create a new version for our
Elastic Beanstalk application
Build and deploy to Elastic Beanstalk
using the AWS CLI tool from the commandline
Update Environment Version
Update the running version on
our application’s environment
Final App
Our Media App’s wish-list of features
q  Upload & Download media files to/from S3 buckets
q  Grant anonymous but secure access to AWS resources in our account
q  Grant authenticated access for users that log in via Public Identity Providers
q  Send push notifications to mobile devices
q  Store the media library inventory in the cloud so it can be queried by many users
q  Provide partitioned access to the media library based on Public and Private views
q  Synchronise user data across devices
q  Make all this available across devices (iOS, Android, Kindle) and web
q  Convert uploaded video files to various mobile/web formats
New Service Announcement:
Amazon Lambda
q AWS Lambda is a compute service that runs your code in response to events
and automatically manages the compute resources for you
q AWS Lambda starts running your code within milliseconds of an event such as
a media file uploaded to S3
q With AWS Lambda you pay only for the requests served and the compute time
required to run your code
q Lambda runs your code on high-availability compute infrastructure
q All you need to do is to provide the code to execute in response to an event
Introducing: Amazon Lambda
Mobile App
DynamoDB
S3 Upload Bucket
Using Lambda - Upload
Cognito Identity Elastic
Transcoder
S3 Output Bucket
Lambda	
  func&on	
  to	
  submit	
  
transcode	
  job	
  to	
  Elas&c	
  
Transcoder	
  
With Lambda, there is no need to run your own
fleet of compute instances to implement
our media application!
q With Lambda you do not have to provision your own instances
q At launch AWS Lambda supports code written in Node.js
(Other language options will come)
q Available now in Preview to all customers
Amazon Lambda
We covered a lot of ground
in this deep-dive session!
Amazon Cognito
Amazon SNS Mobile Push
DynamoDB Connector
S3 Connector
SQS Connector
User identity &
data synchronization
service
Store any NoSQL data and
also map mobile OS specific
objects to DynamoDB tables
Powerful Cross-platform
Push notification service
Easily upload, download to S3 and
also pause, resume, and cancel
these operations
Access distributed buffering
and queuing service
AWS Mobile Services
Amazon S3
Amazon Elastic Transcode Service
Amazon CloudFront
Amazon Elastic Beanstalk
Amazon Identity and Access Management
Online file storage
web service
Content Delivery Network
(CDN)
Highly scalable,
media transcoding
in the cloud
Platform as a Service (PaaS)
Securely control access to
AWS services and resources
for your users
AWS Services & Features
Fully integrated AWS
mobile SDK
Cross-platform,
optimized for mobile
Automatically handles
intermittent and latent
network
AWS Mobile SDK
Reduced memory footprint
Common authentication
method across all services	
  
Online	
  Labs	
  |	
  Training	
  
Gain	
  confidence	
  and	
  hands-­‐on	
  
experience	
  with	
  AWS.	
  Watch	
  free	
  
Instruc&onal	
  Videos	
  and	
  explore	
  Self-­‐
Paced	
  Labs	
  
Instructor	
  Led	
  Classes	
  	
  
Learn	
  how	
  to	
  design,	
  deploy	
  and	
  operate	
  
highly	
  available,	
  cost-­‐effec&ve	
  and	
  
secure	
  applica&ons	
  on	
  AWS	
  in	
  courses	
  
led	
  by	
  qualified	
  AWS	
  instructors	
  
Validate	
  your	
  technical	
  exper&se	
  
with	
  AWS	
  and	
  use	
  prac&ce	
  exams	
  
to	
  help	
  you	
  prepare	
  for	
  AWS	
  
Cer&fica&on	
  
AWS	
  Cer:fica:on	
  	
  
h=p://aws.amazon.com/training	
  	
  
Thank	
  You	
  

Mais conteúdo relacionado

Mais procurados

Cloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSCloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSDanilo Poccia
 
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...Amazon Web Services
 
Journey Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social AppsJourney Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social AppsAmazon Web Services
 
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...Amazon Web Services
 
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)Amazon Web Services
 
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...Amazon Web Services
 
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...Amazon Web Services
 
Build Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile ServicesBuild Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile ServicesAmazon Web Services
 
Integrating an App with Amazon Web Services SimpleDB - A Matter of Choices
Integrating an App with Amazon Web Services SimpleDB - A Matter of ChoicesIntegrating an App with Amazon Web Services SimpleDB - A Matter of Choices
Integrating an App with Amazon Web Services SimpleDB - A Matter of ChoicesMark Maslyn
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesAmazon Web Services
 
Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps Amazon Web Services
 
(MBL202) Mobile State of the Union: Mobile Apps Powered by AWS
(MBL202) Mobile State of the Union: Mobile Apps Powered by AWS(MBL202) Mobile State of the Union: Mobile Apps Powered by AWS
(MBL202) Mobile State of the Union: Mobile Apps Powered by AWSAmazon Web Services
 
Mobile App Development with Amazon Web Services Mobile Hub
Mobile App Development with Amazon Web Services Mobile HubMobile App Development with Amazon Web Services Mobile Hub
Mobile App Development with Amazon Web Services Mobile HubAmazon Web Services
 
Building Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile AppsBuilding Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile AppsDanilo Poccia
 
Add User Sign in and Management to your Apps with Amazon Cognito
Add User Sign in and Management to your Apps with Amazon CognitoAdd User Sign in and Management to your Apps with Amazon Cognito
Add User Sign in and Management to your Apps with Amazon CognitoAmazon Web Services
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsDanilo Poccia
 

Mais procurados (19)

Mobile applicationdevelopment
Mobile applicationdevelopmentMobile applicationdevelopment
Mobile applicationdevelopment
 
Cloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWSCloud-powered Cross-platform Mobile Apps on AWS
Cloud-powered Cross-platform Mobile Apps on AWS
 
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...
Build Your Mobile App Faster with AWS Mobile Services (Cognito, Lambda, SNS, ...
 
Journey Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social AppsJourney Through the Cloud - Mobile & Social Apps
Journey Through the Cloud - Mobile & Social Apps
 
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
AWS Mobile Services: Amazon Cognito - Identity Broker and Synchronization Ser...
 
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
Build Your Mobile App Faster with AWS Mobile Services (Part 1 - AWS)
 
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
Engage your users with Amazon SNS Mobile Push (Now with Broadcast) - Jinesh V...
 
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
AWS April Webinar Series - Easily Build and Scale Mobile Apps with AWS Mobile...
 
Build Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile ServicesBuild Your Mobile App with AWS Mobile Services
Build Your Mobile App with AWS Mobile Services
 
Integrating an App with Amazon Web Services SimpleDB - A Matter of Choices
Integrating an App with Amazon Web Services SimpleDB - A Matter of ChoicesIntegrating an App with Amazon Web Services SimpleDB - A Matter of Choices
Integrating an App with Amazon Web Services SimpleDB - A Matter of Choices
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
 
Building mobile apps on AWS
Building mobile apps on AWSBuilding mobile apps on AWS
Building mobile apps on AWS
 
Build Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile ServicesBuild Your Mobile App Faster with AWS Mobile Services
Build Your Mobile App Faster with AWS Mobile Services
 
Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps Journey Through the Cloud - Social & Mobile Apps
Journey Through the Cloud - Social & Mobile Apps
 
(MBL202) Mobile State of the Union: Mobile Apps Powered by AWS
(MBL202) Mobile State of the Union: Mobile Apps Powered by AWS(MBL202) Mobile State of the Union: Mobile Apps Powered by AWS
(MBL202) Mobile State of the Union: Mobile Apps Powered by AWS
 
Mobile App Development with Amazon Web Services Mobile Hub
Mobile App Development with Amazon Web Services Mobile HubMobile App Development with Amazon Web Services Mobile Hub
Mobile App Development with Amazon Web Services Mobile Hub
 
Building Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile AppsBuilding Cloud-Powered Mobile Apps
Building Cloud-Powered Mobile Apps
 
Add User Sign in and Management to your Apps with Amazon Cognito
Add User Sign in and Management to your Apps with Amazon CognitoAdd User Sign in and Management to your Apps with Amazon Cognito
Add User Sign in and Management to your Apps with Amazon Cognito
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile Apps
 

Destaque

Intro to AWS: EC2 & Compute Services
Intro to AWS: EC2 & Compute ServicesIntro to AWS: EC2 & Compute Services
Intro to AWS: EC2 & Compute ServicesAmazon Web Services
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosAmazon Web Services LATAM
 
Benefícios e melhores práticas no uso do Amazon Redshift
Benefícios e melhores práticas no uso do Amazon RedshiftBenefícios e melhores práticas no uso do Amazon Redshift
Benefícios e melhores práticas no uso do Amazon RedshiftAmazon Web Services LATAM
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSAmazon Web Services LATAM
 
Getting Started with your User Pools in Amazon Cognito - AWS June 2016 Webina...
Getting Started with your User Pools in Amazon Cognito - AWS June 2016 Webina...Getting Started with your User Pools in Amazon Cognito - AWS June 2016 Webina...
Getting Started with your User Pools in Amazon Cognito - AWS June 2016 Webina...Amazon Web Services
 
Introduction to Microsoft on AWS
Introduction to Microsoft on AWS Introduction to Microsoft on AWS
Introduction to Microsoft on AWS Amazon Web Services
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosAmazon Web Services LATAM
 
Ask the Trainer - Treinamentos e Certificações da AWS
Ask the Trainer - Treinamentos e Certificações da AWSAsk the Trainer - Treinamentos e Certificações da AWS
Ask the Trainer - Treinamentos e Certificações da AWSAmazon Web Services LATAM
 
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game GloballyBehind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game GloballyJames Gwertzman
 
AWS re:Invent 2016: AWS Customers Saving Lives with Mobile and IoT Technology...
AWS re:Invent 2016: AWS Customers Saving Lives with Mobile and IoT Technology...AWS re:Invent 2016: AWS Customers Saving Lives with Mobile and IoT Technology...
AWS re:Invent 2016: AWS Customers Saving Lives with Mobile and IoT Technology...Amazon Web Services
 

Destaque (20)

Intro to AWS: EC2 & Compute Services
Intro to AWS: EC2 & Compute ServicesIntro to AWS: EC2 & Compute Services
Intro to AWS: EC2 & Compute Services
 
Almacenamiento en la nube con AWS
Almacenamiento en la nube con AWSAlmacenamiento en la nube con AWS
Almacenamiento en la nube con AWS
 
Comenzando con AWS Mobile Services
Comenzando con AWS Mobile ServicesComenzando con AWS Mobile Services
Comenzando con AWS Mobile Services
 
Bases de datos en la nube con AWS
Bases de datos en la nube con AWSBases de datos en la nube con AWS
Bases de datos en la nube con AWS
 
Contruyendo tu primera aplicación con AWS
Contruyendo tu primera aplicación con AWSContruyendo tu primera aplicación con AWS
Contruyendo tu primera aplicación con AWS
 
Contruyendo tu primera aplicación con AWS
Contruyendo tu primera aplicación con AWSContruyendo tu primera aplicación con AWS
Contruyendo tu primera aplicación con AWS
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
Benefícios e melhores práticas no uso do Amazon Redshift
Benefícios e melhores práticas no uso do Amazon RedshiftBenefícios e melhores práticas no uso do Amazon Redshift
Benefícios e melhores práticas no uso do Amazon Redshift
 
Compute Services con AWS
Compute Services con AWSCompute Services con AWS
Compute Services con AWS
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
 
EC2 Computo en la Nube
EC2 Computo en la NubeEC2 Computo en la Nube
EC2 Computo en la Nube
 
Bases de datos en la nube con AWS
Bases de datos en la nube con AWSBases de datos en la nube con AWS
Bases de datos en la nube con AWS
 
Getting Started with your User Pools in Amazon Cognito - AWS June 2016 Webina...
Getting Started with your User Pools in Amazon Cognito - AWS June 2016 Webina...Getting Started with your User Pools in Amazon Cognito - AWS June 2016 Webina...
Getting Started with your User Pools in Amazon Cognito - AWS June 2016 Webina...
 
Introduction to Microsoft on AWS
Introduction to Microsoft on AWS Introduction to Microsoft on AWS
Introduction to Microsoft on AWS
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
Ask the Trainer - Treinamentos e Certificações da AWS
Ask the Trainer - Treinamentos e Certificações da AWSAsk the Trainer - Treinamentos e Certificações da AWS
Ask the Trainer - Treinamentos e Certificações da AWS
 
Almacenamiento en la nube con AWS
Almacenamiento en la nube con AWSAlmacenamiento en la nube con AWS
Almacenamiento en la nube con AWS
 
Mobile on AWS
Mobile on AWSMobile on AWS
Mobile on AWS
 
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game GloballyBehind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
 
AWS re:Invent 2016: AWS Customers Saving Lives with Mobile and IoT Technology...
AWS re:Invent 2016: AWS Customers Saving Lives with Mobile and IoT Technology...AWS re:Invent 2016: AWS Customers Saving Lives with Mobile and IoT Technology...
AWS re:Invent 2016: AWS Customers Saving Lives with Mobile and IoT Technology...
 

Semelhante a Delivering Mobile Apps Using AWS Mobile Services

Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKsDay 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKsAmazon Web Services
 
Building Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit DiublinBuilding Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit DiublinAmazon Web Services
 
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 MobileAWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 MobileAmazon Web Services
 
AWS Webinar - 201 Developing mobile apps with AWS
AWS Webinar - 201 Developing mobile apps with AWSAWS Webinar - 201 Developing mobile apps with AWS
AWS Webinar - 201 Developing mobile apps with AWSAmazon Web Services
 
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...Amazon Web Services
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsDanilo Poccia
 
amazon-cognito-auth-in-minutes
amazon-cognito-auth-in-minutesamazon-cognito-auth-in-minutes
amazon-cognito-auth-in-minutesVladimir Budilov
 
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDBAmazon Web Services
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSAmazon Web Services
 
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍Amazon Web Services Korea
 
02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_shortCodemotion
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSAmazon Web Services
 
Developing Mobile Services on AWS
Developing Mobile Services on AWSDeveloping Mobile Services on AWS
Developing Mobile Services on AWSAmazon Web Services
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub OverviewDanilo Poccia
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSAmazon Web Services
 
Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Amazon Web Services
 

Semelhante a Delivering Mobile Apps Using AWS Mobile Services (20)

Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKsDay 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
Day 2 - Delivering Media Mobile Apps Using the AWS Mobile & Javascript SDKs
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
Mobile Application Development
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
 
Building Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit DiublinBuilding Mobile Apps on AWS at Websummit Diublin
Building Mobile Apps on AWS at Websummit Diublin
 
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 MobileAWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
AWS Cloud Kata 2014 | Jakarta - 2-2 Mobile
 
Building mobile apps on aws
Building mobile apps on awsBuilding mobile apps on aws
Building mobile apps on aws
 
Amazon Cognito
Amazon CognitoAmazon Cognito
Amazon Cognito
 
AWS Webinar - 201 Developing mobile apps with AWS
AWS Webinar - 201 Developing mobile apps with AWSAWS Webinar - 201 Developing mobile apps with AWS
AWS Webinar - 201 Developing mobile apps with AWS
 
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
(MBL302) Mastering Synchronization Across Mobile Devices, Login Providers, an...
 
Building Cloud-powered Mobile Apps
Building Cloud-powered Mobile AppsBuilding Cloud-powered Mobile Apps
Building Cloud-powered Mobile Apps
 
amazon-cognito-auth-in-minutes
amazon-cognito-auth-in-minutesamazon-cognito-auth-in-minutes
amazon-cognito-auth-in-minutes
 
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWS
 
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
 
02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short02 cloud poweredmobileappsonaws_short
02 cloud poweredmobileappsonaws_short
 
Memulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWSMemulai Perjalanan Cloud Anda dengan AWS
Memulai Perjalanan Cloud Anda dengan AWS
 
Developing Mobile Services on AWS
Developing Mobile Services on AWSDeveloping Mobile Services on AWS
Developing Mobile Services on AWS
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
 
Serverless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWSServerless Geospatial Mobile Apps with AWS
Serverless Geospatial Mobile Apps with AWS
 
Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games Build and Deploy Your Mobile Games
Build and Deploy Your Mobile Games
 

Mais de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mais de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Último

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Delivering Mobile Apps Using AWS Mobile Services

  • 1.
  • 2.
  • 3. Delivering Media Mobile Apps using the AWS Mobile & Javascript SDKs Adam Larter, Solutions Architect, Amazon Web Services alarter@amazon.com
  • 4. •  Presentation ~55 minutes •  Q & A using the questions panel during the presentation •  Reminder – please fill in the survey! Housekeeping
  • 5. •  Learn how you can deliver websites and applications that share state across platforms and devices, using Amazon Cognito •  Learn how to leverage the content repurposing, storage and delivery capabilities of Amazon Elastic Transcoder and Amazon S3 •  Learn how to create highly scalable systems by decoupling application tiers using Amazon SQS and Amazon Elastic Beanstalk Today’s Agenda
  • 6. •  Learn how to send push notifications to mobile devices using Amazon SNS •  Learn how to use the AWS Mobile and Javascript SDKs to create applications that manage media •  Learn how to use DynamoDB to create a shared inventory for media assets Today’s Agenda (continued)
  • 7. In this session, we’ll be creating 5 Android apps to demonstrate various features of AWS
  • 8. How do we build mobile apps today?
  • 9. Authenticate  users Authorize access Analyze User Behavior Store and share media Synchronize data Deliver media Store shared data Stream real-time dataTrack Retention Send push notifications Manage users and identity providers Securely access cloud resources Sync user prefs across devices Track active users, engagement Manage funnels, Campaign performances Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQL data across users and devices Collect real-time clickstream logs and take actions quickly Your Mobile App Your mobile application
  • 10. Introducing AWS Mobile Services Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push Kinesis Connector DynamoDB Connector S3 Connector SQS Connector SES Connector AWS Global Infrastructure (11 Regions, 28 Availability Zones, 53 Edge Locations) Core Building Block Services Mobile Optimized Connectors Mobile Optimized Services Your Mobile App, Game or Device App AWS Mobile SDK, API Endpoints, Management Console Compute Storage Networking Analytics Databases Integrated SDK
  • 11. Amazon Cognito Amazon SNS Mobile Push DynamoDB Connector S3 Connector SQS Connector User identity & data synchronization service Store any NoSQL data and also map mobile OS specific objects to DynamoDB tables Powerful Cross-platform Push notification service Easily upload, download to S3 and also pause, resume, and cancel these operations Access distributed buffering and queuing service AWS Mobile Services we’ll focus on today
  • 12. Fully integrated AWS mobile SDK Cross-platform, optimized for mobile Automatically handles intermittent and latent network AWS Mobile SDK Reduced memory footprint Common authentication method across all services  
  • 13. Authenticate  users Authorize access Analyze User Behavior Store and share media Synchronize data Deliver media Store shared data Stream real-time dataTrack Retention Send push notifications Manage users and identity providers Securely access cloud resources Sync user prefs across devices Track active users, engagement Manage funnels, Campaign performances Store user-generated photos Media and share them Automatically detect mobile devices Deliver content quickly globally Bring users back to your app by sending messages reliably Store and query fast NoSQL data across users and devices Collect real-time clickstream logs and take actions quickly Your Mobile App Your mobile application
  • 14. Authenticate  users Authorize access Analyze User Behavior Store and share media Synchronize data Deliver media Store shared data Stream real-time dataTrack Retention Send push notifications Amazon Cognito (Identity broker) AWS Identity and Access Management Amazon Cognito (Sync) Amazon Mobile Analytics Amazon Mobile Analytics Amazon S3 Transfer Manager Amazon CloudFront (Device Detection) Amazon SNS Mobile Push Amazon DynamoDB (Object Mapper) Amazon Kinesis (Recorder) Your mobile application with the AWS Mobile SDK
  • 15. Let’s build a Media App! What should it do?
  • 16. Our Media App’s wish-list of features q  Upload & Download media files to/from S3 buckets q  Grant anonymous but secure access to AWS resources in our account q  Grant authenticated access for users that log in via Public Identity Providers q  Send push notifications to mobile devices q  Store the media library inventory in the cloud so it can be queried by many users q  Provide partitioned access to the media library based on Public and Private views q  Synchronise user data across devices q  Make all this available across devices (iOS, Android, Kindle) and web q  Convert uploaded video files to various mobile/web formats
  • 17. •  Goals: •  User is anonymous – we don’t care who they are, treat them as ‘Public’ or ‘Guest’ •  Directly access AWS Simple Storage Service (S3) from the mobile application •  We do not want to upload to a server and then have the server push the file to S3… •  Requirements: •  We need to authenticate the application on the mobile device •  We do not want to bake the AWS credentials in our mobile app! •  Even though users are anonymous, we still want to control access to AWS First App: Basic Download/Upload App
  • 18. Mobile App S3 Bucket with test media Cognito Identity First App: Basic Download/Upload App
  • 19. Amazon Cognito Granting ‘guest’ access to our ‘Public’ users for controlled access to AWS resources
  • 20. User ID (Temp Credentials) DynamoDB End Users Developer App w/SDK Access to AWS Services Cognito Identity Broker Login OAUTH/OpenID Access Token Cognito ID, Temp Credentials S3 Mobile Analytics Cognito Sync Store AWS Management Console Access Token Pool ID Role ARNs Amazon Cognito Security Architecture
  • 21. Cognito Identity Example Cognito Identity for Guests Cognito assigns a unique identifier for each device when a user is not logged on Cognito Identity for Authenticated Users Cognito assigns a unique identifier for each user when they are authenticated. This will be the same identifier for this user regardless of which device they use
  • 23. Create a new Cognito Identity Pool
  • 24. Create a new Cognito Identity Pool Supplying public identity providers is optional For this demo, we will not be supporting public identity providers, so we leave them empty
  • 25. Create a new Cognito Identity Pool Enable guest access For this demo, we will allow ‘anonymous access’ so that unauthenticated users can upload and download from our S3 bucket
  • 26. Create a new Cognito Identity Pool Create IAM Roles Create IAM roles for this Cognito Identity Pool. We will assign tight security controls to these roles later
  • 27. Create a new Cognito Identity Pool And assign a role for unauthenticated access
  • 28. Create a new Cognito Identity Pool Starter code samples Cognito conveniently provides starter code for you for Android, iOS and .Net! This is an example of how you can easily connect your app to Cognito
  • 29. Setup the required permissions in IAM
  • 30. Setup the required permissions in IAM Note the default policy
  • 31. Setup the required permissions in IAM Default policy created by Cognito By default, access to Cognito Sync and Mobile Analytics is permitted. This policy has been generated by the Cognito Create Identity Pool wizard
  • 32. Media in our S3 bucket S3 Bucket contents Test file that we will be downloading via the TransferManager S3 connector
  • 33. S3 Bucket ACLs Note that the ACLs on the bucket do not permit ‘Public’ so the asset is not world-accessible Media in our S3 bucket
  • 34. Let’s give the anonymous ‘guest’ access to our S3 bucket for read and write
  • 35. Setup the required permissions in IAM Use the Policy Generator We’ll create our specific S3- related policy using the Policy Generator
  • 36. Setup the required permissions in IAM Specify our bucket Our policy will specify access for our specific bucket. We’ll allow GetObject and PutObject
  • 37. Setup the required permissions in IAM Resulting Policy Document Here’s what the resulting policy looks like for allowing READ access to any object in the specific bucket, and the ability to WRITE any object
  • 38. We’re now set up – let’s start coding!
  • 39. Instantiate Cognito Credentials Provider Give Cognito your details •  Account Id •  Identity Pool ARN •  UnAuthenticated access Role ARN •  Authenticated access Role ARN •  The Region you are running Cognito in
  • 40. Implementation Note! This ‘Cognito’ class is just my convenience wrapper! I have chosen to implement this as a Singleton at App-scope Your implementation may be different The only important thing is that you instantiate a CognitoCachingCredentialsProvider
  • 41. S3 Connector •  Multipart upload media (photos, videos, audio) •  Fault tolerant download (e.g. assets) •  No backend required •  Automatic retries •  Pause, resume, cancel functions •  Optimized for native OS Amazon S3 Connector: Transfer Manager
  • 42. Pass Cognito Credentials to the AWS S3 Transfer Manager constructor Pass the Cognito Provider to the TransferManager S3 connector to construct based on the Cognito-acquired AWS credentials
  • 43. Set up the download request and go! Initiate the download
  • 44. Demo App First, the Application instantiates a CognitoCachingCredentialsProvider() Then initiates a download, followed by an upload
  • 45. Our Media App’s wish-list of features q  Upload & Download media files to/from S3 buckets q  Grant anonymous but secure access to AWS resources in our account q  Grant authenticated access for users that log in via Public Identity Providers q  Send push notifications to mobile devices q  Store the media library inventory in the cloud so it can be queried by many users q  Provide partitioned access to the media library based on Public and Private views q  Synchronise user data across devices q  Make all this available across devices (iOS, Android, Kindle) and web q  Convert uploaded video files to various mobile/web formats
  • 46. Amazon Cognito Now let’s authenticate our users via public identity providers
  • 47. •  Goals: •  User can be anonymous or they can choose to sign-in via Facebook •  If they are anonymous, we let them see a ‘Public’ view of the media library •  If they choose to sign-in, we let them see their own ‘Private’ view of the library •  Requirements: •  We will use Cognito to help with the Public and Private authentication •  Again, no AWS credentials in our mobile app! •  We want to enforce Fine-Grained Access Control on the database views Next app: Implement Public & Private views
  • 48. For this demo, we’ll use Facebook as our Public Identity Provider
  • 49. Mobile App DynamoDB Next app: Implement Public & Private views OAUTH/OpenID Access Token Cognito Identity Broker Cognito ID, Temp Credentials Query for results filtered by OwnerId
  • 51. Create an App on Facebook
  • 52. Create an App on Facebook
  • 53. Create an App on Facebook Cognito needs the App ID The App ID from Facebook is what binds the Identity Pool to the Facebook application
  • 54. Configure Cognito to use Facebook
  • 55. Add an Android application to FB
  • 56. Add an Android application to FB
  • 57. Add an Android application to FB Generate your signing hash from your development environment – check the documentation…
  • 58. We’re now set up – let’s start coding!
  • 59. Secure access to DynamoDB Simply instantiate the AmazonDynamoDBClient and specify your Cognito provider as the credential provider in the constructor
  • 60. Use the DynamoDB Mapper Use the DynamoDB Mapper annotations to decorate your value object Specify the HashKey, RangeKey and the individual Attributes in your value object that should map to columns in the DynamoDB table
  • 61. Raw DynamoDB records example Inventory is partitioned based on the OwnerId ‘public’ is accessible to the ‘guest’ Cognito Identity Anything else must match the identity of the user accessing the application Assigned by Cognito automatically
  • 62. Raw DynamoDB records example Range Key Each OwnerId has multiple Filenames Hash Key Each OwnerId identifies a user by their Cognito identity, or ‘public’ if they didn’t log on to Facebook
  • 63. Querying the DynamoDB table from code Querying the DynamoDB table is simple! The DynamoDB Mapper will map the columns in the table to the fields in your value object and return a typed list of records ready to iterate
  • 64. Demo App Guest access •  Connects to Cognito as anonymous user •  Gets AWS token and uses that to instantiate a DynamoDB client •  Queries DynamoDB using the key ‘public’ Authenticated access •  Gets token from Facebook •  Passes token to Cognito •  Impersonates authenticated user •  Queries DynamoDB using the key that matches the Cognito Identity of this user
  • 65. Raw DynamoDB records example Inventory is partitioned based on the OwnerId ‘public’ is accessible to the ‘guest’ Cognito Identity Anything else must match the identity of the user accessing the application
  • 66. FGAC on DynamoDB using IAM Fine-Grained Access Control (FGAC) •  Restrict which Actions can be called by the user •  Restrict which DynamoDB Tables can be accessed by the user •  Restrict which rows in the table are accessible by the user •  Control which fields are accessible in the query results
  • 67. FGAC on DynamoDB using IAM Control the actions the user can invoke The “Unauthenticated” Role Policy
  • 68. FGAC on DynamoDB using IAM Control the DynamoDB Table the user can access The “Unauthenticated” Role Policy
  • 69. FGAC on DynamoDB using IAM Restrict the Rows in the DynamoDB table the user can access The “Unauthenticated” Role Policy
  • 70. FGAC on DynamoDB using IAM Use the Cognito Id for this user to restrict the rows that will be accessible to the user The “Authenticated” Role Policy
  • 71. Our Media App’s wish-list of features q  Upload & Download media files to/from S3 buckets q  Grant anonymous but secure access to AWS resources in our account q  Grant authenticated access for users that log in via Public Identity Providers q  Send push notifications to mobile devices q  Store the media library inventory in the cloud so it can be queried by many users q  Provide partitioned access to the media library based on Public and Private views q  Synchronise user data across devices q  Make all this available across devices (iOS, Android, Kindle) and web q  Convert uploaded video files to various mobile/web formats
  • 73. Each platform works differently, and push gets even more complex as you scale to support millions of devices. Cloud App Platform Services Mobile Apps SNS application targets
  • 74. Amazon SNS Cross-platform
 Mobile Push Apple APNS Google GCM Amazon ADM Windows WNS and MPNS Baidu CP With Amazon SNS, developers can send push notifications on multiple platforms and reach mobile users around the world Android Phones and Tablets Apple iPhones and iPads Kindle Fire Devices Android Phones and Tablets in China Windows Desktop and Phones SNS application targets Your application
 back-end
  • 75. •  Goals: •  Application automatically registers with Google Cloud Messaging (GCM) •  The device registration Id is then sent to SNS to register as a device endpoint •  The application then subscribes that device endpoint to a well-known SNS topic This topic is shared by all other devices using the application •  The application then confirms SNS Push Notifications are working by sending a message to itself via SNS. The user sees a pop-up message. •  Later, whenever a message is sent to the shared SNS Topic, all devices subscribed receive a pop-up notification Next App: SNS Push Notification App
  • 76. Mobile App Next App: SNS Push Notification App SNS Topic SNS Application ENDPOINT APP TOPIC Cognito Create Platform Endpoint Subscribe to topic Publish test message to our Endpoint Push notification from GCM SNS
  • 78. On the SNS Dashboard, create a new Topic
  • 79. On the SNS Dashboard, create a new Topic
  • 80. Note the Topic’s ARN We will need this in our code to subscribe the device to the topic so we can receive notifications On the SNS Dashboard, create a new Topic
  • 81. Create a Google API Project and obtain the Google Project ID  
  • 82. Enable GCM for Android
  • 83. Create the Server API Key
  • 84. Obtain the Server API Key from Google
  • 85. On the SNS Dashboard, create a new App
  • 86. Specify the API Key you got from Google
  • 87. Note the ARN for this SNS Application
  • 88. We’re now set up – let’s start coding!
  • 89. Instantiate Cognito Credentials Provider Give Cognito your details •  Account Id •  Identity Pool ARN •  UnAuthenticated access Role ARN •  Authenticated access Role ARN •  The Region you are running Cognito in
  • 90. Again, this ‘Cognito’ class is just my convenience wrapper implemented as a Singleton Instantiate SNS using Credentials from Cognito
  • 91. Get the device registration ID from GCM We’re requesting the device identifier/token for this unique device, against the Google Project Id we created earlier
  • 92. And register this device with the SNS App The ‘deviceIdentifier’ is the device token returned from GCM for this unique device
  • 93. Finally, subscribe the endpoint to the Topic The endpoint is the ARN you got back from the previous call to getEndpointArn()
  • 94. Demo App At startup, we register this device with the SNS Application Then we subscribe this device Endpoint to the global SNS Topic We then send a test message from the device to ourselves to confirm the round trip is working If we subsequently publish to the global SNS Topic, all devices subscribed will be notified
  • 95. Our Media App’s wish-list of features q  Upload & Download media files to/from S3 buckets q  Grant anonymous but secure access to AWS resources in our account q  Grant authenticated access for users that log in via Public Identity Providers q  Send push notifications to mobile devices q  Store the media library inventory in the cloud so it can be queried by many users q  Provide partitioned access to the media library based on Public and Private views q  Synchronise user data across devices q  Make all this available across devices (iOS, Android, Kindle) and web q  Convert uploaded video files to various mobile/web formats
  • 96. How did we initiate the sending of the Push Notification to the global SNS Topic? But wait!
  • 97. Demo web page to send Push Notifications Plain old Javascript and HTML! The website is a standard HTML site with Javascript. It is being served from S3, so no back-end servers The magic comes from the AWS Javascript SDK
  • 98. Demo web page to send Push Notifications Topic ARN This is the topic we subscribed our application to when it started up Cognito Role This is the IAM role we want to use – we’re using the unauthenticated ‘guest’ role in this demo Cognito Identity Pool ID This is the specific Cognito pool we want to use for authentication
  • 99. Demo web page to send Push Notifications
  • 100. Demo web page to send Push Notifications
  • 101. Our Media App’s wish-list of features q  Upload & Download media files to/from S3 buckets q  Grant anonymous but secure access to AWS resources in our account q  Grant authenticated access for users that log in via Public Identity Providers q  Send push notifications to mobile devices q  Store the media library inventory in the cloud so it can be queried by many users q  Provide partitioned access to the media library based on Public and Private views q  Synchronise user data across devices q  Make all this available across devices (iOS, Android, Kindle) and web q  Convert uploaded video files to various mobile/web formats
  • 102. Amazon Cognito Sharing data between devices
  • 103. •  Goals: •  User is authenticated with Facebook •  Each time they modify gadgets in the app, the state of the gadgets is synchronized with all other devices using the application (for that user account) •  Verify these shared data changes in a companion web page, where the user is also authenticated with Facebook, and is the same user principal Next App: Shared application data
  • 104. Add a Web application to FB
  • 105. Add a Web application to FB S3 bucket name We’re using S3 to serve the web site in this example, but you can use CloudFront, or EC2, or use a CNAME
  • 106. Javascript code to read Cognito Sync Data Instantiate the CognitoSync object It will inherit the Cognito credentials from those we obtained earlier from our call to CognitoIdentityCredentials()
  • 107. Javascript code to read Cognito Sync Data Specify our parameters We need to specify the DatasetName that we want to connect to, and the Cognito Identity information as shown
  • 108. Javascript code to read Cognito Sync Data Call CognitoSync::listRecords() …and provide our params and a callback
  • 109. Javascript code to read Cognito Sync Data OnSuccess() …iterate the results and do something interesting with the data records
  • 110. Demo App Web Page The web page has access to the shared data when authenticated as the Facebook User Mobile application …and the mobile application has access to the same shared data if the user is logged on to Facebook as the same user
  • 111. Our Media App’s wish-list of features q  Upload & Download media files to/from S3 buckets q  Grant anonymous but secure access to AWS resources in our account q  Grant authenticated access for users that log in via Public Identity Providers q  Send push notifications to mobile devices q  Store the media library inventory in the cloud so it can be queried by many users q  Provide partitioned access to the media library based on Public and Private views q  Synchronise user data across devices q  Make all this available across devices (iOS, Android, Kindle) and web q  Convert uploaded video files to various mobile/web formats
  • 112. Media Repurposing with the Elastic Transcoder
  • 113. •  Goals: •  User can be an anonymous Guest user and share inventory with all other guest users •  User can authenticate with Facebook and see their own inventory •  User can capture video and upload it to their private inventory, or the public inventory •  Media uploaded is converted into adaptive bitrate formats and thumbnails for preview •  Video can be replayed via CloudFront by touching on the item •  Items can be deleted from the inventory by touching them Our Final App: Media Manager app
  • 114. Mobile App DynamoDB S3 Upload Bucket App Architecture - Upload Cognito Identity Elastic Beanstalk – Worker Tier SQS Queue Elastic Transcoder Auto-scaling Worker Instances S3 Output Bucket
  • 115. Mobile App DynamoDB App Architecture - Delivery Elastic Beanstalk – Worker Tier SQS Queue Elastic Transcoder Auto-scaling Worker Instances S3 Output Bucket CloudFront Distribution Adaptive bitrate video stream
  • 116. Cognito Identity Mobile App DynamoDB App Architecture – On Delete Elastic Beanstalk – Worker Tier SQS Queue Media Deletion Long-running task performed asynchronously from the user’s perspective Auto-scaling Worker Instances S3 Media Storage Bucket
  • 117. Set up transcode pipeline On Completion Event Elastic Transcoder notifies this SNS topic when the transcode is complete. We then forward the notification to our Worker Tier queue.
  • 118. Create transcode jobs via Java SDK Specify the outputs We are using various presets to create our transcode outputs, including thumbnails Create an HLS playlist HLS is the streaming format we will use in this demonstration app Create the job Call the ETS API to create the job
  • 119. How do we deploy our Worker Tier?
  • 120. We’ll use Elastic Beanstalk
  • 121. Create Elastic Beanstalk Application using the eb tool from the commandline Provide your credentials Use the Access Key and Secret Key obtained from the IAM Console
  • 122. Create Elastic Beanstalk Application using the eb tool from the commandline Choose your region We’ll use us-east-1
  • 123. Create Elastic Beanstalk Application using the eb tool from the commandline Specify names Provide a name for your application and a name for the environment (eg: Production)
  • 124. Create Elastic Beanstalk Application using the eb tool from the commandline Specify the Tier We’ll be using a Worker Tier that manages reading from the SQS queue for us
  • 125. Create Elastic Beanstalk Application using the eb tool from the commandline Choose the stack For this demo, we will be using Java 7 in a Tomcat container
  • 126. Create Elastic Beanstalk Application using the eb tool from the commandline Select environment type We’ll use a Load Balanced configuration
  • 127. Create Elastic Beanstalk Application using the eb tool from the commandline Create an RDS DB? We don’t need an RDS database so we skip this
  • 128. Create Elastic Beanstalk Application using the eb tool from the commandline Finally, choose a Role Select an IAM Role for instances in this Worker Tier to run in
  • 129. Now we have our Elastic Beanstalk Application set up, let’s deploy into it
  • 130. Build and deploy to Elastic Beanstalk using the AWS CLI tool from the commandline Build WAR We’re using Maven to build our WAR
  • 131. Build and deploy to Elastic Beanstalk using the AWS CLI tool from the commandline Push WAR to S3 We push the resulting WAR file to our deployment bucket
  • 132. Build and deploy to Elastic Beanstalk using the AWS CLI tool from the commandline Create Application Version Create a new version for our Elastic Beanstalk application
  • 133. Build and deploy to Elastic Beanstalk using the AWS CLI tool from the commandline Update Environment Version Update the running version on our application’s environment
  • 135. Our Media App’s wish-list of features q  Upload & Download media files to/from S3 buckets q  Grant anonymous but secure access to AWS resources in our account q  Grant authenticated access for users that log in via Public Identity Providers q  Send push notifications to mobile devices q  Store the media library inventory in the cloud so it can be queried by many users q  Provide partitioned access to the media library based on Public and Private views q  Synchronise user data across devices q  Make all this available across devices (iOS, Android, Kindle) and web q  Convert uploaded video files to various mobile/web formats
  • 137. q AWS Lambda is a compute service that runs your code in response to events and automatically manages the compute resources for you q AWS Lambda starts running your code within milliseconds of an event such as a media file uploaded to S3 q With AWS Lambda you pay only for the requests served and the compute time required to run your code q Lambda runs your code on high-availability compute infrastructure q All you need to do is to provide the code to execute in response to an event Introducing: Amazon Lambda
  • 138. Mobile App DynamoDB S3 Upload Bucket Using Lambda - Upload Cognito Identity Elastic Transcoder S3 Output Bucket Lambda  func&on  to  submit   transcode  job  to  Elas&c   Transcoder  
  • 139. With Lambda, there is no need to run your own fleet of compute instances to implement our media application!
  • 140. q With Lambda you do not have to provision your own instances q At launch AWS Lambda supports code written in Node.js (Other language options will come) q Available now in Preview to all customers Amazon Lambda
  • 141. We covered a lot of ground in this deep-dive session!
  • 142. Amazon Cognito Amazon SNS Mobile Push DynamoDB Connector S3 Connector SQS Connector User identity & data synchronization service Store any NoSQL data and also map mobile OS specific objects to DynamoDB tables Powerful Cross-platform Push notification service Easily upload, download to S3 and also pause, resume, and cancel these operations Access distributed buffering and queuing service AWS Mobile Services
  • 143. Amazon S3 Amazon Elastic Transcode Service Amazon CloudFront Amazon Elastic Beanstalk Amazon Identity and Access Management Online file storage web service Content Delivery Network (CDN) Highly scalable, media transcoding in the cloud Platform as a Service (PaaS) Securely control access to AWS services and resources for your users AWS Services & Features
  • 144. Fully integrated AWS mobile SDK Cross-platform, optimized for mobile Automatically handles intermittent and latent network AWS Mobile SDK Reduced memory footprint Common authentication method across all services  
  • 145. Online  Labs  |  Training   Gain  confidence  and  hands-­‐on   experience  with  AWS.  Watch  free   Instruc&onal  Videos  and  explore  Self-­‐ Paced  Labs   Instructor  Led  Classes     Learn  how  to  design,  deploy  and  operate   highly  available,  cost-­‐effec&ve  and   secure  applica&ons  on  AWS  in  courses   led  by  qualified  AWS  instructors   Validate  your  technical  exper&se   with  AWS  and  use  prac&ce  exams   to  help  you  prepare  for  AWS   Cer&fica&on   AWS  Cer:fica:on     h=p://aws.amazon.com/training    
  • 146.
  • 147.