19. AWS Javascript SDK
for the browser
Amazon DynamoDB
Unlimited size and
throughput Database
Amazon S3
Unlimited Storage &
Web Service
AWS Lambda
Unlimited Cloud Functions
Function: Create Thumbnail
for new files in S3
Demo – Serverless Solution at Any Scale
Facebook
Authentication
23. Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push
Amazon Kinesis
Recorder
DynamoDB
Mapper
S3 Transfer
Manager
SQS Client Amazon SES
Client
AWS Global Infrastructure (Regions, Availability Zones, Edge Locations)
핵심 빌딩 블럭
클라우드 서비스
모바일 최적화
커넥터
모바일 최적화
서비스
모바일 앱, 게임, IoT 디바이스
AWS 모바일 SDK, API 엔드포인, AWS 관리 콘솔
컴퓨팅 스토리지 네트워크 데이터 분석 데이터베이스
통합 SDK
AWS 모바일 서비스
AWS Lambda
Lambda
Functions
λ λ
λ
λ
24. 사용자 인증
접속 허가
사용자 행태 분석
미디어 저장 및 공유
데이터 동기화
미디어 전달
공유 데이터 저장
실시간 데이터 스트림비지니스 로직 실행
푸시 알림 보내기
Manage users and
identity providers
Securely access
cloud resources
Sync user prefs , states
across devices
Track active users,
Engagement, retention
Run stateless custom
Code without managing servers
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
25. AWS Mobile SDK
Amazon Mobile
Analytics
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Amazon S3
Transfer Manager
Amazon CloudFront
(Device Detection)
Amazon DynamoDB
(Object Mapper)
Amazon Kinesis
(Recorder)AWS Lambda
Amazon SNS
Mobile Push
Your
Mobile
App
사용자 인증
접속 허가
사용자 행태 분석
미디어 저장 및 공유
데이터 동기화
미디어 전달
공유 데이터 저장
실시간 데이터 스트림비지니스 로직 실행
푸시 알림 보내기
26. Authentication with your
own identities. No need to
rely on social profiles
Amazon Cognito creates
cross-devices and platform
identifiers
Profile settings and state
are securely synchronized
across a user’s devices
Amazon Cognito
27. Amazon Cognito for Unauthenticated Identities
Unique Identifier for Your “Things”
“Headless” connected devices can also
securely access cloud services.
Save Data to the Cloud
Save app and device data to the cloud and
merge them after login
Guest User Access
Securely access AWS resources and leverage
app features without the need to create an
account or logging in
Visitor
Preferences
Cognito
Store
Guest
EC2 S3 DynamoDB Kinesis
34. Amazon
Cognito
Mobile
Analytics
SNS
Mobile Push
Free Tier:
1 Million push
messages every month
Free Tier (for first 12
months):
1 Million syncs/month
+ 10GB of storage for
Amazon Cognito
Free Tier:
100 Million events
every month
지금 시작해 보세요!
http://aws.amazon.com/mobile
AWS
Lambda
Free Tier : 1M free
requests per month
400,000 GB-seconds
of compute time per
month
35. Markku Lepistö – Principal Technology Evangelist
@markkulepisto
감사합니다!
aws.amazon.com/ko
Channy Yun– Technology Evangelist, Korea
@channyun
Editor's Notes
비지니스에서 속도는 매우 중요합니다. 새 서비스나 제품이나 기능을 만들때 그리고 이로 인해 매출이 발생할 때 어떤 속도로 일하느냐에 따라 그 결과가 많이 달라집니다. 더 민첩하고 빠른 회사가 경쟁사를 이길 수 있기 때문입니다.
속도를 높이려면 애플리케이션을 빠르게 개발하고 테스트하고 배포하는 것이 매우 중요합니다. 시간이나 리소스를 낭비하지 않으려면 그 아래의 레이어를 어떻게 관리하느냐는 매우 중요합니다.
이를 빠르게 통제하고 관리하는 방법이 매우 필요합니다.
Let’s see how AWS can help you move up the IT stack
아마존 웹 서비스는 넓고 깊은 서비스 포트폴리오를 가지고 있습니다. 40여개가 넘는 서비스들이 개발자들이 애플리케이션에만 집중하도록 도와 줍니다. 전적으로 관리 콘솔이나 API로 제어 가능한 매니지드 서비스를 제공하고 인프라 운영에 드는 비용을 최소화 합니다.
빌딩 블럭 소개 플랫폼 서비스
오늘은 데이터 티어에 좀 더 집중해서 어떻게 자동으로 데이터의 유연한 인프라 확장이 가능한지 알아보겠습니다.
Amazon Kinesis서비스는 실시간 스트리밍 데이터 서비스입니다. 키네스시를 이용하면 리얼타임 데이터 수집 및 분석이 가능합니다. 수백에서 수천개의 데이터 생산자들이 만드는 데이터 처리가 가능하므로 로그 분석이나 모바일 이나 IoT 분야에서는 매우 중요한 빌딩 블럭입니다.
Amazon S3 is the best place to store data at any scale. S3 provides 11 nines of durability and unlimited storage capacity. It scales horizontally for any number of clients or data amount
대용량 데이터입력은 버틀넷… 쉽게 사용 가능한 nosql 서비스 (원조) read/write 성능 우수…
When you get to large scale, the database typically becomes a bottleneck. It’s easier to scale compute by adding more compute instances and load balancing. But if each of the applications hit a common, centralized database that doesn’t scale, you will have issues. That’s why AWS innovated DynamoDB. DynamoDB removes the bottleneck from your database tier. DynamoDB is a fully managed database service that provides unlimited storage capacity, as well as provisioned throughput – read and write operations speed – at any scale. And each and every response from DynamoDB is at single digit millisecond latency – meaning that your DB never becomes a bottleneck again.
Then let’s see how we can speed up application development at any scale
Lambda, 플그램을 실행하려면 서버가 필요합니다. 서버는 물리적이든 가상이든 어차피 서버입니다. 설치를 해야 하는 거죠. 우리가 신경써야 할 게 많습니다. 패키지, 서버 의존성, 보안 문제.. 람다는 이런 문제를 해결 합니다.
Ever since the beginning of IT, if you wanted to run programs or applications, you needed a box. A server, whether it was physical, virtual or a cloud instance. Then you needed install and manage an operating system, its packages, and worry about things like high availability, scalability, security patching of the OS and its packages etc. now with AWS Lambda, all that has changed
Message is in the bullet points
Message is in the bullet points
Lambda is fast (see slide text)
And Lambda provides fine-grained, resource and cost efficient computing. Even for small functions that execute quickly, at any scale
람다는 파인 그레인드 리소스와
Computing technology is built with layers of abstraction.
Many years ago, we stopped programming assembly code and wire protocols in favor of higher level languages
Operating systems abstracted away the management of the hardware.
AWS APIs for the first time offered us programmatic control of the hardware - introducing a new abstraction layer.
And now with Lambda, we have a new abstraction layer, removing server and operating system management, letting developers focus only on their code
Now let’s see a demo with Markku (hand over to me)
Back to you
Next let’s see how developers can easily create applications at any scale, on mobile and IoT client devices
To give you a context, lets take an Example, Table stakes of any app
Authenticate Users: Lets start from the users of your app. The most important aspect for you when building a mobile app is to deliver an engaging experience. For that you would want to know who the user is. In most cases you would use third party identity providers like Amazon, Facebook or Google. However, often a login screen proves to be a point of friction, so you would want users to be able to skip any authentication and directly interact with the app. But at the same time when users do decide to login, they expect their preferences, settings, progress to carry over.
Synchronize Data: Users expect their preferences or profiles to be saved from one session to the next. E.g. if you have a game, they expect to resume the game where they last left off. To make matters more complicated, your app or game may be available across platforms – iOS, Android, FireOS. If that is the case, users would expect their data, preferences, profile etc. to be automatically synced and available across devices and platforms. E.g with Amazon Instant Video, users can pause a video they are watching on their Kindle Fire and resume on iPad
Store and share assets and media: Appstores generally have a limit on the size of the app that can be downloaded over WAN. You would want to store the app’s assets in a cloud storage so you can reduce the size of the app. In additional may want to store your users data like pictures and video in the cloud.
Store shared data: Often you would want to store app data e.g.. settings in form of key-value pairs in NoSQL database and query it for fast access.
Push Notifications: Coming back to user engagement, push notifications are a great way to engage your users. You can leverage Push Notifications to remind users of a special ongoing promotion, breaking news, or an update to your app. It’s a great way to bring the users back to your app.
Analyze App Usage & Track Retention: Once you deploy your app, you would want track how your app is performing. You would want to track the usage of your app and also how well you are able to track retention. Some of the common things that you would want to track are active users, session duration, Revenue related metrics like revenue per daily active users, etc.
Analytics User Behavior: You would also want to track user behavior or how users interact with your app. Do they follow the UX flow that you would expect, where would they drop off in your app etc.
Stream data in real-time: You would want to collect large amount of custom metrics from your app for off-line analysis like click-stream logs.
Authorized Access: Most importantly you want to provide secure and authorized access to cloud services.
Now lets see how AWS can help you in each of these areas
Such services are fully integrated with the rest of AWS offering, are optimized for mobile use cases, are accessible via a single Mobile SDK and share the same scalable, on-demand, global infrastructure of all our other AWS services.
To give you a context, lets take an Example, Table stakes of any app
Authenticate Users: Lets start from the users of your app. The most important aspect for you when building a mobile app is to deliver an engaging experience. For that you would want to know who the user is. In most cases you would use third party identity providers like Amazon, Facebook or Google. However, often a login screen proves to be a point of friction, so you would want users to be able to skip any authentication and directly interact with the app. But at the same time when users do decide to login, they expect their preferences, settings, progress to carry over.
Synchronize Data: Users expect their preferences or profiles to be saved from one session to the next. E.g. if you have a game, they expect to resume the game where they last left off. To make matters more complicated, your app or game may be available across platforms – iOS, Android, FireOS. If that is the case, users would expect their data, preferences, profile etc. to be automatically synced and available across devices and platforms. E.g with Amazon Instant Video, users can pause a video they are watching on their Kindle Fire and resume on iPad
Store and share assets and media: Appstores generally have a limit on the size of the app that can be downloaded over WAN. You would want to store the app’s assets in a cloud storage so you can reduce the size of the app. In additional may want to store your users data like pictures and video in the cloud.
Store shared data: Often you would want to store app data e.g.. settings in form of key-value pairs in NoSQL database and query it for fast access.
Push Notifications: Coming back to user engagement, push notifications are a great way to engage your users. You can leverage Push Notifications to remind users of a special ongoing promotion, breaking news, or an update to your app. It’s a great way to bring the users back to your app.
Analyze App Usage & Track Retention: Once you deploy your app, you would want track how your app is performing. You would want to track the usage of your app and also how well you are able to track retention. Some of the common things that you would want to track are active users, session duration, Revenue related metrics like revenue per daily active users, etc.
Analytics User Behavior: You would also want to track user behavior or how users interact with your app. Do they follow the UX flow that you would expect, where would they drop off in your app etc.
Stream data in real-time: You would want to collect large amount of custom metrics from your app for off-line analysis like click-stream logs.
Authorized Access: Most importantly you want to provide secure and authorized access to cloud services.
Now lets see how AWS can help you in each of these areas
How to build an app
1. Authentication
2. Authorization
3. Data Storage and Delivery (Upload and Download)
4. Data Analytics
5. Data Synchronization
6. Push Notifications
7. Shared Data
8. Stream real-time data
9.
See slide for main messages
(read a shorter version of the below messages)
We have seen that 90% users simply consumers of data and only 10% are actually content creators. Unauthenticated guest users are users just like logged in users. We should focus more on them, build services for them, and treat them like users, not second class citizens.
Amazon Cognito simplifies the way your application can access AWS resources in a secure manner, following AWS security best practices, even when your application users are not authenticated. Amazon Cognito creates a random, unique identifier for each unauthenticated guest so you can start saving application data for those users and also leverage the temporary, limited privilege credentials Amazon Cognito provides to access other AWS resources, such as Amazon S3 and Amazon DynamoDB. When your users decide to authenticate using one of the supported public login providers, Amazon Cognito ensures the data you saved against the unauthenticated profile is now associated with the new authenticated profile removing the complexity of managing user conversion.
By registering an unauthenticated user or by sending a login provider token to Amazon Cognito, your application receives a set of temporary, limited privilege credentials from Amazon Cognito to access your AWS resources. Amazon Cognito takes care of all the steps necessary to create a unique identifier for your app’s users and retrieve the AWS credentials. Incorporating AWS security best practices now takes just a few lines of code.
And now to support IoT devices such as Arduino and Arduino-compatible boards, we are happy to announce our latest SDK – the C-language SDK for IoT devices
C-sdk는 IoT 기기와 AWS를 직접 연결해 줍니다. 수평적으로 확장 가능.. 서버 레이어 필요 없음. AWS SDK는 높은 보안 인증, 권한 관리, 접근 제어, 키관리 , 데이터 암호화를 지원
The C-SDK enables IoT devices to communicate and use the AWS cloud services directly from the boards. This enables horizontal scale-out of your solution, where each device communicates with the scalable AWS services directly – without any intermediate server layer needed in between. And the AWS SDK also enables high security with device authentication, authorization, granular access control, key management and transmission encryption
Now let’s see a demo with Markku (hand over to me)