SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon DynamoDB 신기능
On-Demand and Transaction
윤평호 AWS Community Day 2019@20190125
Software Engineer
AWSKRUG
Feel free to contact: learder@gmail.com
D a t a b a s e / A n a l y t i c s
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
목차
1. 온 디맨드 용량 방식
1. 소개
2. 기존 방식과 비교
3. 언제 사용하지?
2. 트랜젝션 지원
1. 왜 필요하고
2. 어떻게 사용하고 사용 예를 보고
3. 추가 기능 및 비용은?
4. 사용예를 하나 더 살펴봅시다.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
다이나모디비(DynamoDB)
규모에 관계없이 완전히 관리되는 비관계형 데이테베이스
Performance at scale
Single-digit millisecond response
Consistent perf at any scale
Virtually unlimited throughput
Secondary indexes
Flexible data model
Enterprise ready
Encryption at rest and transit
Fine-grained access control
99.99% service level agreement
Backup and restore
Fully managed
Security
Durability
Availability
Adaptive capacity
Maintenance free
Global tables
DynamoDB Streams
Time To Live
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
완전 관리형(Fully Managed)
규모에 관계없이 완전히 관리되는 비관계형 데이테베이스
비지니스 로직에 좀 더 집중할 수 있습니다!
Security
Operating system patching
Database patching
Access control
Audit
Encryption
Compliance
Durability
Sustain server, rack, and datacenter outages
Re-replicate data quickly upon hardware failure
Manage backup and restore
Availability
High availability configuration
Monitoring
Cross-region replication
Performance
Performance tuning
Indexing
In-memory caching
Scalability
Capacity planning
Host provisioning
Host repair and retirement
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
데이터베이스 용량 산정
실제 사용량
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
관계형 데이터베이스에서는 일반적으로 Scale-Up
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
NoSQL 에서는 Scale-Out
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
다이나모디비(DynamoDB, Managed NoSQL database)
서버리스
관리할 소프트웨어나
서버가 없음
대규모확장성
원하는만큼 많은
처리량을 원할때
고성능
일관된 1자리수
밀리세컨드 응답
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
온디맨드(용량)?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
온디맨드(용량)의 기능과 장점
기능
• 용량 계산, 계획 하거나 예약할 필요없음
• 사용한 읽기, 쓰기 개수만큼 과금
장점
• 용량을 낭비하거나 부족함이 없음.
• 트래픽에 따라 즉각적으로 작업 부하를 자동 조정
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
기존 용량 산정 방식과 비교
최대 소비량을 관리
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
온디맨드(용량) 요금은?
서울 리전 (ap-northeast-2)은? 조금…
• $1.3556 쓰기 요청 100만개당
• $0.2711 읽기 요청 100만 개당
• $2.033 복제된 쓰기 요청 100만 개당
(글로벌 테이블)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
온디맨드(용량)은 언제 사용하나?
• 예약 용량(Provisioned)
• 싸다. 라이브 운영은 이것으로! Burst capacity 로 유용히
• 오토스케일(Auto-scale)
• 스케일업 하는 지연시간 :<
• 지정한 사용율을 유지하지 못하면 스케일링 안됨
• 상한 하한을 정할 수 있으나…
• 온디맨드(On-Demand)
• 서비스는 해야겠는데, 사용양이 예측 불가일 때에
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
이 기능이 중요한 이유?
트랜젝션 API 로 실생활의 트랜젝션을 (쉽게) 구현할 수 있습니다.
동시다발적 쓰기(write),
여러 아이템을 갱신(update)
처리하기 전에
여러가지 조건 검사
다양한 테이블 간에
데이터의 일관성 유지
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
1번의
API
호출
다이나모디비 트랜젝션
• 데드락 X
• 긴 트랜잭션 시간 X
• 열린 트랜젝션 X
• 관리되지 않은 동시성 X
• DBA의 괴로움 X
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
추가된 트랜젝션 API
TransactWriteItems
작업을 10 개 까지 묶을 수 있음
조건 추가 가능
모든 조건이 맞을 때, 쓰기(write) 작업 수행
TransactGetItems
작업을 10개까지 묶을 수 있음
일관되게, 모든 항목의 격리된 스냅샷을 가지고 옴
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
다이나모디비에서 ACID 지원은?
• 이전에는 단일 아이템 연산(single-item operations)만 ACID 지원
• 이제는 다중 아이템 연산(multi-item operations)에도 ACID 지원
비 트랜잭션 트랜잭션
신규 API
TransactGetItems
TransactWriteItems
기존 API
BatchGetItem, BatchWriteItem
Query, Scan
GetItem, PutItem, UpdateItem,
DeleteItem
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
NoSQL 트랜젝션의 성공 경로?
설계 선택
• 계정 내에 모든 항목에 트랜젝션 가능
• 서비스 API 와 클라이언트 API
• 요청/응답 기반
• 작업 개수 제한(10개)
어떤 면에서 도움이 되나?
• 데이터와 관계를 늘릴 수 있다
• 복잡성은 줄이고, 비용과 성능 개선이 쉽다
• 비지니스 로직은 애플리케이션에 두고,
데이터베이스 단에 두지 않음
• 일관된 낮은 대기 시간으로, 데드락 발생 안함
• 일관된 낮은 대기시간으로, 높은 가용성 보장
• 대다수의 트랜젝션 사용 사례를 지원함
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
// Status of Hammer57
GET {
“TableName”:"Gamers",
“Key” : {
"GamerTag":{“S”:"Hammer57”},
"Type":{“S”: "Status”}
}
}
// Return all Hammer57
Gamers
GamerTag = :a
:a Hammer57
Gamers
Primary Key
Attributes
Gamer Tag Type
Hammer57
Rank
Level Points Tier
87 4050 Elite
Status
Health Progress
90 30
Weapon
Class Damage Range
Taser 87% 50
Assets
Coins
1400
FluffyDuffy
Rank
Level Points Tier
5 1072 Trainee
Status
Health Progress
37 8
Assets
Coins
0
비 트랜젝션은 어떤 모양?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
// Atomic Update of Hammer57
// Health & Coins
Gamers
Primary Key
Attributes
Gamer Tag Type
Hammer57
Rank
Level Points Tier
87 4050 Elite
Status
Health Progress
10 30
Weapon
Class Damage Range
Taser 87% 50
Assets
Coins
1400
FluffyDuffy
Rank
Level Points Tier
5 1072 Trainee
Status
Health Progress
37 8
Assets
Coins
0
트랜젝션이 필요한 때?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
// Atomic Update of Hammer57
// Health & Coins
{ "TransactItems" : [ {
"Update ": {
"TableName": "Gamers",
”Key" :{"GamerTag" : {"S": "Hammer57"},
"Type" : {"S" : "Status"}},
"UpdateExpression" : "Set health = :nhealth",
"ExpressionAttributeValues":{":nhealth":{“N”:“100”}},
}
},
{
"Update ": {
"TableName": "Gamers",
”Key" :{"GamerTag" : {"S": "Hammer57"},
"Type" : {"S" : "Assets"} },
"ConditionExpression" : "coins > :cost",
"UpdateExpression" : "Set coins = coins - :cost",
"ExpressionAttributeValues" :{":cost":{“N”:“400”}}
}
}]
}
Gamers
Primary Key
Attributes
Gamer Tag Type
Hammer57
Rank
Level Points Tier
87 4050 Elite
Status
Health Progress
100 30
Weapon
Class Damage Range
Taser 87% 50
Assets
Coins
1000
FluffyDuffy
Rank
Level Points Tier
5 1072 Trainee
Status
Health Progress
37 8
Assets
Coins
0
트랜젝션 예
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
트랜젝션이 실패하는 경우?
• 아이템 단위로 실패하는 경우
• 검색 조건 실패(이미 바뀌었어…)
• 읽기/쓰기 용량 부족
• 트랜젝션 충돌
• 다른 이유
• 트랜잭션 진행 중
• 서비스 에러
• 잘못된 구성한 요청
• 퍼미션
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
-프로파일관리(동일하지않은테이블),호텔예약(재요청처리)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
사용자 프로파일 관리(use case #1)
• 문제 정의
• 사용자는 사용자명(user name)과 선택사항으로 이메일(email) 로 구분
• 식별자(사용자명과 이메일)는 고유한 값입니다.
• 사용자는 이메일을 변경할 수 있습니다.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
사용자 프로파일 관리 데이터 모델
• 해결 방안
• Users 테이블은 아래와 같이 종류의 레코드 형식을 갖도록 합니다.
• Profile 레코드는 사용자명과 세부 정보를 갖습니다.
• Alias 레코드는 이메일과 참조하는 Profile 레코드의 참조인자를 갖습니다.
Id UserNameRef Email Phone #
“John123” “john@example.com” “444-555-0110”
“john@example.com” “Joe123”
“jane456” “444-555-0199”
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
새 사용자 프로파일 추가
data = await dynamoDb.transactWriteItems({ TransactItems: [
{ Put: {
TableName: 'Users',
Item: { Id: { S: 'John123' }, Email: {S: 'john123@example.com'}, ...},
ConditionExpression: 'attribute_not_exists(Id)‘ }},
{ Put: {
TableName: 'Users',
Item: { Id: { S: 'john123@example.com' }, UserNameRef: {S: 'John123'}},
ConditionExpression: 'attribute_not_exists(Id)',}}
] }).promise();
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
이메일 갱신
data = await dynamoDb.transactWriteItems({ TransactItems: [
{ Put: { TableName: 'Users',
Item: { Id: { S: 'John123' }, Email: {S: 'john123@example.org'}, ...},
ConditionExpression: 'attribute_exists(Id) and Email = :old_email',
ExpressionAttributeValues: {':old_email' :{'S': 'john123@example.com'}}}},
{ Put: { TableName: 'Users',
Item: { Id: { S: 'john123@example.org' }, UserNameRef: {S: 'John123'}},
ConditionExpression: 'attribute_not_exists(Id)', }},
{ Delete: { TableName: 'Users',
Item: { Id: { S: 'john123@example.com' }}}).promise();
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
호텔 예약 관리 (use case #2)
• 문제정의
• 손님은 객실을 예약 할 수 있습니다.
• 손님은 객실을 체크인하여 예약을 활성화합니다.
• 손님은 체크인한 객실을 체크 아웃하고 예약을 종료합니다.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
호텔 예약 관리 데이터 모델
Guests
Id (primary key)
Name, Email, etc.
Reservations (set)
OccupiesRooms (set)
Reservations
Id (primary key)
GuestId
FulfilledByRoom
State
Rooms
Id (primary key)
RentedToReservation
State
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
호텔 예약 관리 데이터 모델
레코드 타입 Id (PK) Attributes
Guest “John”
Reservations : { “500”, “501” }
OccupiesRooms : { “20014” }
Reservation “500”
GuestId: “John”
State: “PENDING”
Reservation “501”
GuestId: “John”
State: “ACTIVATED”
FulfilledByRoom: “20014”
Room “20014”
State: “OCCUPIED”
RentedToReservation : “501”
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
호텔 예약 관리: 예약하기
• 재시도해도 고유하게 예약되도록 하려면?
• 해결 방안
• 클라이언트에서 고유한 예약 ID 생성
• 클라이언트에서 TransactWriteItems 아래 작업을 묶어 요청
• 새 예약을 위한 조건적인 PUT
• 손님 예약 테이블 셋을 갱신 아니면 새 예약 추가
• 클라이언트 트랜잭션은 더블 부킹되는 일은 없다.
• 색이 바뀌는 필드를 살펴보십시요
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
호텔 예약 관리: 체크인
레코드 타입 Id (PK) Attributes
Customer “John123”
Reservations : { “567” }
OccupiesRooms : {}
Reservation “567”
CustomerId: “John123”
State: “PENDING”
FulfilledByRoom: null
Room “20014”
State: “FREE”
RentedToReservation : null
Before
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
호텔 예약 관리: 체크인
레코드 타입 Id (PK) Attributes
Customer “John123”
Reservations : { “567” }
OccupiesRooms : { “20014” }
Reservation “567”
CustomerId: “John123”
State: “ACTIVATED”
FulfilledByRoom: “20014”
Room “20014”
State: “OCCUPIED”
RentedToReservation : “567”
After
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
호텔 예약 관리: 체크아웃
레코드 타입 Id (PK) Attributes
Customer “John123”
Reservations : { “567” }
OccupiesRooms : { “20014” }
Reservation “567”
CustomerId: “John123”
State: “ACTIVATED”
FulfilledByRoom: “20014”
Room “20014”
State: “OCCUPIED”
RentedToReservation : “567”
Before
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
호텔 예약 관리: 체크아웃
레코드 타입 Id (PK) Attributes
Customer “John123”
Reservations : { “567” }
OccupiesRooms : { “20014” }
Reservation “567”
CustomerId: “John123”
State: “CLOSED”
FulfilledByRoom: “20014”
Room “20014”
State: “FREE”
RentedToReservation : “567”
After
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
트랜젝션 비용?
트랜잭션은 비트랜젝션에 비해 2배의 일을 한다.
트랜젝션은 작업 당 2배 단위로 읽기/쓰기 용량을 사용한다.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
- 첨부파일관리(레퍼런스카운팅)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
첨부파일 관리 (use case #3)
• 문제정의
• SNS에서 게시물에 첨부 파일을 허용한다.
• 게시물은 첨부 파일을 효과적으로 공유할 수 있어야 한다.
• 게시물은 여러개의 첨부 파일을 첨부 가능하다.
• 참조 되지 않는 첨부 파일은 제거되어야 한다.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
첨부파일 관리: 데이터 모델
첨부파일 테이블
S3Ref (PK) – S3 레퍼런스
RefCount – 참조 회수
TTL – 사용되지 않을 경우 삭제되어야 할 적절한 시간
게시물 테이블
Id (PK) – 게시물 ID
Attachments (set) – 첨부파일 ID 집합
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
첨부파일 관리 불변 조건
1. RefCount 는 첨부파일을 참조하는 게시물 개수
2. RefCount > 0 이면 S3Ref 는 정상 S3 오브젝트이다.
3. TTL 이 설정되어 있으면, RefCount = 0 이다. 반대 논리도 성립

Mais conteúdo relacionado

Mais procurados

프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018
프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018
프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018
Amazon Web Services Korea
 
클라우드 여정을 성공적으로 수행하기 위한 AWS IAM 활용 전략::최원근:: AWS Summit Seoul 2018
클라우드 여정을 성공적으로 수행하기 위한 AWS IAM 활용 전략::최원근:: AWS Summit Seoul 2018 클라우드 여정을 성공적으로 수행하기 위한 AWS IAM 활용 전략::최원근:: AWS Summit Seoul 2018
클라우드 여정을 성공적으로 수행하기 위한 AWS IAM 활용 전략::최원근:: AWS Summit Seoul 2018
Amazon Web Services Korea
 
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Web Services Korea
 
클라우드 프론트의 재발견::백본을 이용한 초고속 콘텐츠 전송::서호석 이사, 영우디지탈::AWS Summit Seoul 2018
클라우드 프론트의 재발견::백본을 이용한 초고속 콘텐츠 전송::서호석 이사, 영우디지탈::AWS Summit Seoul 2018클라우드 프론트의 재발견::백본을 이용한 초고속 콘텐츠 전송::서호석 이사, 영우디지탈::AWS Summit Seoul 2018
클라우드 프론트의 재발견::백본을 이용한 초고속 콘텐츠 전송::서호석 이사, 영우디지탈::AWS Summit Seoul 2018
Amazon Web Services Korea
 
클라우드 세상에서 살아남기 (2) “진화의시작: 인프라 엔지니어에서 Ops 엔지니어로”::이한주::AWS Summit Seoul 2018
클라우드 세상에서 살아남기 (2) “진화의시작: 인프라 엔지니어에서 Ops 엔지니어로”::이한주::AWS Summit Seoul 2018클라우드 세상에서 살아남기 (2) “진화의시작: 인프라 엔지니어에서 Ops 엔지니어로”::이한주::AWS Summit Seoul 2018
클라우드 세상에서 살아남기 (2) “진화의시작: 인프라 엔지니어에서 Ops 엔지니어로”::이한주::AWS Summit Seoul 2018
Amazon Web Services Korea
 
패션 리테일 산업의 클라우드 활용 방안::송솔 대리, 코오롱베니트::AWS Summit Seoul 2018
패션 리테일 산업의 클라우드 활용 방안::송솔 대리, 코오롱베니트::AWS Summit Seoul 2018패션 리테일 산업의 클라우드 활용 방안::송솔 대리, 코오롱베니트::AWS Summit Seoul 2018
패션 리테일 산업의 클라우드 활용 방안::송솔 대리, 코오롱베니트::AWS Summit Seoul 2018
Amazon Web Services Korea
 
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon Web Services Korea
 
모놀리스에서 마이크로서비스 아키텍처로의 전환 전략::박선용::AWS Summit Seoul 2018
모놀리스에서 마이크로서비스 아키텍처로의 전환 전략::박선용::AWS Summit Seoul 2018모놀리스에서 마이크로서비스 아키텍처로의 전환 전략::박선용::AWS Summit Seoul 2018
모놀리스에서 마이크로서비스 아키텍처로의 전환 전략::박선용::AWS Summit Seoul 2018
Amazon Web Services Korea
 
강의 5. AWS 배포 및 관리 서비스:: AWSome Day Online Conference
강의 5. AWS 배포 및 관리 서비스:: AWSome Day Online Conference강의 5. AWS 배포 및 관리 서비스:: AWSome Day Online Conference
강의 5. AWS 배포 및 관리 서비스:: AWSome Day Online Conference
Amazon Web Services Korea
 
금융사의 AWS기반 Digital Transformation 사례::고종원::AWS Summit Seoul 2018
금융사의 AWS기반 Digital Transformation 사례::고종원::AWS Summit Seoul 2018 금융사의 AWS기반 Digital Transformation 사례::고종원::AWS Summit Seoul 2018
금융사의 AWS기반 Digital Transformation 사례::고종원::AWS Summit Seoul 2018
Amazon Web Services Korea
 
AWS SaaS 방식의 다양한 Chatbot Service 구축 방법::이두식::AWS Summit Seoul 2018
AWS SaaS 방식의 다양한 Chatbot Service 구축 방법::이두식::AWS Summit Seoul 2018AWS SaaS 방식의 다양한 Chatbot Service 구축 방법::이두식::AWS Summit Seoul 2018
AWS SaaS 방식의 다양한 Chatbot Service 구축 방법::이두식::AWS Summit Seoul 2018
Amazon Web Services Korea
 
서버리스 웹 애플리케이션 구축 방법론::김현수:: AWS Summit Seoul 2018
서버리스 웹 애플리케이션 구축 방법론::김현수:: AWS Summit Seoul 2018 서버리스 웹 애플리케이션 구축 방법론::김현수:: AWS Summit Seoul 2018
서버리스 웹 애플리케이션 구축 방법론::김현수:: AWS Summit Seoul 2018
Amazon Web Services Korea
 
강연 1. AWS 소개 및 AWS의 역사:: AWSome Day Online Conference
강연 1. AWS 소개 및 AWS의 역사:: AWSome Day Online Conference 강연 1. AWS 소개 및 AWS의 역사:: AWSome Day Online Conference
강연 1. AWS 소개 및 AWS의 역사:: AWSome Day Online Conference
Amazon Web Services Korea
 

Mais procurados (20)

프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018
프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018
프론트엔드 개발자가 혼자 AWS 기반 웹애플리케이션 만들기::박찬민::AWS Summit Seoul 2018
 
클라우드 여정을 성공적으로 수행하기 위한 AWS IAM 활용 전략::최원근:: AWS Summit Seoul 2018
클라우드 여정을 성공적으로 수행하기 위한 AWS IAM 활용 전략::최원근:: AWS Summit Seoul 2018 클라우드 여정을 성공적으로 수행하기 위한 AWS IAM 활용 전략::최원근:: AWS Summit Seoul 2018
클라우드 여정을 성공적으로 수행하기 위한 AWS IAM 활용 전략::최원근:: AWS Summit Seoul 2018
 
AWS Greengrass, Lambda and ML Inference at the Edge site (김민성, AWS 솔루션즈 아키텍트)...
AWS Greengrass, Lambda and ML Inference at the Edge site (김민성, AWS 솔루션즈 아키텍트)...AWS Greengrass, Lambda and ML Inference at the Edge site (김민성, AWS 솔루션즈 아키텍트)...
AWS Greengrass, Lambda and ML Inference at the Edge site (김민성, AWS 솔루션즈 아키텍트)...
 
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
Amazon Redshift 아키텍처 및 모범사례::김민성::AWS Summit Seoul 2018
 
클라우드 프론트의 재발견::백본을 이용한 초고속 콘텐츠 전송::서호석 이사, 영우디지탈::AWS Summit Seoul 2018
클라우드 프론트의 재발견::백본을 이용한 초고속 콘텐츠 전송::서호석 이사, 영우디지탈::AWS Summit Seoul 2018클라우드 프론트의 재발견::백본을 이용한 초고속 콘텐츠 전송::서호석 이사, 영우디지탈::AWS Summit Seoul 2018
클라우드 프론트의 재발견::백본을 이용한 초고속 콘텐츠 전송::서호석 이사, 영우디지탈::AWS Summit Seoul 2018
 
클라우드 세상에서 살아남기 (2) “진화의시작: 인프라 엔지니어에서 Ops 엔지니어로”::이한주::AWS Summit Seoul 2018
클라우드 세상에서 살아남기 (2) “진화의시작: 인프라 엔지니어에서 Ops 엔지니어로”::이한주::AWS Summit Seoul 2018클라우드 세상에서 살아남기 (2) “진화의시작: 인프라 엔지니어에서 Ops 엔지니어로”::이한주::AWS Summit Seoul 2018
클라우드 세상에서 살아남기 (2) “진화의시작: 인프라 엔지니어에서 Ops 엔지니어로”::이한주::AWS Summit Seoul 2018
 
패션 리테일 산업의 클라우드 활용 방안::송솔 대리, 코오롱베니트::AWS Summit Seoul 2018
패션 리테일 산업의 클라우드 활용 방안::송솔 대리, 코오롱베니트::AWS Summit Seoul 2018패션 리테일 산업의 클라우드 활용 방안::송솔 대리, 코오롱베니트::AWS Summit Seoul 2018
패션 리테일 산업의 클라우드 활용 방안::송솔 대리, 코오롱베니트::AWS Summit Seoul 2018
 
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019
 
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
Amazon EC2 고급 활용 기법 및 모범 사례::이진욱::AWS Summit Seoul 2018
 
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
 
Glue를 활용한 Serverless Data Prepartion (강성문, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
Glue를 활용한 Serverless Data Prepartion (강성문, AWS 솔루션즈 아키텍트) :: AWS DevDay2018Glue를 활용한 Serverless Data Prepartion (강성문, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
Glue를 활용한 Serverless Data Prepartion (강성문, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
 
모놀리스에서 마이크로서비스 아키텍처로의 전환 전략::박선용::AWS Summit Seoul 2018
모놀리스에서 마이크로서비스 아키텍처로의 전환 전략::박선용::AWS Summit Seoul 2018모놀리스에서 마이크로서비스 아키텍처로의 전환 전략::박선용::AWS Summit Seoul 2018
모놀리스에서 마이크로서비스 아키텍처로의 전환 전략::박선용::AWS Summit Seoul 2018
 
강의 5. AWS 배포 및 관리 서비스:: AWSome Day Online Conference
강의 5. AWS 배포 및 관리 서비스:: AWSome Day Online Conference강의 5. AWS 배포 및 관리 서비스:: AWSome Day Online Conference
강의 5. AWS 배포 및 관리 서비스:: AWSome Day Online Conference
 
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
 
금융사의 AWS기반 Digital Transformation 사례::고종원::AWS Summit Seoul 2018
금융사의 AWS기반 Digital Transformation 사례::고종원::AWS Summit Seoul 2018 금융사의 AWS기반 Digital Transformation 사례::고종원::AWS Summit Seoul 2018
금융사의 AWS기반 Digital Transformation 사례::고종원::AWS Summit Seoul 2018
 
AWS 기반 블록체인 (2부) - 블록체인 서비스 개발하기 (김준형 & 박천구, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS 기반 블록체인 (2부) - 블록체인 서비스 개발하기 (김준형 & 박천구, AWS 솔루션즈 아키텍트) :: AWS DevDay2018AWS 기반 블록체인 (2부) - 블록체인 서비스 개발하기 (김준형 & 박천구, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS 기반 블록체인 (2부) - 블록체인 서비스 개발하기 (김준형 & 박천구, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
 
AWS SaaS 방식의 다양한 Chatbot Service 구축 방법::이두식::AWS Summit Seoul 2018
AWS SaaS 방식의 다양한 Chatbot Service 구축 방법::이두식::AWS Summit Seoul 2018AWS SaaS 방식의 다양한 Chatbot Service 구축 방법::이두식::AWS Summit Seoul 2018
AWS SaaS 방식의 다양한 Chatbot Service 구축 방법::이두식::AWS Summit Seoul 2018
 
서버리스 웹 애플리케이션 구축 방법론::김현수:: AWS Summit Seoul 2018
서버리스 웹 애플리케이션 구축 방법론::김현수:: AWS Summit Seoul 2018 서버리스 웹 애플리케이션 구축 방법론::김현수:: AWS Summit Seoul 2018
서버리스 웹 애플리케이션 구축 방법론::김현수:: AWS Summit Seoul 2018
 
Amazon SageMaker를 이용한 예측 분석-남궁영환 솔루션즈 아키텍트, AWS
Amazon SageMaker를 이용한 예측 분석-남궁영환 솔루션즈 아키텍트, AWSAmazon SageMaker를 이용한 예측 분석-남궁영환 솔루션즈 아키텍트, AWS
Amazon SageMaker를 이용한 예측 분석-남궁영환 솔루션즈 아키텍트, AWS
 
강연 1. AWS 소개 및 AWS의 역사:: AWSome Day Online Conference
강연 1. AWS 소개 및 AWS의 역사:: AWSome Day Online Conference 강연 1. AWS 소개 및 AWS의 역사:: AWSome Day Online Conference
강연 1. AWS 소개 및 AWS의 역사:: AWSome Day Online Conference
 

Semelhante a Amazon DynamoDB 신기능 OnDemand 와 Transaction :: 윤평호 - AWS Community Day 2019

EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018
EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018 EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018
EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018
Amazon Web Services Korea
 
모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018
모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018
모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018
Amazon Web Services Korea
 
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
Amazon Web Services Korea
 
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
Amazon Web Services Korea
 
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018 Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
Amazon Web Services Korea
 
Inner Edge Layer 적용을 통한 비용절감 인프라 아키텍처 구성하기::박정수::AWS Summit Seoul 2018
Inner Edge Layer 적용을 통한 비용절감 인프라 아키텍처 구성하기::박정수::AWS Summit Seoul 2018Inner Edge Layer 적용을 통한 비용절감 인프라 아키텍처 구성하기::박정수::AWS Summit Seoul 2018
Inner Edge Layer 적용을 통한 비용절감 인프라 아키텍처 구성하기::박정수::AWS Summit Seoul 2018
Amazon Web Services Korea
 
왜 우리는 마이크로서비스를 구현하고자 하는가?::김민성,이준희::AWS Summit Seoul 2018
왜 우리는 마이크로서비스를 구현하고자 하는가?::김민성,이준희::AWS Summit Seoul 2018왜 우리는 마이크로서비스를 구현하고자 하는가?::김민성,이준희::AWS Summit Seoul 2018
왜 우리는 마이크로서비스를 구현하고자 하는가?::김민성,이준희::AWS Summit Seoul 2018
Amazon Web Services Korea
 
Amazon DynamoDB 기반 글로벌 서비스 개발 방법 및 사례::김준형::AWS Summit Seoul 2018
Amazon DynamoDB 기반 글로벌 서비스 개발 방법 및 사례::김준형::AWS Summit Seoul 2018Amazon DynamoDB 기반 글로벌 서비스 개발 방법 및 사례::김준형::AWS Summit Seoul 2018
Amazon DynamoDB 기반 글로벌 서비스 개발 방법 및 사례::김준형::AWS Summit Seoul 2018
Amazon Web Services Korea
 
AWS All-in 그리고 그 이후::김승철,이성익,최홍식::AWS Summit Seoul 2018
AWS All-in 그리고 그 이후::김승철,이성익,최홍식::AWS Summit Seoul 2018AWS All-in 그리고 그 이후::김승철,이성익,최홍식::AWS Summit Seoul 2018
AWS All-in 그리고 그 이후::김승철,이성익,최홍식::AWS Summit Seoul 2018
Amazon Web Services Korea
 
성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018
성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018 성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018
성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018
Amazon Web Services Korea
 
Amazon.com 사례와 함께하는 유통 차세대 DW 구축을 위한 Data Lake 전략::구태훈::AWS Summit Seoul 2018
Amazon.com 사례와 함께하는 유통 차세대 DW 구축을 위한 Data Lake 전략::구태훈::AWS Summit Seoul 2018Amazon.com 사례와 함께하는 유통 차세대 DW 구축을 위한 Data Lake 전략::구태훈::AWS Summit Seoul 2018
Amazon.com 사례와 함께하는 유통 차세대 DW 구축을 위한 Data Lake 전략::구태훈::AWS Summit Seoul 2018
Amazon Web Services Korea
 
AWS 상에서 비즈니스를 수행하고자 하는 고객들에게 드리는 5가지 꿀팁 :: 정우근 :: AWS Summit Seoul 2018
AWS 상에서 비즈니스를 수행하고자 하는 고객들에게 드리는 5가지 꿀팁 :: 정우근 :: AWS Summit Seoul 2018AWS 상에서 비즈니스를 수행하고자 하는 고객들에게 드리는 5가지 꿀팁 :: 정우근 :: AWS Summit Seoul 2018
AWS 상에서 비즈니스를 수행하고자 하는 고객들에게 드리는 5가지 꿀팁 :: 정우근 :: AWS Summit Seoul 2018
Amazon Web Services Korea
 
AWS를 활용한 다양한 DB 마이그레이션 및 게임 엔진 서버 구축 방법::맹상영 대표, 엔클라우드24::AWS Summit Seoul 2018
AWS를 활용한 다양한 DB 마이그레이션 및 게임 엔진 서버 구축 방법::맹상영 대표, 엔클라우드24::AWS Summit Seoul 2018AWS를 활용한 다양한 DB 마이그레이션 및 게임 엔진 서버 구축 방법::맹상영 대표, 엔클라우드24::AWS Summit Seoul 2018
AWS를 활용한 다양한 DB 마이그레이션 및 게임 엔진 서버 구축 방법::맹상영 대표, 엔클라우드24::AWS Summit Seoul 2018
Amazon Web Services Korea
 

Semelhante a Amazon DynamoDB 신기능 OnDemand 와 Transaction :: 윤평호 - AWS Community Day 2019 (20)

EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018
EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018 EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018
EasyCloud 고군분투 개발 이야기::이준희::AWS Summit Seoul 2018
 
모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018
모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018
모바일 게임을 만들기 위한 AWS 활용 고군분투기::최용호::AWS Summit Seoul 2018
 
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
 
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
실전 프로젝트로 이야기하는 AWS IoT::김민성::AWS Summit Seoul 2018
 
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018 Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
 
Inner Edge Layer 적용을 통한 비용절감 인프라 아키텍처 구성하기::박정수::AWS Summit Seoul 2018
Inner Edge Layer 적용을 통한 비용절감 인프라 아키텍처 구성하기::박정수::AWS Summit Seoul 2018Inner Edge Layer 적용을 통한 비용절감 인프라 아키텍처 구성하기::박정수::AWS Summit Seoul 2018
Inner Edge Layer 적용을 통한 비용절감 인프라 아키텍처 구성하기::박정수::AWS Summit Seoul 2018
 
Inner Edge Layer를 통한 비용 절감 아키텍쳐 구성하기 (AWS Summit Seoul 2018)
Inner Edge Layer를 통한 비용 절감 아키텍쳐 구성하기 (AWS Summit Seoul 2018)Inner Edge Layer를 통한 비용 절감 아키텍쳐 구성하기 (AWS Summit Seoul 2018)
Inner Edge Layer를 통한 비용 절감 아키텍쳐 구성하기 (AWS Summit Seoul 2018)
 
왜 우리는 마이크로서비스를 구현하고자 하는가?::김민성,이준희::AWS Summit Seoul 2018
왜 우리는 마이크로서비스를 구현하고자 하는가?::김민성,이준희::AWS Summit Seoul 2018왜 우리는 마이크로서비스를 구현하고자 하는가?::김민성,이준희::AWS Summit Seoul 2018
왜 우리는 마이크로서비스를 구현하고자 하는가?::김민성,이준희::AWS Summit Seoul 2018
 
타 게임사의 경험으로 본 AWS 핵심 모범 사례 한방에 배우기 - 이정훈 솔루션즈 아키텍트, AWS / 김지선 테크니컬 어카운트 매니저, ...
타 게임사의 경험으로 본 AWS 핵심 모범 사례 한방에 배우기 - 이정훈 솔루션즈 아키텍트, AWS / 김지선 테크니컬 어카운트 매니저, ...타 게임사의 경험으로 본 AWS 핵심 모범 사례 한방에 배우기 - 이정훈 솔루션즈 아키텍트, AWS / 김지선 테크니컬 어카운트 매니저, ...
타 게임사의 경험으로 본 AWS 핵심 모범 사례 한방에 배우기 - 이정훈 솔루션즈 아키텍트, AWS / 김지선 테크니컬 어카운트 매니저, ...
 
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
민첩하고 비용효율적인 Data Lake 구축 - 문종민 솔루션즈 아키텍트, AWS
 
Amazon DynamoDB 기반 글로벌 서비스 개발 방법 및 사례::김준형::AWS Summit Seoul 2018
Amazon DynamoDB 기반 글로벌 서비스 개발 방법 및 사례::김준형::AWS Summit Seoul 2018Amazon DynamoDB 기반 글로벌 서비스 개발 방법 및 사례::김준형::AWS Summit Seoul 2018
Amazon DynamoDB 기반 글로벌 서비스 개발 방법 및 사례::김준형::AWS Summit Seoul 2018
 
[AWS Innovate 온라인 컨퍼런스] Amazon Personalize를 통한 개인화 추천 기능 실전 구현하기 - 최원근, AWS 솔...
[AWS Innovate 온라인 컨퍼런스] Amazon Personalize를 통한 개인화 추천 기능 실전 구현하기 - 최원근, AWS 솔...[AWS Innovate 온라인 컨퍼런스] Amazon Personalize를 통한 개인화 추천 기능 실전 구현하기 - 최원근, AWS 솔...
[AWS Innovate 온라인 컨퍼런스] Amazon Personalize를 통한 개인화 추천 기능 실전 구현하기 - 최원근, AWS 솔...
 
AWS All-in 그리고 그 이후::김승철,이성익,최홍식::AWS Summit Seoul 2018
AWS All-in 그리고 그 이후::김승철,이성익,최홍식::AWS Summit Seoul 2018AWS All-in 그리고 그 이후::김승철,이성익,최홍식::AWS Summit Seoul 2018
AWS All-in 그리고 그 이후::김승철,이성익,최홍식::AWS Summit Seoul 2018
 
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
 
Java 엔터프라이즈 어플리케이션을 효과적으로 마이크로서비스로 전환하기 (박선용, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
Java 엔터프라이즈 어플리케이션을 효과적으로 마이크로서비스로 전환하기 (박선용, AWS 솔루션즈 아키텍트) :: AWS DevDay2018Java 엔터프라이즈 어플리케이션을 효과적으로 마이크로서비스로 전환하기 (박선용, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
Java 엔터프라이즈 어플리케이션을 효과적으로 마이크로서비스로 전환하기 (박선용, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
 
성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018
성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018 성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018
성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018
 
Amazon.com 사례와 함께하는 유통 차세대 DW 구축을 위한 Data Lake 전략::구태훈::AWS Summit Seoul 2018
Amazon.com 사례와 함께하는 유통 차세대 DW 구축을 위한 Data Lake 전략::구태훈::AWS Summit Seoul 2018Amazon.com 사례와 함께하는 유통 차세대 DW 구축을 위한 Data Lake 전략::구태훈::AWS Summit Seoul 2018
Amazon.com 사례와 함께하는 유통 차세대 DW 구축을 위한 Data Lake 전략::구태훈::AWS Summit Seoul 2018
 
[AWS Summit 2018] 모바일 게임을 만들기 위한 AWS 고군분투기
[AWS Summit 2018] 모바일 게임을 만들기 위한 AWS 고군분투기[AWS Summit 2018] 모바일 게임을 만들기 위한 AWS 고군분투기
[AWS Summit 2018] 모바일 게임을 만들기 위한 AWS 고군분투기
 
AWS 상에서 비즈니스를 수행하고자 하는 고객들에게 드리는 5가지 꿀팁 :: 정우근 :: AWS Summit Seoul 2018
AWS 상에서 비즈니스를 수행하고자 하는 고객들에게 드리는 5가지 꿀팁 :: 정우근 :: AWS Summit Seoul 2018AWS 상에서 비즈니스를 수행하고자 하는 고객들에게 드리는 5가지 꿀팁 :: 정우근 :: AWS Summit Seoul 2018
AWS 상에서 비즈니스를 수행하고자 하는 고객들에게 드리는 5가지 꿀팁 :: 정우근 :: AWS Summit Seoul 2018
 
AWS를 활용한 다양한 DB 마이그레이션 및 게임 엔진 서버 구축 방법::맹상영 대표, 엔클라우드24::AWS Summit Seoul 2018
AWS를 활용한 다양한 DB 마이그레이션 및 게임 엔진 서버 구축 방법::맹상영 대표, 엔클라우드24::AWS Summit Seoul 2018AWS를 활용한 다양한 DB 마이그레이션 및 게임 엔진 서버 구축 방법::맹상영 대표, 엔클라우드24::AWS Summit Seoul 2018
AWS를 활용한 다양한 DB 마이그레이션 및 게임 엔진 서버 구축 방법::맹상영 대표, 엔클라우드24::AWS Summit Seoul 2018
 

Mais de AWSKRUG - AWS한국사용자모임

Mais de AWSKRUG - AWS한국사용자모임 (20)

IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
 
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
 
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
 
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
 
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
 
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
 
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
 
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
 
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
 
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
 
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
 
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
 
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
 
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
 
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
 
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
 
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
 
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
 
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
 
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C) :: AWS Community Day Online 2020
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C)  :: AWS Community Day Online 2020엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C)  :: AWS Community Day Online 2020
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C) :: AWS Community Day Online 2020
 

Último

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
 

Último (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

Amazon DynamoDB 신기능 OnDemand 와 Transaction :: 윤평호 - AWS Community Day 2019

  • 1. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon DynamoDB 신기능 On-Demand and Transaction 윤평호 AWS Community Day 2019@20190125 Software Engineer AWSKRUG Feel free to contact: learder@gmail.com D a t a b a s e / A n a l y t i c s
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 목차 1. 온 디맨드 용량 방식 1. 소개 2. 기존 방식과 비교 3. 언제 사용하지? 2. 트랜젝션 지원 1. 왜 필요하고 2. 어떻게 사용하고 사용 예를 보고 3. 추가 기능 및 비용은? 4. 사용예를 하나 더 살펴봅시다.
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 다이나모디비(DynamoDB) 규모에 관계없이 완전히 관리되는 비관계형 데이테베이스 Performance at scale Single-digit millisecond response Consistent perf at any scale Virtually unlimited throughput Secondary indexes Flexible data model Enterprise ready Encryption at rest and transit Fine-grained access control 99.99% service level agreement Backup and restore Fully managed Security Durability Availability Adaptive capacity Maintenance free Global tables DynamoDB Streams Time To Live
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 완전 관리형(Fully Managed) 규모에 관계없이 완전히 관리되는 비관계형 데이테베이스 비지니스 로직에 좀 더 집중할 수 있습니다! Security Operating system patching Database patching Access control Audit Encryption Compliance Durability Sustain server, rack, and datacenter outages Re-replicate data quickly upon hardware failure Manage backup and restore Availability High availability configuration Monitoring Cross-region replication Performance Performance tuning Indexing In-memory caching Scalability Capacity planning Host provisioning Host repair and retirement
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 데이터베이스 용량 산정 실제 사용량
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 관계형 데이터베이스에서는 일반적으로 Scale-Up
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. NoSQL 에서는 Scale-Out
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 다이나모디비(DynamoDB, Managed NoSQL database) 서버리스 관리할 소프트웨어나 서버가 없음 대규모확장성 원하는만큼 많은 처리량을 원할때 고성능 일관된 1자리수 밀리세컨드 응답
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 온디맨드(용량)?
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 온디맨드(용량)의 기능과 장점 기능 • 용량 계산, 계획 하거나 예약할 필요없음 • 사용한 읽기, 쓰기 개수만큼 과금 장점 • 용량을 낭비하거나 부족함이 없음. • 트래픽에 따라 즉각적으로 작업 부하를 자동 조정
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 기존 용량 산정 방식과 비교 최대 소비량을 관리
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 온디맨드(용량) 요금은? 서울 리전 (ap-northeast-2)은? 조금… • $1.3556 쓰기 요청 100만개당 • $0.2711 읽기 요청 100만 개당 • $2.033 복제된 쓰기 요청 100만 개당 (글로벌 테이블)
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 온디맨드(용량)은 언제 사용하나? • 예약 용량(Provisioned) • 싸다. 라이브 운영은 이것으로! Burst capacity 로 유용히 • 오토스케일(Auto-scale) • 스케일업 하는 지연시간 :< • 지정한 사용율을 유지하지 못하면 스케일링 안됨 • 상한 하한을 정할 수 있으나… • 온디맨드(On-Demand) • 서비스는 해야겠는데, 사용양이 예측 불가일 때에
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 이 기능이 중요한 이유? 트랜젝션 API 로 실생활의 트랜젝션을 (쉽게) 구현할 수 있습니다. 동시다발적 쓰기(write), 여러 아이템을 갱신(update) 처리하기 전에 여러가지 조건 검사 다양한 테이블 간에 데이터의 일관성 유지
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 1번의 API 호출 다이나모디비 트랜젝션 • 데드락 X • 긴 트랜잭션 시간 X • 열린 트랜젝션 X • 관리되지 않은 동시성 X • DBA의 괴로움 X
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 추가된 트랜젝션 API TransactWriteItems 작업을 10 개 까지 묶을 수 있음 조건 추가 가능 모든 조건이 맞을 때, 쓰기(write) 작업 수행 TransactGetItems 작업을 10개까지 묶을 수 있음 일관되게, 모든 항목의 격리된 스냅샷을 가지고 옴
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 다이나모디비에서 ACID 지원은? • 이전에는 단일 아이템 연산(single-item operations)만 ACID 지원 • 이제는 다중 아이템 연산(multi-item operations)에도 ACID 지원 비 트랜잭션 트랜잭션 신규 API TransactGetItems TransactWriteItems 기존 API BatchGetItem, BatchWriteItem Query, Scan GetItem, PutItem, UpdateItem, DeleteItem
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. NoSQL 트랜젝션의 성공 경로? 설계 선택 • 계정 내에 모든 항목에 트랜젝션 가능 • 서비스 API 와 클라이언트 API • 요청/응답 기반 • 작업 개수 제한(10개) 어떤 면에서 도움이 되나? • 데이터와 관계를 늘릴 수 있다 • 복잡성은 줄이고, 비용과 성능 개선이 쉽다 • 비지니스 로직은 애플리케이션에 두고, 데이터베이스 단에 두지 않음 • 일관된 낮은 대기 시간으로, 데드락 발생 안함 • 일관된 낮은 대기시간으로, 높은 가용성 보장 • 대다수의 트랜젝션 사용 사례를 지원함
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. // Status of Hammer57 GET { “TableName”:"Gamers", “Key” : { "GamerTag":{“S”:"Hammer57”}, "Type":{“S”: "Status”} } } // Return all Hammer57 Gamers GamerTag = :a :a Hammer57 Gamers Primary Key Attributes Gamer Tag Type Hammer57 Rank Level Points Tier 87 4050 Elite Status Health Progress 90 30 Weapon Class Damage Range Taser 87% 50 Assets Coins 1400 FluffyDuffy Rank Level Points Tier 5 1072 Trainee Status Health Progress 37 8 Assets Coins 0 비 트랜젝션은 어떤 모양?
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. // Atomic Update of Hammer57 // Health & Coins Gamers Primary Key Attributes Gamer Tag Type Hammer57 Rank Level Points Tier 87 4050 Elite Status Health Progress 10 30 Weapon Class Damage Range Taser 87% 50 Assets Coins 1400 FluffyDuffy Rank Level Points Tier 5 1072 Trainee Status Health Progress 37 8 Assets Coins 0 트랜젝션이 필요한 때?
  • 23. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. // Atomic Update of Hammer57 // Health & Coins { "TransactItems" : [ { "Update ": { "TableName": "Gamers", ”Key" :{"GamerTag" : {"S": "Hammer57"}, "Type" : {"S" : "Status"}}, "UpdateExpression" : "Set health = :nhealth", "ExpressionAttributeValues":{":nhealth":{“N”:“100”}}, } }, { "Update ": { "TableName": "Gamers", ”Key" :{"GamerTag" : {"S": "Hammer57"}, "Type" : {"S" : "Assets"} }, "ConditionExpression" : "coins > :cost", "UpdateExpression" : "Set coins = coins - :cost", "ExpressionAttributeValues" :{":cost":{“N”:“400”}} } }] } Gamers Primary Key Attributes Gamer Tag Type Hammer57 Rank Level Points Tier 87 4050 Elite Status Health Progress 100 30 Weapon Class Damage Range Taser 87% 50 Assets Coins 1000 FluffyDuffy Rank Level Points Tier 5 1072 Trainee Status Health Progress 37 8 Assets Coins 0 트랜젝션 예
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 트랜젝션이 실패하는 경우? • 아이템 단위로 실패하는 경우 • 검색 조건 실패(이미 바뀌었어…) • 읽기/쓰기 용량 부족 • 트랜젝션 충돌 • 다른 이유 • 트랜잭션 진행 중 • 서비스 에러 • 잘못된 구성한 요청 • 퍼미션
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. -프로파일관리(동일하지않은테이블),호텔예약(재요청처리)
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 사용자 프로파일 관리(use case #1) • 문제 정의 • 사용자는 사용자명(user name)과 선택사항으로 이메일(email) 로 구분 • 식별자(사용자명과 이메일)는 고유한 값입니다. • 사용자는 이메일을 변경할 수 있습니다.
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 사용자 프로파일 관리 데이터 모델 • 해결 방안 • Users 테이블은 아래와 같이 종류의 레코드 형식을 갖도록 합니다. • Profile 레코드는 사용자명과 세부 정보를 갖습니다. • Alias 레코드는 이메일과 참조하는 Profile 레코드의 참조인자를 갖습니다. Id UserNameRef Email Phone # “John123” “john@example.com” “444-555-0110” “john@example.com” “Joe123” “jane456” “444-555-0199”
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 새 사용자 프로파일 추가 data = await dynamoDb.transactWriteItems({ TransactItems: [ { Put: { TableName: 'Users', Item: { Id: { S: 'John123' }, Email: {S: 'john123@example.com'}, ...}, ConditionExpression: 'attribute_not_exists(Id)‘ }}, { Put: { TableName: 'Users', Item: { Id: { S: 'john123@example.com' }, UserNameRef: {S: 'John123'}}, ConditionExpression: 'attribute_not_exists(Id)',}} ] }).promise();
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 이메일 갱신 data = await dynamoDb.transactWriteItems({ TransactItems: [ { Put: { TableName: 'Users', Item: { Id: { S: 'John123' }, Email: {S: 'john123@example.org'}, ...}, ConditionExpression: 'attribute_exists(Id) and Email = :old_email', ExpressionAttributeValues: {':old_email' :{'S': 'john123@example.com'}}}}, { Put: { TableName: 'Users', Item: { Id: { S: 'john123@example.org' }, UserNameRef: {S: 'John123'}}, ConditionExpression: 'attribute_not_exists(Id)', }}, { Delete: { TableName: 'Users', Item: { Id: { S: 'john123@example.com' }}}).promise();
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 호텔 예약 관리 (use case #2) • 문제정의 • 손님은 객실을 예약 할 수 있습니다. • 손님은 객실을 체크인하여 예약을 활성화합니다. • 손님은 체크인한 객실을 체크 아웃하고 예약을 종료합니다.
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 호텔 예약 관리 데이터 모델 Guests Id (primary key) Name, Email, etc. Reservations (set) OccupiesRooms (set) Reservations Id (primary key) GuestId FulfilledByRoom State Rooms Id (primary key) RentedToReservation State
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 호텔 예약 관리 데이터 모델 레코드 타입 Id (PK) Attributes Guest “John” Reservations : { “500”, “501” } OccupiesRooms : { “20014” } Reservation “500” GuestId: “John” State: “PENDING” Reservation “501” GuestId: “John” State: “ACTIVATED” FulfilledByRoom: “20014” Room “20014” State: “OCCUPIED” RentedToReservation : “501”
  • 33. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 호텔 예약 관리: 예약하기 • 재시도해도 고유하게 예약되도록 하려면? • 해결 방안 • 클라이언트에서 고유한 예약 ID 생성 • 클라이언트에서 TransactWriteItems 아래 작업을 묶어 요청 • 새 예약을 위한 조건적인 PUT • 손님 예약 테이블 셋을 갱신 아니면 새 예약 추가 • 클라이언트 트랜잭션은 더블 부킹되는 일은 없다. • 색이 바뀌는 필드를 살펴보십시요
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 호텔 예약 관리: 체크인 레코드 타입 Id (PK) Attributes Customer “John123” Reservations : { “567” } OccupiesRooms : {} Reservation “567” CustomerId: “John123” State: “PENDING” FulfilledByRoom: null Room “20014” State: “FREE” RentedToReservation : null Before
  • 35. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 호텔 예약 관리: 체크인 레코드 타입 Id (PK) Attributes Customer “John123” Reservations : { “567” } OccupiesRooms : { “20014” } Reservation “567” CustomerId: “John123” State: “ACTIVATED” FulfilledByRoom: “20014” Room “20014” State: “OCCUPIED” RentedToReservation : “567” After
  • 36. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 호텔 예약 관리: 체크아웃 레코드 타입 Id (PK) Attributes Customer “John123” Reservations : { “567” } OccupiesRooms : { “20014” } Reservation “567” CustomerId: “John123” State: “ACTIVATED” FulfilledByRoom: “20014” Room “20014” State: “OCCUPIED” RentedToReservation : “567” Before
  • 37. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 호텔 예약 관리: 체크아웃 레코드 타입 Id (PK) Attributes Customer “John123” Reservations : { “567” } OccupiesRooms : { “20014” } Reservation “567” CustomerId: “John123” State: “CLOSED” FulfilledByRoom: “20014” Room “20014” State: “FREE” RentedToReservation : “567” After
  • 38. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 39. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 트랜젝션 비용? 트랜잭션은 비트랜젝션에 비해 2배의 일을 한다. 트랜젝션은 작업 당 2배 단위로 읽기/쓰기 용량을 사용한다.
  • 40. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. - 첨부파일관리(레퍼런스카운팅)
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 첨부파일 관리 (use case #3) • 문제정의 • SNS에서 게시물에 첨부 파일을 허용한다. • 게시물은 첨부 파일을 효과적으로 공유할 수 있어야 한다. • 게시물은 여러개의 첨부 파일을 첨부 가능하다. • 참조 되지 않는 첨부 파일은 제거되어야 한다.
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 첨부파일 관리: 데이터 모델 첨부파일 테이블 S3Ref (PK) – S3 레퍼런스 RefCount – 참조 회수 TTL – 사용되지 않을 경우 삭제되어야 할 적절한 시간 게시물 테이블 Id (PK) – 게시물 ID Attachments (set) – 첨부파일 ID 집합
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. 첨부파일 관리 불변 조건 1. RefCount 는 첨부파일을 참조하는 게시물 개수 2. RefCount > 0 이면 S3Ref 는 정상 S3 오브젝트이다. 3. TTL 이 설정되어 있으면, RefCount = 0 이다. 반대 논리도 성립