찾아가는 aws 세미나(구로,가산,판교) - aws에서 작은 서비스 구현하기...
Post on 16-Apr-2017
599 Views
Preview:
TRANSCRIPT
AWS 에서작은 서비스 구현 하기
솔루션즈 아키텍트 김필중2016년 10월 27일
이번 세션의 진행
> 백그라운드 지식> 시나리오 기반 작은 서비스 구현> 정리
> 들어가기에 앞서 백그라운드 지식
AWS 클라우드의 다양하고 폭넓은 서비스고객 및 기술
지원
영업 지원
고객지원
프로페셔널컨설팅
교육 및인증
보안 및빌링시스템
파트너생태계
솔루션즈아키텍트
엔터프라이즈
가상데스크톱
기업용 공유도구
기업용이메일
백업 및 복구
글로벌 리전(Region)
가용 영역(AZ)
콘텐츠 배포지점(Edges)
인프라
핵심 서비스
컴퓨팅가상머신, 자동확장, 부하분산, 컨테이너, 클라우드 기능
스토리지오브젝트, 블록, 파일, 아카이브, Import/Export
데이터베이스관계형, NoSQL, 캐싱, 마이그레이션
네트워킹VPC, DX, DNS
콘텐츠 배포(CDN)
하이브리드환경
데이터 백업
통합 앱개발 환경
전용 회선연결
통합 인증
통합 리소스관리
네트워크통합
서비스접근 제어
사용자인증 관리
암호 키 관리및 저장
모니터링로그
기업 자원설정 및 보고
리소스 사용량및 감사
보안 및 규정 준수
기업 내규정 준수 웹 방화벽
비지니스 앱
비지니스인텔리전스 데이터베이스
DevOps 도구 네트워킹보안 스토리지
IoT
규칙 엔진
디바이스섀도
디바이스SDK
레지스트리
디바이스게이트웨이
개발 및 운영 도구모바일 서비스앱 서비스데이터 분석
데이터웨어하우스
하둡/Spark
실시간 데이터저장
머신 러닝
Elasticsearch서비스
알람 및 큐서비스
워크 플로우
풀-텍스트검색
Email 전송
동영상 변환
원 클릭 앱 개발
모바일 인증
디바이스 동기화
모바일 앱 테스트
푸시 알림
DevOps 리소스 관리
앱 생명주기 관리도구
컨테이너 서비스
클라우드 함수
리소스 템플릿
API 게이트웨이
실시간 데이터분석
비지니스인텔리전스
모바일 분석
모바일 허브
마켓 플레이스
Amazon EC2
가상 서버 (Virtual Machine)
CPU/메모리/네트워크에 따라 다양한 인스턴스 타입 제공
다양한 OS 사용 가능
다양한 과금 옵션 (온디맨드/예약/스팟)
컴퓨팅
Amazon S3
어떤 것이든 저장
오브젝트 저장소
확장 가능
99.999999999% 내구성
Static 웹사이트 호스팅 서비스 가능
사용(저장)한 만큼만 지불
오브젝트 저장소
Amazon CloudFront
콘텐츠 배포 네트워크 (CDN)
이미지, 동영상, 파일, 웹 페이지 등 전송
정적/동적 콘텐츠 캐싱 및 가속
업로드 가속 (PUT, POST HTTP 지원)
실제 전송량 만큼 과금
콘텐츠 배포
Auto Scaling
사용자 정의 조건 (ex, 트래픽, CPU 사용률 등)에 따라
EC2 인스턴스를 자동으로 확장 및 축소
비정상적이거나 연결이 안되는 인스턴스를 교체하여
애플리케이션의 고가용성을 유지
자동 확장
Amazon Lambda
이벤트에 응답하는 코드를 작동시키는 Serverless
컴퓨팅 서비스
사용자 정의 커스텀 로직으로 AWS 서비스를 확장
처리된 요청과 동작한 컴퓨팅 시간만큼만 비용 청구
이벤트 처리
많은 분들이 다음 처럼 질문 하십니다.
“클라우드, AWS 관련 얘기가 많이 들려오는데,어떻게, 어디에 써야 하는지 모르겠어요.” – 아무개
특히나 비지니스 영향이 없어야 하는데..
뭐든지 해볼 수 있습니다!
올인!
개발 및 테스트
실제 서비스
미션 크리티컬
개발을 위한 환경과 테스트 환경
실 서비스 애플리케이션 구축 및 마이그레이션
미션 크리티컬 애플리케이션 구축 및 마이그레이션
사내 표준으로 도입
기존 환경 AWS 클라우드
한번에 옮겨가기
그대로
기존 환경
한번에 옮겨가기
수십~수백대의 서버들FTP, NAS 등의 각종 스토리지L2, L4 장비백업용 테이프
포크리프트
AWS의 장점은?
하지만 비지니스에 영향이 있으면 안되는데…
그래서, 작은 서비스 위주로 옮겨봅시다!비지니스에 영향을 최소화 하는 방향으로요!Serverless 를 활용 한다면 가능 합니다
왜 Serverless 일까요?
Servers서버의 물리적인 장애를
어플리케이션에서 어떻게 처리하지?
내 서버들에 대한 접근을어떻게 통제할 수 있지?
서버의 수를 언제늘려야 하지?
내 서버의 용량을언제 늘려야 하지? 내 예산에 맞는
서버의 크기는?
내 서버들의남아있는 용량은얼마나 되지?
(AAHHHHHHHHH!!)
서버 없는 아키텍쳐
완전 관리형• 프로비져닝 없음• 관리요소 없음• 높은 가용성
개발자 생산성• 중요한 코드에 집중• 빠르게 혁신• 시장에 빠르게 접근
지속적인 스케일링• 자동으로• 스케일 업/다운
AWS의 수많은 Serverless 옵션
스토리지데이터베이스
네트워크
컴퓨팅
콘텐츠 전송
메시징 및 대기열보안
게이트웨이
사용자 관리모니터링 및 로깅
사물 인터넷기계 학습
시나리오 #1
우리는 티켓 예약 서비스를 제공하고 있어요.서버는 15대가 운영 중이고요.유명한 가수의 콘서트 예약 시 부하가 가장 커요. 가끔 서비스 장애가 발생하죠…서버 늘려달라고 해도 평균 사용률이 높지 않다는 이유로 안해주세요.장애 발생하면 실무자들 능력 부족이라 몰고 가는게 너무 슬프네요…
떠오르는 생각들
- AWS 는 필요한만큼만 컴퓨팅을 사용할 수 있는 기능을 제공 한다던데- 예약 페이지만 AWS 에서 구현해볼까?- 그런데 갑자기 늘어나는 트래픽을 감당할만큼 탄력적이긴 할까?
기존 시스템
백엔드 로직 데이터베이스브라우저/모바일
AWS 에서의 예약 페이지
AWS Lambda
Amazon API Gateway
Amazon DynamoDB
Serverless Microservice
AWS Lambda
이벤트에 대한 응답으로 작성한 코드를 실행하는 컴퓨팅서비스
이벤트 트리거들:• 비동기적 혹은 동기적인 직접 호출을 통해• Amazon S3 버킷으로의 오브젝트 업로드를 통해• API Gateway 엔드포인트 호출을 통해• Amazon SNS 메시지를 통해• 그 이외에도 다양한 방법으로
사용처:• 데이터 기반의 감사, 분석 및 알림 등을 수행할 때• 자동으로 확장하는 백엔드 서비스를 만들 때
AWS Lambda 의 이점
지속적으로 확장관리할 서버 없이
코드가 각 트리거의 응답에따라 실행되어 자동으로 확장.코드는 병렬로 실행하고개별적으로 트리거를 처리,워크로드의 볼륨에 정확하게
맞춰 확장
1초 이하의 미터링
매 100ms의 코드 실행시간과 코드가 실행된횟수에 따라 비용이 발생,코드가 실행되지 않을 땐그 어떤 과금도 발생 안함
서버를 준비하거나 관리할 필요없이 코드를 자동으로 실행.코드를 작성하여 업로드만
하면 작동함
1 2 3
-코드
언어-메모리 /실행시간-
서버 확장 Lambda 함수
Lambda의 구성 요소
• Lambda 함수(사용자 작성) • 이벤트 소스• AWS Lambda 서비스• 함수 네트워킹 환경
AWS Lambda 함수
• 사용자 코드(Java, NodeJS, Python)
• 실행 시 코드가 가정하는IAM 역할
• 사용자 코드에 할당된메모리 양(CPU 및네트워크에도 영향을 줌)
유효하고 완전한Lambda 함수
이벤트 소스
• 함수 실행 시기는언제입니까?
• 현재 이벤트 소스로사용되는 수많은 AWS 서비스:
• S3• Kinesis• SNS• DynamoDB• CloudWatch• Config Rules• Amazon Echo• 기타• …및 Amazon API Gateway
(더 많은 서비스 제공 예정)
AWS Lambda 서비스
• 서버 관리 또는 확장 없이 함수 코드를 실행• 함수 실행을 트리거하기 위한 API를 제공• 트리거 시 규모에 상관없이 병렬로 함수가 실행• 함수에 추가 기능을 제공 (로깅, 모니터링)
함수 네트워킹 환경
기본 - VPC 내에 기본 네트워크환경 제공
• 함수의 인터넷 액세스 상시 허용• VPC 배포 자산 액세스 불가
고객 VPC - 사용자 VPC의 컨텍스트내부에서 함수가 실행
• 사용자 VPC 내에서 다른 리소스와프라이빗 통신
• 익숙한 구성 및 동작:– 서브넷– ENI– EC2 보안 그룹– VPC 라우팅 테이블– NAT 게이트웨이
PlayOn! 스포츠 - 비디오 스트림 처리
랩톱인코더
HLS
S3 재생
VOD 스트림모바일
클라이언트
CloudFront 스트리밍
라이브 스트림모바일
클라이언트
CloudFront S3 수집
480p 트랜스코드
HQ 사본
360p 트랜스코드
오디오전용
트랜스코드
썸네일
QOS 분석
Lambda 함수 종속 연결
http://www.slideshare.net/AmazonWebServices/arc308-the-serverless-company-using-aws-lambda
시나리오 #2
우리는 모바일 게임 회사 입니다.초창기 캐주얼 게임으로 크게 성공하고, 중간 중간 소소한 타이틀을 출시 했습니다.실제 매출에 가장 큰 도움이 되는건 아무래도 이벤트를 진행하는 것 이었습니다.하지만 이것도 갈수록 그 효과가 줄어들고 있는 것 같아요. 매출이 줄고 있어요…더욱이 데이터를 기반으로 의사 결정이 중요하다고 하던데…인력도 부족하고 경험도 부족한 상황 입니다.
떠오르는 생각들
- 이벤트 시스템을 AWS 에서 구현해볼까?- 데이터 분석도 하고 싶은데… 해본적이 없구나…- 그런데 구성해 두면 뭐해, 관리 인력이 부족한데…
13시 ~ 18시
매일 12시 30분게임 서버 확장
LambdaScheduling
12시 30분
Amazon Elasticsearch
근 실시간분석
LambdaScheduling
매일 13시/18시이벤트 개시/종료
Amazon SNS
푸시 메시지 전송
Lambda
데이터 처리
Amazon S3
데이터 저장
13시/18시 이벤트 개시/종료 à 푸시 메시지 전송 à 데이터 수집 à 저장 à 처리 à 근 실시간 분석
Lambda
스트림 처리
Kinesis Streams
아키텍처 #1
13시 ~ 18시
매일 12시 30분게임 서버 확장
LambdaScheduling
12시 30분
Amazon Elasticsearch
근 실시간분석
LambdaScheduling
매일 13시/18시이벤트 개시/종료
Amazon SNS
푸시 메시지 전송
Lambda
데이터 처리
Amazon S3
데이터 저장
Kinesis Firehose
아키텍처 #213시/18시 이벤트 개시/종료 à 푸시 메시지 전송 à 데이터 수집 à 저장 à 처리 à 근 실시간 분석
13시 ~ 18시
매일 12시 30분게임 서버 확장
LambdaScheduling
12시 30분
Amazon Elasticsearch
근 실시간분석
LambdaScheduling
매일 13시/18시이벤트 개시/종료
Amazon SNS
푸시 메시지 전송
KinesisAnalytics
Kinesis Streams
Kinesis Firehose
아키텍처 #313시/18시 이벤트 개시/종료 à 푸시 메시지 전송 à 데이터 수집 à 저장 à 처리 à 근 실시간 분석
Amazon Kinesis Streams
스트리밍 데이터를 처리하거나 분석하는 커스텀애플리케이션을 개발
Amazon Kinesis: 스트리밍 데이터를 쉽게 이용AWS 에서 실시간 데이터 스트림 관련 작업을 쉽게하는 서비스
Amazon Kinesis Firehose
방대한 볼륨의 스트리밍데이터를 Amazon S3나Redshift로 쉽게 로드
Amazon Kinesis Analytics
표준 SQL쿼리를 이용하여 데이터 스트림을
쉽게 분석
Amazon Kinesis Streams 는 1초 이하의 처리 지연으로 스트리밍되는 각레코드마다커스텀 처리를 수행하고 선택적으로 스트림 처리 프레임워크들을 사용할 수 있는워크로드에 맞는 서비스
Amazon Kinesis Firehose 는 관리 운영 없이 S3 또는 Redshift 를 기반으로하는기존 분석 툴들을 그대로 사용할 수 있고 60초 또는 그 이상의 데이터 지연을요구하는워크로드에 맞는 서비스
Amazon Kinesis Streams 와 Firehose
Amazon Kinesis Streams
Easy administration: 스트림 생성, 샤드와 수용량 설정. 데이터 쓰루풋 rate 와볼륨에 맞게끔 확장.
Build real-time applications: Kinesis Client Library (KCL), Apache Spark/Storm, AWS Lambda 등을 활용해 스트리밍 데이터 처리
Low cost: 어떠한 크기의 워크로드에도 비용 효율적
• Zero administration: 애플리케이션 개발 및 관리 인프라 없이 S3 또는 Redshift로 스트리밍 데이터를 캡처하여 전송
• Direct-to-data store integration: 간단한 설정만으로 스트리밍 데이터를 일괄처리, 압축, 암호화하여 거의 60초 이내에 목적지에 전송
• Seamless elasticity: 특별한 개입없이 데이터 처리량에 맞는 원활한 확장
Firehose 로 스트리밍데이터를 캡처하고 전송
Firehose는 지속적으로 S3 또는 Redshift로스트리밍 데이터를 로드
선호하는 BI 툴들을 사용하여 스트리밍 데이터를 분석
Amazon Kinesis Firehose방대한 양의 스트리밍 데이터를 Amazon S3 나 Amazon Redshift 로 쉽게 로드
Amazon Kinesis Analytics
Apply SQL on streams: Kinesis Stream 과 Firehose Delivery Stream 에 쉽게연결하여 SQL 기술을 적용.
Build real-time applications: 1초 이내 프로세싱 지연으로 거대한 스트리밍데이터를 지속적으로 처리
Easy Scalability : 데이터 쓰루풋에 맞게끔 탄력적으로 확장
Connect to Kinesis streams,Firehose delivery streams
Run standard SQL queries against data streams
Kinesis Analytics can send processed data to analytics tools so you can create alerts
and respond in real-time
Amazon Elasticsearch Service 는 클라우드에서 Elasticsearch 클러스터를쉽게 구성하고, 운영하며 확장할 수 있는 관리형 서비스
쉽게클러스터를구성하고설정을 관리
IAM 를 통한 보안Amazon CloudWatch를통한 모니터링
CloudTrail 을 통한 감사
AWS 서비스들과 통합 가능CloudWatch Logs, Amazon DynamoDB,
Amazon S3, Amazon Kinesis
ELK 를 지원
Amazon Elasticsearch Service
이벤트 기간내 Top 10 결제 유저
이벤트 스테이지에서 결제 발생 횟수 및 금액
스테이지별 결제 발생 횟수 (녹색: 이벤트 스테이지)
이벤트 대상 아이템 획득 횟수
전체 아이템 획득 횟수(3: 이벤트 아이템)
스테이지별 클리어 성공 및 실패 횟수
그 이외에도
로그 정리 작업통계를 위한 배치 작업알람 작업인프라 자동화 작업
시나리오 #2
우리는 모바일 게임 회사 입니다.초창기 캐주얼 게임으로 크게 성공하고, 중간 중간 소소한 타이틀을 출시 했습니다.실제 매출에 가장 큰 도움이 되는건 아무래도 이벤트를 진행하는 것 이었습니다.하지만 이것도 갈수록 그 효과가 줄어들고 있는 것 같아요. 매출이 줄고 있어요…더욱이 데이터를 기반으로 의사 결정이 중요하다고 하던데…인력도 부족하고 경험도 부족한 상황 입니다.
: 서버없이, 자동화로 인력 부족 해소 및 장애 요인 최소화: 많이 사용되는 스택을 관리형으로 사용하여 경험 부족을 채움: 근 실시간으로 데이터를 분석하여 의사 결정에 활용
시나리오 #3
전 개발자에요.저희 서비스는 잘 동작하고 있어요. 건들고 싶지 않아요.그런데 단 하나 불만이 있는데요.서비스에 기능이 추가되기 전 테스트를 하려면 다양한 환경이 필요한데,그런 환경 구성이 쉽지 않네요. 여유 리소스도 없고 시간도 필요 하고…또, 간단한 웹 기반 툴 만들어서 팀이랑 같이 쓰려니 어디에다 해야 할지...개발 서버는 개발 테스트 용이라 힘들고, 제 컴퓨터를 항상 켜둘 수는 없고…
떠오르는 생각들
- AWS 에서는 다양한 환경을 순식간에 구성할 수 있다고 하던데?- 그런데 간단한 웹 기반 툴을 위해 서버를 유지해야 할까?- 그것도 안 쓸 땐 돈만 나가는데…
SPPutPaste
웹 브라우저
Amazon S3
동적 콘텐츠
정적 콘텐츠
AmazonDynamoDB
간단한 웹 기반 툴: Serverless Pastebin (gist)
Amazon API Gateway
ServerlessPastebin
- pid- content- created_at
SPGetPaste
SPUpdatePaste
SPDeletePaste
모바일
/pastePOSTOPTIONS/{id}POSTGETPUTDELETEOPTIONS
AmazonRoute 53
s3://serverless.piljoong.com
Amazon API Gateway
API의 완전 관리형 서비스
생성 구성 게시
보관 모니터링 보안
Amazon API Gateway
RESTful API 들을 생성, 배포, 유지,관리
63 개의 엣지 로케이션을 가진 콘텐츠전송 네트워크를 활용
DDoS 방어와 쓰로틀링 기능 제공
API 스테이징 가능 (dev, test, prod 등)
AWS Lambda
Amazon API Gateway
Amazon EC2
AWS API
On-prem server
시나리오 #4
AWS Lambda 로 좋아 졌다는 말들은 많이 들었어요.그래도 프로덕션에 적용하기는 위험하지 않을까 합니다. (팀장님이 그래요…)
떠오르는 생각들
- 실제 서비스일 필요는 없지 않을까?- 테스트, 관리 등등에서 활용할 수 있지 않을까?
https://goad.io/
https://goad.io/
참고:
AWS 부하 테스트와 관한 정보는
http://bit.ly/LoadTestingOnAWS
시나리오 #5
저희는 모바일 애플리케이션을 서비스 하고 있습니다.UX 가 강점이고, 아이디어가 좋다는 평가가 많아요.그런데, 무엇이 문제인지 비지니스 관점에서 성적이 좋지 못 해요.특히나 실제 사용자(DAU)는 많은데 이상하네요…
떠오르는 생각들
- 사용자가 원하는게 무엇이고, 어떤 행동 패턴을 보이는지 알면 도움이 될까?- 모바일 개발자는 여유가 있지만, 백엔드 개발자는 부족한데..- 데이터 분석은 뭘 해야 하는거지?
Amazon Mobile Analytics
확장성과 Free Tier
상관 있는 지표에 집중.60분 동안 가용한 사용
리포트
빠름
매일 수백만 사용자로부터 생성되는 수억개의
이벤트를 수용할 수있는 확장성
데이터를직접 소유
”규모와 상관 없이 앱 사용 데이터를 쉽게 수집, 가시화, 이해를 위한 서비스”
수집된 데이터는공유되지 않으며,재사용되지 않음
Key Business Metrics (with one line of code)
1. Monthly Active Users (MAU)
2. Daily Active Users (DAU)
3. New Users, 4. Daily Sessions, 5. Sticky Factor, 6. 1-Day Retention, 7. Avg. Revenue per DAU, 8. Daily Paying Users,9. Avg. Paying DAU
사용자가 행한 특정 행동으로 앱에 대한행동의 통찰력을 얻을 수 있음
얼마나 자주 Custom Event 가 발생하였고,Attribute 와 Metric 의 추가 정보를 포함한리포트를 제공
예제
좋아요/공유 횟수를추적
레벨별 사용자의플레이 중지 비율에
대한 이해
사용자 세션별 음악이재생된 횟수
In-app 아이템의인기도
Custom Events
Mobile Analytics 초기화
// Within your activityprivate static MobileAnalyticsManager analytics;
// Within your activity onCreate()try {
AnalyticsConfig options = new AnalyticsConfig();options.withAllowsWANDelivery(true);analytics = MobileAnalyticsManager.getOrCreateInstance(
getApplicationContext(),"YOU MOBILE ANALYTICS APP ID",Regions.US_EAST_1,cognitoProvider, // You need a Cognito credential provideroptions
);} catch(InitializationException ex) {
Log.e(this.getClass().getName(), "Failed to initialize Amazon Mobile Analytics", ex);}
Activity Lifecycle 관리
@Overrideprotected void onPause() {
super.onPause();if(analytics != null) {
analytics.getSessionClient().pauseSession();// Attempt to send any events that have been recorded to the Mobile Analytics service.analytics.getEventClient().submitEvents();
}}
@Overrideprotected void onResume() {
super.onPause();if(analytics != null) {
analytics.getSessionClient().resumeSession();}
}
Custom Event 기록
public void onLevelComplete(String level, String difficulty, double timeToComplete, int playerState) {
// Create a Level Complete event with some attributes and metrics(measurements)// Attributes and metrics can be added using with statementsAnalyticsEvent levelCompleteEvent = analytics.getEventClient().createEvent("LevelComplete")
.withAttribute("LevelName", levelName)
.withAttribute("Difficulty", difficulty)
.withMetric("TimeToComplete", timeToComplete);
// attributes and metrics can also be added using add statementsif (playerState == STATE_LOSE)
levelCompleteEvent.addAttribute("EndState", "Lose");else if (playerState == STATE_WIN)
levelCompleteEvent.addAttribute("EndState", "Win");
// Record the Level Complete eventanalytics.getEventClient().recordEvent(levelCompleteEvent);
}
this.onLevelComplete(”Taipei Hotpot Hotspot", "Very Difficult", 2734, STATE_WIN);
Monetization Event 기록
EventClient eventClient = mobileAnalyticsManager.getEventClient();
// create a builder that can record purchase events for Amazon IAPAmazonMonetizationEventBuilder builder = AmazonMonetizationEventBuilder.create(eventClient);Event purchaseEvent = builder.withProductId(purchasedItem.getSku())
.withFormattedItemPrice(purchasedItem.getPrice())
.withQuantity(1).build();
eventClient.recordEvent(purchaseEvent);
// create a builder that can record purchase events for Google Play IAPGooglePlayMonetizationEventBuilder builder = GooglePlayMonetizationEventBuilder.create(eventClient); Event purchaseEvent = builder.withProductId(sku)
.withFormattedItemPrice(price)
.withTransactionId(purchase.getOrderId())
.withQuantity(1).build();
eventClient.recordEvent(purchaseEvent);
MonetizationEventBuilder
AmazonMonetizationEventBuilderCustomMonetizationEventBuilderGooglePlayMonetizationEventBuilderVirtualMonetizationEventBuilder
S3 로 추출 후 다양한 방법으로 분석
Mobile Client
Amazon S3
Amazon Redshift
Amazon Mobile Analytics
Hadoop/SparkAmazon EMR
Amazon Glacier
Archive
Batch
Query And Visualize Data
Mobile Client
Amazon S3
Amazon Redshift
Amazon Mobile Analytics
Augment Your Data
External Data
S3 로 추출 후 Redshift 적재 및 가시화
시나리오 #6
저희는 모바일 애플리케이션 개발을그냥 처음부터 다 AWS 에서 하고 싶어요!
사용자 인증
접근 제어
사용자 행동 분석
콘텐츠 저장 및 공유
데이터 동기화
미디어 전송
공유 데이터 저장
실 시간 데이터 스트림비지니스 로직 수행
푸시 알림 전송
사용자와 인증 제공관리
클라우드 리소스에안전하게 접근
디바이스 간의사용자 설정 동기화
활성 유저,인게이지먼트 추적
서버 없이 상태 없는커스텀 코드 실행
사용자 제작 사진과 미디어저장 및 공유
모바일 디바이스 자동 인지콘텐츠를 빠르게 글로벌로 전송
메시지를 전송하여사용자 인게이지먼트 레벨 향상
사용자와 디바이스 간NoSQL 데이터를 빠르게 저장 및 쿼리
실 시간 클릭스트림 로그 수집 및빠르게 동작 수행
TYCOON
麻辣火鍋
TYCOON
麻辣火鍋사용자 인증
접근 제어
사용자 행동 분석
데이터 동기화
Amazon Mobile Analytics
Amazon Cognito (Sync)
AWS Identity and Access Management
Amazon Cognito(Identity)
콘텐츠 저장 및 공유
미디어 전송
Amazon S3
Amazon CloudFront(Device Detection)
공유 데이터 저장
Amazon DynamoDB
Amazon Lambda
푸시 알림 전송Amazon SNS Mobile Push
AWS Mobile SDK실 시간 데이터 스트림비지니스 로직 수행
Amazon Kinesis
그 이외에 Lambda 활용 방안
Lambda를 활용하여 CloudTrail 로그 감사
AWS Lambda
Amazon S3Amazon CloudTrail
Amazon SNS
AWS IAM
Lambda를 활용하여 인프라 운영 자동화
AWS Lambda
Amazon SNS
Amazon CloudWatch Alarm
ec2runInstance
ecsstartTask
beanstalkupdateApp
kinesissplitShard
Any API call
https://aws.amazon.com/blogs/compute/scaling-amazon-ecs-services-automatically-using-amazon-cloudwatch-and-aws-lambda/
Lambda를 활용하여 Lambda function 배포
https://aws.amazon.com/blogs/compute/dynamic-github-actions-with-aws-lambda/
AWS Lambda
Amazon SNS
GitHub Repo
lambda createFn ()
Serverless 아키텍처 패턴
마이크로서비스
모바일 백엔드
실시간 분석 엔진
> 정리
AWS 활용 = Building Block 조립
작은 서비스 구축에 적절한다양한 서비스들을 유연하게 조립하여 활용
무엇이든 구축해 보세요!
Amazon API Gateway
AWS Lambda AmazonDynamoDB
참고자료는 여기에!
https://aws.amazon.com/ko/https://aws.amazon.com/ko/new/https://aws.amazon.com/ko/blogs/aws/http://aws.amazon.com/ko/documentation/https://aws.amazon.com/ko/whitepapers/https://twitter.com/awskorea
감사합니다!
top related