4. AWS 클라우드의 다양하고 폭넓은 서비스
고객 및 기술
지원
영업 지원
고객지원
프로페셔널
컨설팅
교육 및
인증
보안 및
빌링
시스템
파트너
생태계
솔루션즈
아키텍트
엔터프라이즈
가상
데스크톱
기업용 공유
도구
기업용
이메일
백업 및 복구
글로벌 리전
(Region)
가용 영역
(AZ)
콘텐츠 배포
지점(Edges)
인프라
핵심 서비스
컴퓨팅
가상머신, 자동확장, 부하분산,
컨테이너, 클라우드 기능
스토리지
오브젝트, 블록, 파일,
아카이브, Import/Export
데이터베이스
관계형, NoSQL, 캐싱,
마이그레이션
네트워킹
VPC, DX, DNS
콘텐츠 배포
(CDN)
하이브리드
환경
데이터 백업
통합 앱
개발 환경
전용 회선
연결
통합 인증
통합 리소스
관리
네트워크
통합
서비스
접근 제어
사용자
인증 관리
암호 키 관리
및 저장
모니터링
로그
기업 자원
설정 및 보고
리소스 사용량
및 감사
보안 및 규정 준수
기업 내
규정 준수
웹 방화벽
비지니
스 앱
비지니스
인텔리전스 데이터베이스
DevOps
도구
네트워킹보안 스토리지
IoT
규칙 엔진
디바이스
섀도
디바이스
SDK
레지스트리
디바이스
게이트웨이
개발 및 운영 도구모바일 서비스앱 서비스데이터 분석
데이터웨어
하우스
하둡/Spark
실시간 데이터
저장
머신 러닝
Elasticsearch
서비스
알람 및 큐
서비스
워크 플로우
풀-텍스트
검색
Email 전송
동영상 변환
원 클릭 앱 개발
모바일 인증
디바이스 동기화
모바일 앱 테스트
푸시 알림
DevOps 리소스 관리
앱 생명주기 관리
도구
컨테이너 서비스
클라우드 함수
리소스 템플릿
API
게이트웨이
실시간 데이터
분석
비지니스
인텔리전스
모바일 분석
모바일 허브
마켓 플레이스
5. Amazon EC2
가상 서버 (Virtual Machine)
CPU/메모리/네트워크에 따라 다양한 인스턴스 타입 제공
다양한 OS 사용 가능
다양한 과금 옵션 (온디맨드/예약/스팟)
컴퓨팅
6. Amazon S3
어떤 것이든 저장
오브젝트 저장소
확장 가능
99.999999999% 내구성
Static 웹사이트 호스팅 서비스 가능
사용(저장)한 만큼만 지불
오브젝트 저장소
7. Amazon CloudFront
콘텐츠 배포 네트워크 (CDN)
이미지, 동영상, 파일, 웹 페이지 등 전송
정적/동적 콘텐츠 캐싱 및 가속
업로드 가속 (PUT, POST HTTP 지원)
실제 전송량 만큼 과금
콘텐츠 배포
8. Auto Scaling
사용자 정의 조건 (ex, 트래픽, CPU 사용률 등)에 따라
EC2 인스턴스를 자동으로 확장 및 축소
비정상적이거나 연결이 안되는 인스턴스를 교체하여
애플리케이션의 고가용성을 유지
자동 확장
9. Amazon Lambda
이벤트에 응답하는 코드를 작동시키는 Serverless
컴퓨팅 서비스
사용자 정의 커스텀 로직으로 AWS 서비스를 확장
처리된 요청과 동작한 컴퓨팅 시간만큼만 비용 청구
이벤트 처리
10. 많은 분들이 다음 처럼 질문 하십니다.
“클라우드, AWS 관련 얘기가 많이 들려오는데,
어떻게, 어디에 써야 하는지 모르겠어요.” – 아무개
특히나 비지니스 영향이 없어야 하는데..
17. Servers서버의 물리적인 장애를
어플리케이션에서 어떻게 처리하지?
내 서버들에 대한 접근을
어떻게 통제할 수 있지?
서버의 수를 언제
늘려야 하지?
내 서버의 용량을
언제 늘려야 하지? 내 예산에 맞는
서버의 크기는?
내 서버들의 남아있는 용량은
얼마나 되지?
(AAHHHHHHHHH!!)
18. 서버 없는 아키텍쳐
완전 관리형
• 프로비져닝 없음
• 관리요소 없음
• 높은 가용성
개발자 생산성
• 중요한 코드에 집중
• 빠르게 혁신
• 시장에 빠르게 접근
지속적인 스케일링
• 자동으로
• 스케일 업/다운
19. AWS의 수많은 Serverless 옵션
스토리지
데이터베이스
네트워크
컴퓨팅
콘텐츠 전송
메시징 및 대기열보안
게이트웨이
사용자 관리
모니터링 및 로깅
사물 인터넷
기계 학습
20. 시나리오 #1
우리는 티켓 예약 서비스를 제공하고 있어요.
서버는 15대가 운영 중이고요.
유명한 가수의 콘서트 예약 시 부하가 가장 커요. 가끔 서비스 장애가 발생하죠…
서버 늘려달라고 해도 평균 사용률이 높지 않다는 이유로 안해주세요.
장애 발생하면 실무자들 능력 부족이라 몰고 가는게 너무 슬프네요…
21. 떠오르는 생각들
- AWS 는 필요한만큼만 컴퓨팅을 사용할 수 있는 기능을 제공 한다던데
- 예약 페이지만 AWS 에서 구현해볼까?
- 그런데 갑자기 늘어나는 트래픽을 감당할만큼 탄력적이긴 할까?
23. AWS 에서의 예약 페이지
AWS
Lambda
Amazon API
Gateway
Amazon
DynamoDB
Serverless Microservice
24. AWS Lambda
이벤트에 대한 응답으로 작성한 코드를 실행하는 컴퓨팅
서비스
이벤트 트리거들:
• 비동기적 혹은 동기적인 직접 호출을 통해
• Amazon S3 버킷으로의 오브젝트 업로드를 통해
• API Gateway 엔드포인트 호출을 통해
• Amazon SNS 메시지를 통해
• 그 이외에도 다양한 방법으로
사용처:
• 데이터 기반의 감사, 분석 및 알림 등을 수행할 때
• 자동으로 확장하는 백엔드 서비스를 만들 때
25. AWS Lambda 의 이점
지속적으로 확장관리할 서버 없이
코드가 각 트리거의 응답에
따라 실행되어 자동으로 확장.
코드는 병렬로 실행하고
개별적으로 트리거를 처리,
워크로드의 볼륨에 정확하게
맞춰 확장
1초 이하의 미터링
매 100ms의 코드 실행
시간과 코드가 실행된
횟수에 따라 비용이 발생,
코드가 실행되지 않을 땐
그 어떤 과금도 발생 안함
서버를 준비하거나 관리할 필요
없이 코드를 자동으로 실행.
코드를 작성하여 업로드만
하면 작동함
1 2 3
29. Lambda의 구성 요소
• Lambda 함수(사용자 작성)
• 이벤트 소스
• AWS Lambda 서비스
• 함수 네트워킹 환경
30. AWS Lambda 함수
• 사용자 코드
(Java, NodeJS, Python)
• 실행 시 코드가 가정하는
IAM 역할
• 사용자 코드에 할당된
메모리 양(CPU 및
네트워크에도 영향을 줌)
유효하고 완전한
Lambda 함수
31. 이벤트 소스
• 함수 실행 시기는
언제입니까?
• 현재 이벤트 소스로
사용되는 수많은 AWS
서비스:
• S3
• Kinesis
• SNS
• DynamoDB
• CloudWatch
• Config Rules
• Amazon Echo
• 기타
• …및 Amazon API Gateway
(더 많은 서비스 제공 예정)
32. AWS Lambda 서비스
• 서버 관리 또는 확장 없이 함수 코드를 실행
• 함수 실행을 트리거하기 위한 API를 제공
• 트리거 시 규모에 상관없이 병렬로 함수가 실행
• 함수에 추가 기능을 제공 (로깅, 모니터링)
33. 함수 네트워킹 환경
기본 - VPC 내에 기본 네트워크
환경 제공
• 함수의 인터넷 액세스 상시 허용
• VPC 배포 자산 액세스 불가
고객 VPC - 사용자 VPC의 컨텍스트
내부에서 함수가 실행
• 사용자 VPC 내에서 다른 리소스와
프라이빗 통신
• 익숙한 구성 및 동작:
– 서브넷
– ENI
– EC2 보안 그룹
– VPC 라우팅 테이블
– NAT 게이트웨이
34. PlayOn! 스포츠 - 비디오 스트림 처리
랩톱
인코더
HLS
S3 재생
VOD 스트림
모바일
클라이언트
CloudFront
스트리밍
라이브 스트림
모바일
클라이언트
CloudFront S3 수집
480p
트랜스코드
HQ 사본
360p
트랜스코드
오디오
전용
트랜스코드
썸네일
QOS 분석
Lambda 함수 종속 연결
http://www.slideshare.net/AmazonWebServices/arc308-the-serverless-company-using-aws-lambda
35. 시나리오 #2
우리는 모바일 게임 회사 입니다.
초창기 캐주얼 게임으로 크게 성공하고, 중간 중간 소소한 타이틀을 출시 했습니다.
실제 매출에 가장 큰 도움이 되는건 아무래도 이벤트를 진행하는 것 이었습니다.
하지만 이것도 갈수록 그 효과가 줄어들고 있는 것 같아요. 매출이 줄고 있어요…
더욱이 데이터를 기반으로 의사 결정이 중요하다고 하던데…
인력도 부족하고 경험도 부족한 상황 입니다.
36. 떠오르는 생각들
- 이벤트 시스템을 AWS 에서 구현해볼까?
- 데이터 분석도 하고 싶은데… 해본적이 없구나…
- 그런데 구성해 두면 뭐해, 관리 인력이 부족한데…
37. 13시 ~ 18시
매일 12시 30분
게임 서버 확장
Lambda
Scheduling
12시 30분
Amazon
Elasticsearch
근 실시간
분석
Lambda
Scheduling
매일 13시/18시
이벤트 개시/종료
Amazon
SNS
푸시 메시지 전송
Lambda
데이터 처리
Amazon S3
데이터 저장
13시/18시 이벤트 개시/종료 à 푸시 메시지 전송 à 데이터 수집 à 저장 à 처리 à 근 실시간 분석
Lambda
스트림 처리
Kinesis
Streams
아키텍처 #1
38. 13시 ~ 18시
매일 12시 30분
게임 서버 확장
Lambda
Scheduling
12시 30분
Amazon
Elasticsearch
근 실시간
분석
Lambda
Scheduling
매일 13시/18시
이벤트 개시/종료
Amazon
SNS
푸시 메시지 전송
Lambda
데이터 처리
Amazon S3
데이터 저장
Kinesis
Firehose
아키텍처 #2
13시/18시 이벤트 개시/종료 à 푸시 메시지 전송 à 데이터 수집 à 저장 à 처리 à 근 실시간 분석
39. 13시 ~ 18시
매일 12시 30분
게임 서버 확장
Lambda
Scheduling
12시 30분
Amazon
Elasticsearch
근 실시간
분석
Lambda
Scheduling
매일 13시/18시
이벤트 개시/종료
Amazon
SNS
푸시 메시지 전송
Kinesis
Analytics
Kinesis
Streams
Kinesis
Firehose
아키텍처 #3
13시/18시 이벤트 개시/종료 à 푸시 메시지 전송 à 데이터 수집 à 저장 à 처리 à 근 실시간 분석
40. Amazon Kinesis
Streams
스트리밍 데이터를 처리
하거나 분석하는 커스텀
애플리케이션을 개발
Amazon Kinesis: 스트리밍 데이터를 쉽게 이용
AWS 에서 실시간 데이터 스트림 관련 작업을 쉽게하는 서비스
Amazon Kinesis
Firehose
방대한 볼륨의 스트리밍
데이터를 Amazon S3나
Redshift로 쉽게 로드
Amazon Kinesis
Analytics
표준 SQL쿼리를 이용
하여 데이터 스트림을
쉽게 분석
41. Amazon Kinesis Streams 는 1초 이하의 처리 지연으로 스트리밍되는 각
레코드마다
커스텀 처리를 수행하고 선택적으로 스트림 처리 프레임워크들을 사용할 수 있는
워크로드에 맞는 서비스
Amazon Kinesis Firehose 는 관리 운영 없이 S3 또는 Redshift 를 기반으로하는
기존 분석 툴들을 그대로 사용할 수 있고 60초 또는 그 이상의 데이터 지연을
요구하는
워크로드에 맞는 서비스
Amazon Kinesis Streams 와 Firehose
42. Amazon Kinesis Streams
Easy administration: 스트림 생성, 샤드와 수용량 설정. 데이터 쓰루풋 rate 와
볼륨에 맞게끔 확장.
Build real-time applications: Kinesis Client Library (KCL), Apache
Spark/Storm, AWS Lambda 등을 활용해 스트리밍 데이터 처리
Low cost: 어떠한 크기의 워크로드에도 비용 효율적
43. • Zero administration: 애플리케이션 개발 및 관리 인프라 없이 S3 또는 Redshift로 스트리밍 데이터
를 캡처하여 전송
• Direct-to-data store integration: 간단한 설정만으로 스트리밍 데이터를 일괄처리, 압축, 암호화
하여 거의 60초 이내에 목적지에 전송
• Seamless elasticity: 특별한 개입없이 데이터 처리량에 맞는 원활한 확장
Firehose 로 스트리밍
데이터를 캡처하고 전송
Firehose는 지속적으로 S3 또는 Redshift로
스트리밍 데이터를 로드
선호하는 BI 툴들을 사용하여 스트리밍 데이터를 분석
Amazon Kinesis Firehose
방대한 양의 스트리밍 데이터를 Amazon S3 나 Amazon Redshift 로 쉽게 로드
44. 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
45. Amazon Elasticsearch Service 는 클라우드에서 Elasticsearch 클러스터를
쉽게 구성하고, 운영하며 확장할 수 있는 관리형 서비스
쉽게 클러스터를
구성하고설정을 관리
IAM 를 통한 보안
Amazon CloudWatch
를
통한 모니터링
CloudTrail 을 통한 감사
AWS 서비스들과 통합 가능
CloudWatch Logs,
Amazon DynamoDB,
Amazon S3, Amazon Kinesis
ELK 를 지원
Amazon Elasticsearch Service
46. 이벤트 기간내 Top 10 결제 유저
이벤트 스테이지에서 결제 발생 횟수 및 금액
스테이지별 결제 발생 횟수 (녹색: 이벤트 스테이지)
이벤트 대상 아이템 획득 횟수
전체 아이템 획득 횟수(3: 이벤트 아이템)
스테이지별 클리어 성공 및 실패 횟수
48. 시나리오 #2
우리는 모바일 게임 회사 입니다.
초창기 캐주얼 게임으로 크게 성공하고, 중간 중간 소소한 타이틀을 출시 했습니다.
실제 매출에 가장 큰 도움이 되는건 아무래도 이벤트를 진행하는 것 이었습니다.
하지만 이것도 갈수록 그 효과가 줄어들고 있는 것 같아요. 매출이 줄고 있어요…
더욱이 데이터를 기반으로 의사 결정이 중요하다고 하던데…
인력도 부족하고 경험도 부족한 상황 입니다.
: 서버없이, 자동화로 인력 부족 해소 및 장애 요인 최소화
: 많이 사용되는 스택을 관리형으로 사용하여 경험 부족을 채움
: 근 실시간으로 데이터를 분석하여 의사 결정에 활용
49. 시나리오 #3
전 개발자에요.
저희 서비스는 잘 동작하고 있어요. 건들고 싶지 않아요.
그런데 단 하나 불만이 있는데요.
서비스에 기능이 추가되기 전 테스트를 하려면 다양한 환경이 필요한데,
그런 환경 구성이 쉽지 않네요. 여유 리소스도 없고 시간도 필요 하고…
또, 간단한 웹 기반 툴 만들어서 팀이랑 같이 쓰려니 어디에다 해야 할지...
개발 서버는 개발 테스트 용이라 힘들고, 제 컴퓨터를 항상 켜둘 수는 없고…
50. 떠오르는 생각들
- AWS 에서는 다양한 환경을 순식간에 구성할 수 있다고 하던데?
- 그런데 간단한 웹 기반 툴을 위해 서버를 유지해야 할까?
- 그것도 안 쓸 땐 돈만 나가는데…
51. SPPutPaste
웹 브라우저
Amazon S3
동적 콘텐츠
정적 콘텐츠
Amazon
DynamoDB
간단한 웹 기반 툴: Serverless Pastebin (gist)
Amazon API
Gateway
ServerlessPastebin
- pid
- content
- created_at
SPGetPaste
SPUpdatePaste
SPDeletePaste
모바일
/paste
POST
OPTIONS
/{id}
POST
GET
PUT
DELETE
OPTIONS
Amazon
Route 53
s3://serverless.piljoong.com
54. Amazon API Gateway
RESTful API 들을 생성, 배포, 유지,
관리
63 개의 엣지 로케이션을 가진 콘텐츠
전송 네트워크를 활용
DDoS 방어와 쓰로틀링 기능 제공
API 스테이징 가능 (dev, test, prod 등)
AWS Lambda
Amazon API
Gateway
Amazon EC2
AWS API
On-prem server
55. 시나리오 #4
AWS Lambda 로 좋아 졌다는 말들은 많이 들었어요.
그래도 프로덕션에 적용하기는 위험하지 않을까 합니다. (팀장님이 그래요…)
56. 떠오르는 생각들
- 실제 서비스일 필요는 없지 않을까?
- 테스트, 관리 등등에서 활용할 수 있지 않을까?
60. 시나리오 #5
저희는 모바일 애플리케이션을 서비스 하고 있습니다.
UX 가 강점이고, 아이디어가 좋다는 평가가 많아요.
그런데, 무엇이 문제인지 비지니스 관점에서 성적이 좋지 못 해요.
특히나 실제 사용자(DAU)는 많은데 이상하네요…
61. 떠오르는 생각들
- 사용자가 원하는게 무엇이고, 어떤 행동 패턴을 보이는지 알면 도움이 될까?
- 모바일 개발자는 여유가 있지만, 백엔드 개발자는 부족한데..
- 데이터 분석은 뭘 해야 하는거지?
62. Amazon Mobile Analytics
확장성과 Free Tier
상관 있는 지표에 집중.
60분 동안 가용한 사용
리포트
빠름
매일 수백만 사용자로
부터 생성되는 수억개의
이벤트를 수용할 수
있는 확장성
데이터를
직접 소유
”규모와 상관 없이 앱 사용 데이터를 쉽게 수집, 가시화, 이해를 위한 서비스”
수집된 데이터는
공유되지 않으며,
재사용되지 않음
63. 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
64.
65. 사용자가 행한 특정 행동으로 앱에 대한
행동의 통찰력을 얻을 수 있음
얼마나 자주 Custom Event 가 발생하였고,
Attribute 와 Metric 의 추가 정보를 포함한
리포트를 제공
예제
좋아요/공유 횟수를
추적
레벨별 사용자의
플레이 중지 비율에
대한 이해
사용자 세션별 음악이
재생된 횟수
In-app 아이템의
인기도
Custom Events
66. Mobile Analytics 초기화
// Within your activity
private 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 provider
options
);
} catch(InitializationException ex) {
Log.e(this.getClass().getName(), "Failed to initialize Amazon Mobile Analytics", ex);
}
67. Activity Lifecycle 관리
@Override
protected 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();
}
}
@Override
protected void onResume() {
super.onPause();
if(analytics != null) {
analytics.getSessionClient().resumeSession();
}
}
68. 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 statements
AnalyticsEvent levelCompleteEvent = analytics.getEventClient().createEvent("LevelComplete")
.withAttribute("LevelName", levelName)
.withAttribute("Difficulty", difficulty)
.withMetric("TimeToComplete", timeToComplete);
// attributes and metrics can also be added using add statements
if (playerState == STATE_LOSE)
levelCompleteEvent.addAttribute("EndState", "Lose");
else if (playerState == STATE_WIN)
levelCompleteEvent.addAttribute("EndState", "Win");
// Record the Level Complete event
analytics.getEventClient().recordEvent(levelCompleteEvent);
}
this.onLevelComplete(”Taipei Hotpot Hotspot", "Very Difficult", 2734, STATE_WIN);
69. Monetization Event 기록
EventClient eventClient = mobileAnalyticsManager.getEventClient();
// create a builder that can record purchase events for Amazon IAP
AmazonMonetizationEventBuilder 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 IAP
GooglePlayMonetizationEventBuilder builder = GooglePlayMonetizationEventBuilder.create(eventClient);
Event purchaseEvent = builder.withProductId(sku)
.withFormattedItemPrice(price)
.withTransactionId(purchase.getOrderId())
.withQuantity(1).build();
eventClient.recordEvent(purchaseEvent);
MonetizationEventBuilder
AmazonMonetizationEventBuilder
CustomMonetizationEventBuilder
GooglePlayMonetizationEventBuilder
VirtualMonetizationEventBuilder
70. S3 로 추출 후 다양한 방법으로 분석
Mobile
Client
Amazon
S3
Amazon
Redshift
Amazon Mobile
Analytics
Hadoop/Spark
Amazon EMR
Amazon
Glacier
Archive
Batch
71. Query And Visualize Data
Mobile
Client
Amazon
S3
Amazon
Redshift
Amazon Mobile
Analytics
Augment Your Data
External Data
S3 로 추출 후 Redshift 적재 및 가시화
73. 사용자 인증
접근 제어
사용자 행동 분석
콘텐츠 저장 및 공유
데이터 동기화
미디어 전송
공유 데이터 저장
실 시간 데이터 스트림비지니스 로직 수행
푸시 알림 전송
사용자와 인증 제공
관리
클라우드 리소스에
안전하게 접근
디바이스 간의
사용자 설정 동기화
활성 유저,
인게이지먼트 추적
서버 없이 상태 없는
커스텀 코드 실행
사용자 제작 사진과 미디어
저장 및 공유
모바일 디바이스 자동 인지
콘텐츠를 빠르게 글로벌로 전송
메시지를 전송하여
사용자 인게이지먼트 레벨 향상
사용자와 디바이스 간
NoSQL 데이터를 빠르게 저장 및 쿼리
실 시간 클릭스트림 로그 수집 및
빠르게 동작 수행
TYCOON
麻辣火鍋
74. 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