aws 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - aws webiniar 2015

74
AWS 모바일 서비스로 성공하는 모바일 앱 만들기 윤석찬 | 아마존웹서비스 코리아 테크에반젤리스트

Upload: amazon-web-services-korea

Post on 05-Aug-2015

1.014 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

AWS 모바일 서비스로 성공하는 모바일 앱 만들기

윤석찬 | 아마존웹서비스 코리아 테크에반젤리스트

Page 2: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

모바일 앱을 만들기전에 해야할 두가지 질문?

어떻게 모바일 앱을 특별(Unique)하게 만들건가요?  

시간은 어디에 더 집중해서 써야 할까요?  

==  

Page 3: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  Your

Mobile App

사용자 인증

사용자 권한 부여

사용자 행동 분석

미디어의 저장 및 공유

인증정보 단말간 공유

미디어 전송

공유 데이터의 저장

실시간 데이터 스트림 처리

재방문 추적

푸시 알림 전송 모바일앱 요구사항

Page 4: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

모바일 개발자 가라사대…

직면한 문제점 플랫폼 파편화 확장성 높은 동기화의 어려움 앱 관리 및 운영 비용 증가 핵심 UX 만드는데도 시간 증가 사용자에게 줄 핵심 기능 구현 시간 저하

앱개발은 만만한 작업이 아니다!

모바일 앱 코드  사용자 인증 및 관리 사용자 데이터 싱크

비동기 커뮤니케이션 활성 디바이스 분석

사용자 행태 분석 사용자 참여 분석

푸시 노티피케이션 사용자 이벤트 기능처리

플랫폼 독립적 모바일 백엔드 데이터 유효성 및 전송

파일 및 미디어 저장 공유 데이터베이스 스토리지  

데이터 수집  기타등등…    

Page 5: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

AWS 가라사대… 모바일 앱 코드  

사용자 인증 및 관리 사용자 데이터 싱크

비동기 커뮤니케이션 활성 디바이스 분석

사용자 행태 분석 사용자 참여 분석

푸시 노티피케이션 사용자 이벤트 기능처리

플랫폼 독립적 모바일 백엔드 데이터 유효성 및 전송

파일 및 미디어 저장 공유 데이터베이스 스토리지  

데이터 수집  기타등등…    

Amazon Cognito

Amazon Mobile Analytics

Amazon SNS Mobile Push

AWS Lambda

Mobile-optimized Connectors (Amazon Kinesis, Amazon S3, Amazon DynamoDB, Amazon SQS)

Page 6: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
Page 7: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

Amazon Cognito Amazon Mobile Analytics Amazon SNS Mobile Push

Amazon Kinesis Recorder

DynamoDB Mapper

S3 Transfer Manager

SQS Client Amazon SES Client

AWS 글로벌 인프라

핵심 빌딩 블럭 클라우드 서비스

모바일 최적화 커넥터

모바일 최적화 서비스

모바일 앱, 게임, IoT 디바이스 AWS 모바일 SDK, API 엔드포인, AWS 관리 콘솔

컴퓨팅 스토리지 네트워크 데이터 분석 데이터베이스

통합 SDK

AWS Lambda

Lambda Functions

λ λ λ λ

AWS 모바일 빌딩 블럭

Page 8: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  Your

Mobile App

사용자 인증

사용자 권한 부여

사용자 행동 분석

미디어의 저장 및 공유

인증정보 단말간 공유

미디어 전송

공유 데이터의 저장

실시간 데이터 스트림 처리

재방문 추적

푸시 알림 전송 모바일앱 요구사항

Page 9: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

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)

Amazon Mobile Analytics

Amazon SNS Mobile Push

Your Mobile

App

사용자 인증

사용자 권한 부여

사용자 행동 분석

미디어의 저장 및 공유

인증정보 단말간 공유

미디어 전송

공유 데이터의 저장

실시간 데이터 스트림 처리 재방문 추적

푸시 알림 전송

AWS Mobile SDK

Page 10: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

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)

Amazon Mobile Analytics

Amazon SNS Mobile Push

Your Mobile

App

사용자 인증

사용자 권한 부여

사용자 행동 분석

미디어의 저장 및 공유

인증정보 단말간 공유

미디어 전송

공유 데이터의 저장

실시간 데이터 스트림 처리 재방문 추적

푸시 알림 전송

AWS Mobile SDK

Page 11: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
Page 12: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Amazon Cognito 소개

간단한 인증 방식 제공 및 접근 관리

모바일 및 AWS 전체 서비스에 적용 가능한 안전한 아이덴티티 관리

디바이스 및 플랫폼간 데이터 동기화

가장 안전한 베스트 프랙티스 적용

디바이스 및 플랫폼 관계 없이 사용자 인증 및

데이터 동기화

다양한 소셜 로그인 방식을 통해 쉽게 로그인

가능

Guest Your own Auth

Page 13: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

아이덴티티 제공자

사용자 아이덴티티 철수 영희 민수

모든 디바이스 모든 플랫폼

모든 AWS 서비스

Amazon Cognito: 사용자 인증

Mobile Analytics

S3 DynamoDB Kinesis

다양한 소셜 로그인 제공 트위터, 페이스북, 구글플러스 및 아마존 인증을 손쉽게 인증할 수 있음 디바이스 및 플랫폼간 인식 가능 다양한 디바이스와 운영체제에서도 사용자 인증이 가능함 안전한 인증 체계 구축 모바일 디바이스에서 안전하게 AWS 서비스에 접근가능하며 IAM(Identity and Access Management)사용 가능

Page 14: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Amazon Cognito: 게스트 사용자 지원

Visitor Preferences

Cognito Store

Guest

EC2 S3 DynamoDB Kinesis

게스트 사용자 접근 90%의 단순 앱 사용자를 위해 계정 생성이나 로그인없이도 AWS 서비스를 안전하게 접근 가능 클라우드 데이터 저장 손님에서 가입 및 로그인 하면 끊김없이 데이터 저장 가능 보안 베스트 프랙티스 활용 가입 및 로그인 후에도 사용자 권한은 일시적이고 제한적으로 접근하게 되며 AWS 보안 규정에 따라 안전하게 관리 가능

iOS Android JavaScript

Page 15: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Amazon Cognito: 모바일 보안 체계

EC2 S3 DynamoDB Kinesis

AWS Credentials 보호 AWS Access Key나 Access Credential을 모바일앱에 포함하지 않고, 임시 크리덴셜을 부여받음 임시 토큰 기반 인증 일시적이고 제한된 권한만 가진 토큰을 무작위로 생성 전달하며 이를 삭제할 수 있음 세부적인 AWS 접속 허용 기존 IAM 사용자 권한에 따라서 제한적인 AWS 접근 권한을 조절 가능.

자체 인증 시스템 사용 자체 인증을 가지고 있는 경우에도, GetOpenIdTokeForDeveloperIden;ty()  를 통해 활용 가능

Page 16: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Amazon Cognito: 인증 체계도

Iden;typool  

Iden;ty  Providers  

같은 보안 정책을 공유하는 아이덴티티풀

Access  Policy   Access  to  AWS  Services  iden;typool  

Unauthen;cated  Iden;;es  

authen;cated  iden;;es  

AWS IAM Roles

AWS  Account  

웹 아이덴티티풀

S3

DynamoDB

Get Delete Put

Page 17: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Amazon Cognito: 데이터 동기화

User Data Storage and Sync

iOS/Android/FireOS

k/v data

Identity pool

앱데이터, 환경 설정 및 상태 저장 로그인 이후에 앱 및 디바이스 데이터를 디바이스 및 플랫폼과 관계 없이 한 줄의 코드로 저장 오프라인 지원 데이터는 로컬 SQLite DB에 먼저 저장하므로 인터넷 접속과 관계 없이 사용 가능 백엔드 없이 이용 간단한 SDK를 이용하여 서버 사이드 코드가 필요 없음

Page 18: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

사례: Concrete Software

Amazon Cognito를 이용하여 보다 빠르고 사용자 경험이 좋은 모바일 게임을 만들 수 있었습니다.

Keith A. Pichelman CEO, Concrete Software

“ •  다중 디바이스 및 플랫폼을 통해 중단없는(seamless) 사용자 경험 제공 필요

•  백엔드 서버 없이도 클라우드에 게임 진행 사항 저장 및 디바이스별 동기화

문제점

해결법

•  Amazon Cognito를 통해 안전하게 AWS 자원에 접근 가능

•  Cognito Sync를 통해 백엔드 인프라 없이도 사용자 디바이스의 캐싱하고 클라우드에 저장하는 유연성 제공

Page 19: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

단계1: Identity Pool 생성

Page 20: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

단계2: 기본 IAM Role 생성

Page 21: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

단계3: SDK 다운로드 및 샘플 코드 적용

Page 22: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Amazon Cognito: 동기화 기능 예제

CredentialsProvider 및 CognitoClient 초기화

데이터 동기화

원하는 데이터 셋이나 키/밸류 설정

provider = new CognitoCachingCredentialsProvider (context, AWS_ACCOUNT_ID, ! !!COGNITO_POOL_ID, COGNITO_ROLE_UNAUTH, COGNITO_ROLE_AUTH, Regions.US_EAST_1);!

!cognito = new CognitoSyncManager (context, Regions.US_EAST_1, provider);!

dataset.synchronize(new SyncCallback(){..});!!

cognito.openOrCreateDataset(datasetName);!dataset.put(key, value);!

Page 23: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

DataSet *dataset = [syncClient openOrCreateDataSet:@"myDataSet"]; NSString *value = [dataset readStringForKey:@"myKey"]; [dataset putString:@"my value" forKey:@"myKey"];  

AWSCognitoSyncClient *syncClient = [[AWSCognitoSyncClient alloc] initWithConfiguration: configuration];  

[dataset synchronize];

Amazon Cognito: 동기화 기능 예제

CredentialsProvider 및 CognitoClient 초기화

데이터 동기화

원하는 데이터 셋이나 키/밸류 설정

Page 24: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

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)

Amazon Mobile Analytics

Amazon SNS Mobile Push

Your Mobile

App

사용자 인증

사용자 권한 부여

사용자 행동 분석

미디어의 저장 및 공유

인증정보 단말간 공유

미디어 전송

공유 데이터의 저장

실시간 데이터 스트림 처리 재방문 추적

푸시 알림 전송

AWS Mobile SDK

Page 25: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Page 26: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Amazon Mobile Analytics

비용이 저렴하다!

다양한 통계 분석을  60분 이내에  수행 가능  

빠르다!

수백만의 사용자로 부터 오는 수십억건 데이터도

무료로 분석 가능!  

데이터는 나의것!

“간단하고도 비용 효율적인 모바일 앱 분석 도구”

수집된 데이터는 모두 자신의

AWS    자원에 저장!

Page 27: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

주요 지표 (한라인코드로만도 추가 가능) 1. Monthly  Ac;ve  Users  (MAU)    2. Daily  Ac;ve  Users  (DAU)    3. New  Users,    4. Daily  Sessions,    5. S;cky  Factor,    6. 1-­‐Day  Reten;on,    7. Avg.  Revenue  per  DAU,    8. Daily  Paying  Users,  9. Avg.  Paying  DAU

Page 28: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

사용자 리텐션    마케팅 이벤트 및 UI  변경, 신기능 추가 등에 대한 사용자 반응을 신속하게 체크 가능      

Page 29: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Mobile Analytics 적용 코드 예제

앱 코드에서 MobileAnalyticsManager 초기화

별도 원하는 추가 이벤트 수집의 경우 선언

OnResume() 혹은 OnPause() 추가

private static MobileAnalyticsManager analytics;!analytics = MobileAnalyticsManager.getOrCreateInstance(! this.getApplicationContext(),"yourCompany.yourAppId",

! ! Regions.YOUR_REGION, config, cognitoProvider );!

EventClient eventClient = analytics.getEventClient();!MobileAnalyticsEvent visitEvent = eventClient.createEvent("speedSet");!eventClient.recordEvent(visitEvent);!

analytics.getSessionClient().resumeSession();!analytics.getSessionClient().pauseSession();!Analytics.getEventClient().submitEvents();!

Page 30: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Mobile Analytics 적용 코드 예제

AWSMobileAnalytics 객체 초기화! AWS 관리 콘솔에서 확인 가능~

이벤트 전송. 만약 호출되지 않으면 주기적으로 자동 호출

커스텀 이벤트 추가 하기

[eventClient submitEvents];!

id<AWSMobileAnalyticsEventClient> eventClient = analytics.eventClient;!id<AWSMobileAnalyticsEvent> level1Event = [eventClient createEventWithEventType:@"level1Complete"];!

AWSMobileAnalytics* analytics = [AWSMobileAnalytics !!defaultAWSMobileAnalyticsWithIdentifier:@"someuniqueid"];!

Page 31: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

분석 데이터 저장

mobile client

Amazon S3

Amazon Mobile Analytics

Page 32: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Page 33: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Redshift로 저장

mobile client

Amazon S3

Amazon Redshift

Amazon Mobile Analytics

External  data  

Page 34: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
Page 35: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

서드파티를 활용한 시각화

mobile client

Amazon S3

Amazon Redshift

Amazon Mobile Analytics

External  data  

Page 36: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

사례: Forza Football 앱

• 전 세계 2위의 축구 관련 앱 • 420여개의 축구리그 정보 업데이트 • 경기 결과 및 하이라이트 푸시 제공

Page 37: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

37  

국가별 사용자 성장세 분석

Page 38: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

38  

인구별 사용자 분포 분석

Page 39: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

39  

사용자 행동 분석

Page 40: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

40  

디바이스 분포 분석

Page 41: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

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)

Amazon Mobile Analytics

Amazon SNS Mobile Push

Your Mobile

App

사용자 인증

사용자 권한 부여

사용자 행동 분석

미디어의 저장 및 공유

인증정보 단말간 공유

미디어 전송

공유 데이터의 저장

실시간 데이터 스트림 처리 재방문 추적

푸시 알림 전송

AWS Mobile SDK

Page 42: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

S3 Connector: 모바일 전송 관리

S3  Connector

멀티 파트 데이터 업로드(photos,  videos,  audio) 빠른 다운로드(e.g.  assets) 자동 재시작 중단/재시작/취소 기능 제공 네이티브 OS  친화적

앱스토어 출시 사이클과 상관 없이 동적으로 자원을 업데이트할 수 있었으며,  170MB가 넘는 다바이스별 이미지를 모바일에서 직접 다운르도하여 서버 확장성을 고려할 필요가 없이 더 품질 높은 고해상도 이미지 전송도 가능  

Amazon S3 connector를 통해 동적으로 게임 자원을 백그라운드로 다운로드

하여 사용자 경험이 늘어났습니다. Douglas Hare CEO, Outplay Entertainment

Page 43: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

S3에 이미지 관리 예제 // Creating the transfer manager !TransferManager transferManager = new TransferManager(credentialProvider);!!// Upload image !Upload upload = transferManager.upload(BUCKET_NAME, fileName, file); !// Download image !Download = transferManager.download(BUCKET_NAME, mKey, file); !!// Pause, and Resume!try {! PersistableDownload persistableDownload = download.pause();! //do something if we didn’t abort!} catch(PauseException e) {! //do something if we aborted!}

download = transferManager.resumeDownload(persistableDownload);!

Page 44: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

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)

Amazon Mobile Analytics

Amazon SNS Mobile Push

Your Mobile

App

사용자 인증

사용자 권한 부여

사용자 행동 분석

미디어의 저장 및 공유

인증정보 단말간 공유

미디어 전송

공유 데이터의 저장

실시간 데이터 스트림 처리 재방문 추적

푸시 알림 전송

AWS Mobile SDK

Page 45: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
Page 46: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Amazon SNS Cross-platform

Mobile Push

Internet

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

Amazon SNS 모바일 푸시

Android Phones and Tablets

Apple iPhones and iPads

Kindle Fire Devices

Android Phones and Tablets in China

iOS

Windows Desktop and Windows Phone Devices

Page 47: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

단계1: 토픽(Topic) 생성

Page 48: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

단계2: 애플리케이션(Application) 등록

Page 49: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

단계3: SDK 다운로드 및 샘플 코드 적용

Page 50: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

사례: Path앱 모바일 푸시 35  AWS  EC2  m3.xlarge  instances    Home-­‐rolled  code  based  on  Tornado  

6  Load    Balancers  

2010년에 창업 및 2개 앱 3개 플랫폼 20개 언어로 서비스 500만 동시 접속자 및 수십억 월간 임프레션

Path  Daily  SNS  Mobile  Push  Deliveries  (millions)  

Page 51: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

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)

Amazon Mobile Analytics

Amazon SNS Mobile Push

Your Mobile

App

사용자 인증

사용자 권한 부여

사용자 행동 분석

미디어의 저장 및 공유

인증정보 단말간 공유

미디어 전송

공유 데이터의 저장

실시간 데이터 스트림 처리 재방문 추적

푸시 알림 전송

AWS Mobile SDK

Page 52: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

철수 영희 민수

Amazon DynamoDB Connector: Object Mapper

•  지연 속도 없이 빠르게 데이터 추가 및 높은 성능을 가진 DynamoDB를 앱에서 간단한 코드로 접근 가능  

•  모바일 클라이언트 데이터를 그대로 싱크 가능  

•  멀티 디바이스에서 쉽게 이용 가능  

게임 점수  

철수   1500  

영희   800  

민수   750  

Page 53: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

Amazon  Kinesis  

Amazon    Redshi[  

Kinesis  enabled  Apps  on  EC2  

AWS  Mobile  SDK  

Amazon Kinesis Connector for Mobile Apps For  sophis;cated  User  Behavior  Real-­‐;me    Analysis  

Amazon Kinesis를 통해 실시간 사용자 액션을 직접 모바일로 전송하여 분

석 할 수 있었습니다.

Amazon    EMR  

Page 54: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

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)

Amazon Mobile Analytics

Amazon SNS Mobile Push

Your Mobile

App

사용자 인증

사용자 권한 부여

사용자 행동 분석

미디어의 저장 및 공유

인증정보 단말간 공유

미디어 전송

공유 데이터의 저장

실시간 데이터 스트림 처리 재방문 추적

푸시 알림 전송

AWS Mobile SDK

비지니스 로직 및 기능

AWS Lambda

Page 55: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015
Page 56: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

AWS Lambda: 서버 없는 컴퓨팅

유연한 자동 확장 서버 설치 불필요 실행 시간에 따라 과금

프로그램 코드

“서버 없이도 클라우드 기반 무상태(Stateless) 함수 실행”

Stream processing

Data triggers

Serverless backend

Mobile/IoT Indexing & synchronization

Page 57: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

Amazon EC2/ECS •  시간단위 리소스 대여 •  유연한 인프라 설계 (OS/타입) •  장애에 대한 고려 필요 •  인스턴스 추가를 통한 확장 •  모든 코드 및 언어로 개발 가능 •  서버 관리 부담 있음

AWS Lambda와 EC2/ECS 비교

AWS Lambda •  이벤트 요청에 따라서 사용 •  OS/타입 등 인프라 고려 필요 없음 •  AWS 기반 무장애 시스템 •  요청량에 따라 확장 •  Node.js 및 자바 코드로 함수 구현 •  서버 관리 부담 없음

Page 58: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

단계1: Lambda 함수 만들기

Page 59: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

단계2: 테스트 해보기

Page 60: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

단계3: 실행 경과 디버깅

Page 61: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

활용 예제: Data Triggers- Amazon S3

S3  Bucket  Events  AWS  Lambda  

λ  Original  image  

Thumbnailed  image  

Page 62: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

활용 예제: Data Triggers-Mobile Backend

AWS  Lambda  

λ  Amazon  Cognito  User  data  change  

Send  SNS  no;fica;ons  

Update    DynamoDB  

Table  

Page 63: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

다양한 활용 예제 • S3에 ZIP 파일 업로드시 자동 압축 해제 하기 • S3에 동영상 파일 업로드시 인코딩 하기 • S3에 XLS 파일 업로드시 DynamoDB로 저장하기 • S3에 정적 블로그 호스팅 하기 • Node.js 문자 인식 라이브러리로 이미지내 문자 인식하기 • Node.js 크롤러를 이용한 간단한 웹 크롤러 개발하기 • Node.js 활용 Cron Job 만들기

h`ps://github.com/awscodes/lambda-­‐snippet    

Page 64: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

예제: LambdaAuth

•  예제: http://lambdauth.danilop.net •  코드: https://github.com/danilop/LambdAuth

Page 65: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

예제: LambdaChat

•  예제: http://lambda-chat.s3-website-us-east-1.amazonaws.com/ •  코드: https://github.com/cloudnative/lambda-chat

Page 66: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

신규 뉴스 기사 및 이미지 업로드 시 다양한 기능 수행  

예측 분석을 위한 실시간 데이터 처리  

모바일을 위한 업로드 사진에 대한 섬네일 제작  

소셜 미디어 플랫폼에서 오는 트래픽을 실시간으로 분석  

블로그 콘텐츠에 대한 대용량 분산 검색 수행  

실시간으로 고충 사항을 분석하여 운영 개선  

기업별 활용 사례

Page 67: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

모바일 활용 전략

SNS Amazon Cognito

Amazon Cognito

Amazon Cognito

SNS

Lambda

Lambda Lambda

Lambda

Any

Analytics S3 + Amazon Redshift

Amazon Kinesis

DynamoDB

Amazon Cognito Amazon

Kinesis Lambda S3

Page 68: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

마지막으로… AWS Mobile SDK

다운로드:  hFp://aws.amazon.com/ko/mobile/sdk    

Page 69: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

모바일 빌딩블럭: 사진 공유 앱을 생각해 봅시다!

Page 70: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

AWS Region

AUTHEN

TICATED  (ASSUMED  RO

LE)  

서버없는 모바일 앱 AWS 모바일 서비스 기반

Download  Photos  &  App  Files  

Session  and  Device  Data,  User  Behavior  

Social  Content  (Tagging,  Likes,    Comments,  etc.)   Auto  Export  

Metadata  

Image  Manipula;on  

40      Func;on  Invoked  

Mul;-­‐part  Upload  

User  Login  

Auto  with  Web  Iden;ty  Token  

User  

Friends  

AWS  Mobile  SDK  

Session  &  Photo  Metadata  

Role  Associated  With  Iden;ty  Pool  

AWS  

Lambda  

Amazon  

CloudFront  

Amazon  

Mobile  AnalyUcs  

Amazon  

DynamoDB  

Amazon  

Cognito  

Amazon  

IAM   Amazon  

S3  

Geo  Look  up  

Amazon  

SNS  Mobile    Push  

Amazon  

RedshiV  

Targeted  

Page 71: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  Sensors   Devices   Cloud  Backend   Visualiza;on  

Amazon   Cognito

Amazon  SNS

Kinesis Streams

DynamoDB Tables

Amazon  S3 Buckets

Kinesis Workers

Intel  Edison/Python Intel  Edison/NodeJS Intel  Edison/Arduino/C++

Edison

Python(boto) Node.js

iOS Android

JavaScript

Arduino

Android/Java iOS/ObjecOve-­‐C

NodeJS Proxy

Grove  Starter  Kit Grove  LED Grove  Tilt Grove  Piezo Grove  BuTon Grove  Accelerometer Grove  Temperator Grove  NFC Grove  Infrared Grove  Touch Grove  Light Grove  Relay

HackDay  Dashboard Team  Leaderboard Team  Dashboard

JavaScript

h`p://bit.ly/aws-­‐iot-­‐hack    

One more thing: AWS IoT 클라우드 백엔드

Page 72: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

v  

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        

AWS 모바일 무료 서비스

h`p://aws.amazon.com/mobile    

AWS Lambda

Free  Tier  :  1M  free  requests  per  month    400,000  GB-­‐seconds  of  compute  ;me  per  month    

Page 73: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

온라인 자습 및 실습

다양한 온라인 강의 자료 및 실습을 통해 AWS에 대한 기초적인 사용법 및 활용 방법을 익히

실 수 있습니다.

강의식 교육

AWS 전문 강사가 진행하는 강의를 통해 AWS 클라우드로 고가용성,

비용 효율성을 갖춘 안전한 애플리케이션을 만드는 방법을 알아보세요. 아키텍쳐 설계 및 구현에 대한 다양한 오프라인 강의가 개설되어

있습니다.

인증 시험을 통해 클라우드에 대한 자신의 전문 지식 및 경험을 공인받고 개발 경력을 제시할 수 있습

니다.

AWS 공인 자격증

http://aws.amazon.com/ko/training

다양한 교육 프로그램

Page 74: AWS 모바일 서비스로 성공하는 모바일 앱 만들기 (윤석찬) - AWS Webiniar 2015

AWS 웨비나 시리즈에 참여해 주셔서 감사합니다! 이번 웨비나가 여러분의 궁금증 해소에 도움이 되었길 바랍니다. 이후 이어질 설문 조사를 통해 오늘 웨비나에 대한 의견을 알려주세요. [email protected] http://twitter.com/AWSKorea http://facebook.com/AmazonWebServices.ko http://youtube.com/user/AWSKorea http://slideshare.net/AWSKorea