Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Delivering Mobile Apps Using AWS Mobile Services

Businesses around the world are running the infrastructure that supports their websites and mobile applications in the cloud to lower costs, improve time-to-market, and enable rapid scalability. Join this webinar to learn how the AWS Mobile Services and Javascript SDKs make it easy to leverage the power of AWS to provide consistent user state across devices and platforms, authenticate users via public and private login providers, and to grant controlled access to AWS services and features right from your mobile or web application. Using a simple media application we will demonstrate how you can upload, store, repurpose and deliver content with Amazon S3, Amazon CloudFront and Amazon Elastic Transcoder, make efficient use of Amazon DynamoDB, take advantage of Amazon SQS to decouple your application workflow and to send push notifications to mobile devices via Amazon SNS.
Reasons to attend:

Learn how you can deliver websites and applications that share state across platforms and devices, using Amazon Elastic Beanstalk and Amazon Cognito.
Learn how to leverage the content repurposing, storage and delivery capabilities of Amazon Elastic Transcoder, Amazon S3 and Amazon CloudFront.
Learn how to use the AWS Mobile and Javascript SDKs to create applications that manage media.

Delivering Mobile Apps Using AWS Mobile Services

  1. 1. Delivering Media Mobile Apps using the AWS Mobile & Javascript SDKs Adam Larter, Solutions Architect, Amazon Web Services alarter@amazon.com
  2. 2. •  Presentation ~55 minutes •  Q & A using the questions panel during the presentation •  Reminder – please fill in the survey! Housekeeping
  3. 3. •  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
  4. 4. •  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)
  5. 5. In this session, we’ll be creating 5 Android apps to demonstrate various features of AWS
  6. 6. How do we build mobile apps today?
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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  
  11. 11. 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
  12. 12. 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
  13. 13. Let’s build a Media App! What should it do?
  14. 14. 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
  15. 15. •  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
  16. 16. Mobile App S3 Bucket with test media Cognito Identity First App: Basic Download/Upload App
  17. 17. Amazon Cognito Granting ‘guest’ access to our ‘Public’ users for controlled access to AWS resources
  18. 18. 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
  19. 19. 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
  20. 20. Cognito setup
  21. 21. Create a new Cognito Identity Pool
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. Create a new Cognito Identity Pool And assign a role for unauthenticated access
  26. 26. 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
  27. 27. Setup the required permissions in IAM
  28. 28. Setup the required permissions in IAM Note the default policy
  29. 29. 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
  30. 30. Media in our S3 bucket S3 Bucket contents Test file that we will be downloading via the TransferManager S3 connector
  31. 31. 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
  32. 32. Let’s give the anonymous ‘guest’ access to our S3 bucket for read and write
  33. 33. Setup the required permissions in IAM Use the Policy Generator We’ll create our specific S3- related policy using the Policy Generator
  34. 34. Setup the required permissions in IAM Specify our bucket Our policy will specify access for our specific bucket. We’ll allow GetObject and PutObject
  35. 35. 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
  36. 36. We’re now set up – let’s start coding!
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. Set up the download request and go! Initiate the download
  42. 42. Demo App First, the Application instantiates a CognitoCachingCredentialsProvider() Then initiates a download, followed by an upload
  43. 43. 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
  44. 44. Amazon Cognito Now let’s authenticate our users via public identity providers
  45. 45. •  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
  46. 46. For this demo, we’ll use Facebook as our Public Identity Provider
  47. 47. 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
  48. 48. •  Great how-to https://developers.facebook.com/docs/ android/getting-started Using Facebook in your App
  49. 49. Create an App on Facebook
  50. 50. Create an App on Facebook
  51. 51. 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
  52. 52. Configure Cognito to use Facebook
  53. 53. Add an Android application to FB
  54. 54. Add an Android application to FB
  55. 55. Add an Android application to FB Generate your signing hash from your development environment – check the documentation…
  56. 56. We’re now set up – let’s start coding!
  57. 57. Secure access to DynamoDB Simply instantiate the AmazonDynamoDBClient and specify your Cognito provider as the credential provider in the constructor
  58. 58. 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
  59. 59. 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
  60. 60. 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
  61. 61. 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
  62. 62. 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
  63. 63. 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
  64. 64. 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
  65. 65. FGAC on DynamoDB using IAM Control the actions the user can invoke The “Unauthenticated” Role Policy
  66. 66. FGAC on DynamoDB using IAM Control the DynamoDB Table the user can access The “Unauthenticated” Role Policy
  67. 67. FGAC on DynamoDB using IAM Restrict the Rows in the DynamoDB table the user can access The “Unauthenticated” Role Policy
  68. 68. 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
  69. 69. 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
  70. 70. Amazon SNS Push Notifications
  71. 71. 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
  72. 72. 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
  73. 73. •  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
  74. 74. 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
  75. 75. Setup Amazon SNS
  76. 76. On the SNS Dashboard, create a new Topic
  77. 77. On the SNS Dashboard, create a new Topic
  78. 78. 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
  79. 79. Create a Google API Project and obtain the Google Project ID  
  80. 80. Enable GCM for Android
  81. 81. Create the Server API Key
  82. 82. Obtain the Server API Key from Google
  83. 83. On the SNS Dashboard, create a new App
  84. 84. Specify the API Key you got from Google
  85. 85. Note the ARN for this SNS Application
  86. 86. We’re now set up – let’s start coding!
  87. 87. 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
  88. 88. Again, this ‘Cognito’ class is just my convenience wrapper implemented as a Singleton Instantiate SNS using Credentials from Cognito
  89. 89. 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
  90. 90. And register this device with the SNS App The ‘deviceIdentifier’ is the device token returned from GCM for this unique device
  91. 91. Finally, subscribe the endpoint to the Topic The endpoint is the ARN you got back from the previous call to getEndpointArn()
  92. 92. 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
  93. 93. 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
  94. 94. How did we initiate the sending of the Push Notification to the global SNS Topic? But wait!
  95. 95. 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
  96. 96. 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
  97. 97. Demo web page to send Push Notifications
  98. 98. Demo web page to send Push Notifications
  99. 99. 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
  100. 100. Amazon Cognito Sharing data between devices
  101. 101. •  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
  102. 102. Add a Web application to FB
  103. 103. 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
  104. 104. 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()
  105. 105. 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
  106. 106. Javascript code to read Cognito Sync Data Call CognitoSync::listRecords() …and provide our params and a callback
  107. 107. Javascript code to read Cognito Sync Data OnSuccess() …iterate the results and do something interesting with the data records
  108. 108. 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
  109. 109. 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
  110. 110. Media Repurposing with the Elastic Transcoder
  111. 111. •  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
  112. 112. 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
  113. 113. 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
  114. 114. 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
  115. 115. 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.
  116. 116. 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
  117. 117. How do we deploy our Worker Tier?
  118. 118. We’ll use Elastic Beanstalk
  119. 119. 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
  120. 120. Create Elastic Beanstalk Application using the eb tool from the commandline Choose your region We’ll use us-east-1
  121. 121. 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)
  122. 122. 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
  123. 123. 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
  124. 124. Create Elastic Beanstalk Application using the eb tool from the commandline Select environment type We’ll use a Load Balanced configuration
  125. 125. 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
  126. 126. 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
  127. 127. Now we have our Elastic Beanstalk Application set up, let’s deploy into it
  128. 128. Build and deploy to Elastic Beanstalk using the AWS CLI tool from the commandline Build WAR We’re using Maven to build our WAR
  129. 129. 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
  130. 130. 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
  131. 131. 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
  132. 132. Final App
  133. 133. 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
  134. 134. New Service Announcement: Amazon Lambda
  135. 135. 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
  136. 136. 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  
  137. 137. With Lambda, there is no need to run your own fleet of compute instances to implement our media application!
  138. 138. 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
  139. 139. We covered a lot of ground in this deep-dive session!
  140. 140. 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
  141. 141. 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
  142. 142. 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  
  143. 143. 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    
  144. 144. Thank  You  

×