SlideShare a Scribd company logo
1 of 57
AWS 간단 리뷰3
김한성
이제까지 진행한 내용 vs 남은 내용
• IAM
• S3
• EC2(VPC)
• Lambda
• Step Function
• CloudWatch
• RDS
• Dynamo
• Elasticache
• SES
• ECS
• EKS
• Route53
• CloudFront
• API Gateway
• SNS
• Elastic Beanstalk
• SQS
• CloudFormation
• Athena
• Glue
목차
•RDS
•Dynamo
•다음 시간
•Elasticache
•SQS
•Elastic Beanstalk
RDS
RDS(Relational Database Service)
• 클라우드에서 관계형 데이터베이스를
더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스
• 산업 표준 관계형 데이터베이스를 위한
경제적이고 크기 조절이 가능한 용량을 제공하고
공통 데이터베이스 관리 작업을 관리함
• Aurora != RDS
RDS – 지원하는 DB엔진
• MySQL : 5.5~5.7, 8.0
• MariaDB : 10.0~10.3
• Oracle : Enterprise, Standard, Standard One/Two
• MS SQL Server : Express, Web, Standard, Enterprise
• Aurora : MySQL 5.6~5.7, PostqreSQL 9.6~10.7
RDS vs EC2
• EC2에 Mysql 설치해서 쓰기 vs RDS에서 Mysql쓰기
• EC2
• CPU, 메모리, 스토리지, IOPS가 묶여서 제공(저비용)
• RDS
• 독립적으로 확장 가능(고비용)
• AWS서비스 확장 지원 – S3 Import, DMS....
• 완전 관리 – Auro Scaling, Multi AZ/Region 등등
RDS – 일단 써보기
• 알려진 문제/제한 사항...?
RDS – 엔진/버전별로 문제/제한 제공
• EX) MySQL 5.5 버그
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/MySQL.KnownIssuesAndLimitations.html
RDS - Aurora
• MySQL 및 PostgreSQL과 호환되는
완전 관리형 관계형 데이터베이스 엔진
• 일부 워크로드의 경우,
MySQL의 처리량을 최대 5배,
PostgreSQL의 처리량을 최대 3배 제공
• 단, I/O 비용이 별도로 청구
RDS – Aurora Performance
• 조건에 따라 다르겠지만 높은 성능 차이를 보여줌
• https://www.slideshare.net/awskorea/amazon-aurora-61570508
RDS – Aurora 구조1
• Aurora 스토리지 엔진은
한 리전의 여러 AWS 가용 영역에 걸친 분산된 SAN 입니다.
• 스토리지 할당 = 최대 64TB(MySQL기준 테이블 1개)
RDS – Aurora 구조2
• 빠르게 쓸 수 있는 이유?
• 데이터를 쓰면 6개 스토리지 노드로 병렬 전송
• 중복 로그 레코드는 폐기
• 비동기식으로 S3에 백업
• https://aws.amazon.com/ko/blogs/korea/databaseintroducing-the-
aurora-storage-engine/
RDS – Aurora 구조3
• 내결함성
복제된 데이터는
99.999999999%의 내구성을
제공하도록 설계된
S3에 지속적으로 백업
RDS – Aurora 구조4
• 1개 AZ에서 노드가 장애시
다른 AZ에서 쓰기 가능
• 1개 노드가 장애나도
다른 노드를 통해 읽기 가능
RDS - Aurora 생성1
• Master user = 유사 Root
• 인터스턴스 클래스(타입)은 r4/5, t2/3 시리즈 지원
RDS - Aurora 생성2
• 파라미터 그룹에서 DB Config 설정
• innodb_flush_log_at_trx_commit
• connection 등등
• 다양한 추가 설정 등을 제공
• 로그 처리(에러, 일반, slow..)
• 버전 자동 업그레이드
• 삭제 방지 등등
RDS - Aurora 생성3
• Multi AZ로 Aurora DB(MySQL) Cluster 생성
RDS - 역추적
• 백업에서 데이터를 복구하지 않고 특정시간으로 이동
• Cluster 생성시 역추적 활성화 필수
• 제한
• 최대 72시간
• Cluster의 성능 영향
• 단일 테이블, 데이터만 선택적으로 추적X
• 역추적 작업 시작시 Instance가 일시 중단
• MySQL 5.6에서만 지원
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Backtrack.html
RDS – CloudWatch 모니터링
• CPU, 메모리, 버퍼 캐시 적중률, 트랜젝션 등등 다양함(총 48개 로그)
RDS – Multi AZ
• 쓰기 = northeast-2a
• 읽기 = northeast-2c
• 복제본에 대한 지연시간은 설정마다 달라짐(설정이 추가될수록 느려짐)
RDS - 추가작업
• DMS를 써서 S3에 올리거나
직접 S3에 Backup 파일을 올려서
복원처리 가능
• 삭제는
모든 Cluster instance 중지 후
삭제 가능
• 지금/다음에 업그레이드는
엔진 버전 업데이트나
수정 사항 업데이트
RDS – 읽기 추가
• 장애 조치 우선 순위에 따라서 읽기 Instance
가 쓰기 Instance로 승격됨(약 10~20분)
• cluster의 읽기 엔드포인트는 늘지 않는다
• 매번 dns조회로 ip를 추적하거나
AWS API를 사용해서 각각의 endpoint 추적
RDS – 리전 간 읽기 전용 복제본 생성
• 타 리전에 읽기 전용 복제본 생성
• 리전간 트래픽 비용이 발생하기 때문에 비용 예측이 필요
RDS - 복제본
• 정확히는 백업 복제본(!= 읽기 복제본)
• 쓰기 인스턴스에서만 복제가 가능함
서울
타 리전쓰기
읽기읽기
읽기
읽기
읽기
a b
a
b
RDS – 특정 시점으로 복구
• 기존 인스턴스를 복구X, 새롭게 생성
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PIT.html
RDS – 장애조치 & 승격
승격
• 장애 조치 : DB Cluster 테스트
• 승격 : 쓰기 Instance에 장애가 발생하면
읽기 Instance가 임시로 쓰기로 변경됨.
이전 쓰기 Instance가 복구되면 다시 돌아옴
-> cluster endpoint를 써야하는 이유
RDS – Auto Scaling
• CPU, Connection으로 Auto Scale Up/Down 가능
• 최소 1~15개의 복제본 생성 가능
• 아직은 Read만 Scaling 가능
RDS – Multi Master
• https://aws.amazon.com/ko/about-aws/whats-
new/2019/08/amazon-aurora-multimaster-now-generally-
available/
• 지원 리전
• 미국 동부(버지니아 북부)
• 미국 동부(오하이오)
• 미국 서부(오레곤)
• EU(아일랜드)
• 지원 버전 - Aurora MySQL 5.6에서 사용
RDS – DB Router(Custom Endpoint)
• https://www.slideshare.net/addnull/20190418-aws-summit-seoul-2019-hbsmith
RDS – Aurora Serverless
• MySQL 5.6만 가능
• 사용 빈도가 낮거나 예측할 수 없는 workload에서 사용
• 인스턴스 및 용량 관리 불필요
• 컴퓨팅 & 메모리 확장시 클라이언트 연결 유지
• 1 ACU(Aurora Capacity Unit) = $0.1
• 1 ACU = 2 Gb RAM
RDS – Aurora Price
• 온디맨드 요금 = r5.12xlarge 기준 750시간 $6300
• 48 core, 384 RAM, EBS 7000Mbps, Net 10 Gbps
• MySQL = $5130
• 스토리지 요금 = 월 GB당 $0.12
• MySQL = 단일 $0.131, Multi AZ $0.276
• I/O 요금 = 요청 100만 건당 $0.24
• 백업 스토리지 = 월 GB당 $0.023
• 역추적 = 변경 레크도 100만 개당 $0.014
Dynamo DB
DDB(Dynamo DB)
• 종합 관리형 NoSQL 데이터베이스 서비스
• 유사 HBase
• 복잡성 감소, 비용/성능 개선
• 비지니스 로직은 애플리케이션에서만 처리
• 2018년을 기준으로 매우매우 좋아짐
• Serverless의 꽃이자 함정
DDB – 모델 개념
• Table : Item의 모임
• Item : Attribute의 모임
• Attribute : key-value 방식
• 1 Application = 1 Table
• 검색을 하려면 기본키로 인덱스 생성(=테이블 인덱스)
• 기본키 방식
• Hash 형식 : Attribute 하나를 기본키로 사용
• Hash와 Range 형식 : Attribute 2개를 기본키로 사용(복합키)
DDB – 일단 써보기
• 파티션, 정렬 키??
• 보조 인덱스??
• 읽기/쓰기 용량??
DDB – 생성된 테이블 정보
DDB - Insert
• column을 추가 안해도
넣는대로 들어간다!
DDB - 함정
• 파티션키
• 정렬키
• 보조 인덱스
• 읽기/쓰기 용량
• 용량 모드 – On-demand/Provisioned
• 지옥의 쿼리...
DDB - 단점
• 넣는 건 자유
• 읽는 건 파티션 키에 종속
• 파티션 키를 모른다?
= 찾을 수 없는 정보
= GSI, LSI로 해결
• 기본키 = 파티션 & 정렬 키
DDB – Query vs Scan
• 파티션 키 = 필수
• 필터O, 정렬O
• 모든 항목을 읽어옴
• 필터O, 정렬X
DDB – Query 문제점?
• 최소 파티션 키를 알아야 조회가 가능함
• 파티션 & 정렬키가 아닌 값으로 Query를 쓰고 싶다?
• GSI(Global Secondary Index)
• 파티션, 정렬키를 다르게 사용
• LSI(Local Secondary Index)
• 정렬키만 다르게 사용
= 추가 스토리지 사용 = 당연히 추가요금 = 잘못된 테이블 설계
DDB - GSI(Global Secondary Index)
• 기본키
= 파티션키/정렬키
= UserId/GameTitle
• GSI
= 파티션키/정렬키
= GameTitle/TopScore
DDB - LSI(Local Secondary Index)
• 기본키
= 파티션키/정렬키
= ForumName/Subject
• 기본키
= 파티션키/정렬키
= ForumName/LastPostDateTime
• 추가 속성을 가져오려면 추가 읽기 작업을 수행해야함
= RCU 추가로 사용
• 쿼리하고 가져오기 작업을 회피하기 가장 효율적인 방법
= Projection
DDB - Projection
DDB - Projection
• 옵션
• KEY_ONLY : 파티션/정렬/인덱스 키
• INCLUDE : KEY_ONLY + a
• ALL : 모든 속성이 추가
GSI/LSI를 쓰는 성능 상의 이점이 크게 감소함
DDB – Read/Write Unit
• RCU(Read Capacity Unit) 1 = 최대 4 KB
• Eventually Consistent Read(2 Unit)
: 최근 쓰기 작업의 결과 반영이 안될 수 있음
• Strongly Consistent Read(1 Unit)
: 최근 완료된 쓰기 결과까지 반영
• WCU(Write Capacity Unit) 1 = 최대 1 KB
API 호출 수가 아닌 초당 읽은 아이템 수로 결정됨
DDB – 항목 크기(item)
• String
• UTF-8 이진 인코딩을 사용하는 유니코드
• 크기 = attribute name length + UTF-8 인코딩 Byte 수
• 숫자
• 앞과 끝의 0은 잘리는 38자까지 지원
• 크기 = attribute name length + 유효숫자 2자리당 1 Byte + 1 Byte
• Null/Boolean
• 크기 = attribute name length + 1 Byte
• List/Map
• 내용에 상관없이 오버헤드 3 Byte 필요
• 크기 = attribute name length + 합계(중첩된 요소의 크기) + 3 Byte
비어있다면 attribute name length + 3 Byte
https://zaccharles.github.io/dynamodb-calculator/
DDB – Auto Scaling
• RCU, WCU의 스케일을 조정 가능함 현실은....
DDB - 한계
• Provisioned 모드에서 RCU/WCU 하향이
하루에 최대 4번(상향은 제한X)
• 테이블당 최대 GSI 20개, LSI 5개
• 파티션 키 길이 : 1 ~ 2048 Bytes
• 정렬 키 길이 : 1 ~ 1024 Bytes
• 문자열 최대 : 400KB(UTF-8)
• 숫자 : 최대 38자리 정밀도의 양, 음수, 0
• Item 크기 : 속성 이름, 값 모두 포함 400 KB
(400KB가 넘으면 S3에 넣고 해당 ARN을 DDB에 저장)
DDB & Elastic Search
• 쿼리의 유연성, 비용문제, 스케일링 문제를 해결
• DDB Stream으로 가공한 뒤에 ES에 Insert
• 검색은 ES에서 처리
• Mapping 문제
• 타입이 다르면 ES에서 입력X
• Glue, Athena도 비슷한 문제 존재
• Plugin 문제
• 플러그인이 10개 밖에 지원 안함
DDB – On Demand & Transaction
• 돈만 내라
• Provisioning/Auto Scale의 고통 해방...?
• 2018년 하반기에 생긴 기능
DDB – On Demand
• 하루에 1회 On-Demand/Provisioned 모드 변경 가능
• https://aws.amazon.com/ko/blogs/korea/amazon-dynamodb-on-demand-no-capacity-planning-and-pay-per-request-pricing/
DDB - On-Demand vs Provisioned Price
• On-Demand(1회 요청당)
• 쓰기 요청 유닛 1 = $0.0000013556
• 읽기 요청 유닛 1 = $0.000000271
• Provisioned(1초당)
• 1 WCU = $0.0007049
• 1 RCU = $0.00014098
• 단위는 올림으로 계산
• 나머지 비용은 동일
DDB – 트랜잭션 지원
• NoSQL이지만
여러 Table을 묶어서 트랜젝션 처리 가능해짐
• 더 이상 AWSLabs SDK 사용 안해도 됨
• 비용은 일반 요청에 4배(4배만큼 유닛을 사용)
• https://github.com/awslabs/dynamodb-transactions
DDB – 요즘은...
• Dynamo DB + API Gateway : Restful API
• Dynamo DB + AppSync : GraphQL API
• Dynamo DB + Elastic Search : Restful API, 검색엔진
• Dynamo DB + CloudWatch : 시계열

More Related Content

What's hot

AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
Amazon Web Services Korea
 

What's hot (20)

AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
 
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
게임서비스를 위한 ElastiCache 활용 전략 :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB DayAmazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB Day
 
AWS 를 이용한 Serverless Infra 구축해보기 (Lambda, DynamoDB)
AWS 를 이용한 Serverless Infra 구축해보기 (Lambda, DynamoDB)AWS 를 이용한 Serverless Infra 구축해보기 (Lambda, DynamoDB)
AWS 를 이용한 Serverless Infra 구축해보기 (Lambda, DynamoDB)
 
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
 
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
 
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
Amazon kinesis와 elasticsearch service로 만드는 실시간 데이터 분석 플랫폼 :: 박철수 :: AWS Summi...
 
20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)
20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)
20140806 AWS Meister BlackBelt - Amazon Redshift (Korean)
 
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
 
AWS re:Invent 2016 참가자를 위한 강의 세션 가이드
AWS re:Invent 2016 참가자를 위한 강의 세션 가이드AWS re:Invent 2016 참가자를 위한 강의 세션 가이드
AWS re:Invent 2016 참가자를 위한 강의 세션 가이드
 
AWS 환경에서 MySQL Infra 설계하기-2부.본론
AWS 환경에서 MySQL Infra 설계하기-2부.본론AWS 환경에서 MySQL Infra 설계하기-2부.본론
AWS 환경에서 MySQL Infra 설계하기-2부.본론
 
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
 
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container DayEC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
 
KGC 2013 DevSisters
KGC 2013 DevSistersKGC 2013 DevSisters
KGC 2013 DevSisters
 
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션 (이정훈 솔루션즈 아키텍트, AWS) :: Gami...
더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션 (이정훈 솔루션즈 아키텍트, AWS) :: Gami...더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션 (이정훈 솔루션즈 아키텍트, AWS) :: Gami...
더 높은 초당 패킷 처리 수와 더 낮은 지연 시간을 달성하기 위한 AWS 네트워킹 옵션 (이정훈 솔루션즈 아키텍트, AWS) :: Gami...
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Aurora  신규 서비스 알아보기 (최유정 솔루션즈 아키텍트)
 
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 GamingCloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 

Similar to AWS RDS, DYNAMO

AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
Amazon Web Services Korea
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Web Services Korea
 

Similar to AWS RDS, DYNAMO (20)

AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
 
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
 
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...
 
RDS에서 Aurora PostgreSQL Migration한 후기
RDS에서 Aurora PostgreSQL Migration한 후기RDS에서 Aurora PostgreSQL Migration한 후기
RDS에서 Aurora PostgreSQL Migration한 후기
 
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil KimAWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim
 
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
 
IBM Storage for AI - NVMe & Spectrum Scale 기술을 탑재한 ESS3000
IBM Storage for AI - NVMe & Spectrum Scale 기술을 탑재한 ESS3000IBM Storage for AI - NVMe & Spectrum Scale 기술을 탑재한 ESS3000
IBM Storage for AI - NVMe & Spectrum Scale 기술을 탑재한 ESS3000
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
 
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
Amazon Aurora 성능 향상 및 마이그레이션 모범 사례 - AWS Summit Seoul 2017
 
AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)
AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)
AWS 6월 웨비나 | AWS에서 MS SQL 서버 운영하기 (김민성 솔루션즈아키텍트)
 
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
 
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
DynamoDB의 안과밖 - 정민영 (비트패킹 컴퍼니)
 
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
 
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
 
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
2017 AWS DB Day | Amazon Aurora 자세히 살펴보기
 
AWS 환경에서 MySQL Infra 설계하기-2본론
AWS 환경에서 MySQL Infra 설계하기-2본론AWS 환경에서 MySQL Infra 설계하기-2본론
AWS 환경에서 MySQL Infra 설계하기-2본론
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
 
Object storage의 이해와 활용
Object storage의 이해와 활용Object storage의 이해와 활용
Object storage의 이해와 활용
 

More from Han Sung Kim

More from Han Sung Kim (20)

파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
AWS 약쟁이
AWS 약쟁이AWS 약쟁이
AWS 약쟁이
 
구름 어디까지 써봤니
구름 어디까지 써봤니구름 어디까지 써봤니
구름 어디까지 써봤니
 
블록체인
블록체인블록체인
블록체인
 
2017 새싹교실 1교시
2017 새싹교실 1교시2017 새싹교실 1교시
2017 새싹교실 1교시
 
Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료Django로 배우는 쉽고 빠른 웹개발 study 자료
Django로 배우는 쉽고 빠른 웹개발 study 자료
 
2016년 유니톤 언더라인 발표자료
2016년 유니톤 언더라인 발표자료2016년 유니톤 언더라인 발표자료
2016년 유니톤 언더라인 발표자료
 
OMS - Start up
OMS - Start upOMS - Start up
OMS - Start up
 
Web is 뭔들
Web is 뭔들Web is 뭔들
Web is 뭔들
 
외주 - 시작은 노예였으나 끝은 그래도 노예이니라
외주 - 시작은 노예였으나 끝은 그래도 노예이니라외주 - 시작은 노예였으나 끝은 그래도 노예이니라
외주 - 시작은 노예였으나 끝은 그래도 노예이니라
 
모바일 해커톤 사전교육 4일차
모바일 해커톤 사전교육 4일차모바일 해커톤 사전교육 4일차
모바일 해커톤 사전교육 4일차
 
모바일 해커톤 사전교육 3일차
모바일 해커톤 사전교육 3일차모바일 해커톤 사전교육 3일차
모바일 해커톤 사전교육 3일차
 
모바일 해커톤 사전교육 2일차
모바일 해커톤 사전교육 2일차모바일 해커톤 사전교육 2일차
모바일 해커톤 사전교육 2일차
 
모바일 해커톤 사전교육 1일차
모바일 해커톤 사전교육 1일차모바일 해커톤 사전교육 1일차
모바일 해커톤 사전교육 1일차
 
Uching - 2016 한양대 스마트 창작터
Uching - 2016 한양대 스마트 창작터Uching - 2016 한양대 스마트 창작터
Uching - 2016 한양대 스마트 창작터
 
I see u
I see uI see u
I see u
 
라인전
라인전라인전
라인전
 
심리전
심리전심리전
심리전
 
코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다
 
DB Project - Gmarket
DB Project - Gmarket DB Project - Gmarket
DB Project - Gmarket
 

AWS RDS, DYNAMO

  • 2. 이제까지 진행한 내용 vs 남은 내용 • IAM • S3 • EC2(VPC) • Lambda • Step Function • CloudWatch • RDS • Dynamo • Elasticache • SES • ECS • EKS • Route53 • CloudFront • API Gateway • SNS • Elastic Beanstalk • SQS • CloudFormation • Athena • Glue
  • 4. RDS
  • 5. RDS(Relational Database Service) • 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스 • 산업 표준 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리함 • Aurora != RDS
  • 6. RDS – 지원하는 DB엔진 • MySQL : 5.5~5.7, 8.0 • MariaDB : 10.0~10.3 • Oracle : Enterprise, Standard, Standard One/Two • MS SQL Server : Express, Web, Standard, Enterprise • Aurora : MySQL 5.6~5.7, PostqreSQL 9.6~10.7
  • 7. RDS vs EC2 • EC2에 Mysql 설치해서 쓰기 vs RDS에서 Mysql쓰기 • EC2 • CPU, 메모리, 스토리지, IOPS가 묶여서 제공(저비용) • RDS • 독립적으로 확장 가능(고비용) • AWS서비스 확장 지원 – S3 Import, DMS.... • 완전 관리 – Auro Scaling, Multi AZ/Region 등등
  • 8. RDS – 일단 써보기 • 알려진 문제/제한 사항...?
  • 9. RDS – 엔진/버전별로 문제/제한 제공 • EX) MySQL 5.5 버그 https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/MySQL.KnownIssuesAndLimitations.html
  • 10. RDS - Aurora • MySQL 및 PostgreSQL과 호환되는 완전 관리형 관계형 데이터베이스 엔진 • 일부 워크로드의 경우, MySQL의 처리량을 최대 5배, PostgreSQL의 처리량을 최대 3배 제공 • 단, I/O 비용이 별도로 청구
  • 11. RDS – Aurora Performance • 조건에 따라 다르겠지만 높은 성능 차이를 보여줌 • https://www.slideshare.net/awskorea/amazon-aurora-61570508
  • 12. RDS – Aurora 구조1 • Aurora 스토리지 엔진은 한 리전의 여러 AWS 가용 영역에 걸친 분산된 SAN 입니다. • 스토리지 할당 = 최대 64TB(MySQL기준 테이블 1개)
  • 13. RDS – Aurora 구조2 • 빠르게 쓸 수 있는 이유? • 데이터를 쓰면 6개 스토리지 노드로 병렬 전송 • 중복 로그 레코드는 폐기 • 비동기식으로 S3에 백업 • https://aws.amazon.com/ko/blogs/korea/databaseintroducing-the- aurora-storage-engine/
  • 14. RDS – Aurora 구조3 • 내결함성 복제된 데이터는 99.999999999%의 내구성을 제공하도록 설계된 S3에 지속적으로 백업
  • 15. RDS – Aurora 구조4 • 1개 AZ에서 노드가 장애시 다른 AZ에서 쓰기 가능 • 1개 노드가 장애나도 다른 노드를 통해 읽기 가능
  • 16. RDS - Aurora 생성1 • Master user = 유사 Root • 인터스턴스 클래스(타입)은 r4/5, t2/3 시리즈 지원
  • 17. RDS - Aurora 생성2 • 파라미터 그룹에서 DB Config 설정 • innodb_flush_log_at_trx_commit • connection 등등 • 다양한 추가 설정 등을 제공 • 로그 처리(에러, 일반, slow..) • 버전 자동 업그레이드 • 삭제 방지 등등
  • 18. RDS - Aurora 생성3 • Multi AZ로 Aurora DB(MySQL) Cluster 생성
  • 19. RDS - 역추적 • 백업에서 데이터를 복구하지 않고 특정시간으로 이동 • Cluster 생성시 역추적 활성화 필수 • 제한 • 최대 72시간 • Cluster의 성능 영향 • 단일 테이블, 데이터만 선택적으로 추적X • 역추적 작업 시작시 Instance가 일시 중단 • MySQL 5.6에서만 지원 https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Backtrack.html
  • 20. RDS – CloudWatch 모니터링 • CPU, 메모리, 버퍼 캐시 적중률, 트랜젝션 등등 다양함(총 48개 로그)
  • 21. RDS – Multi AZ • 쓰기 = northeast-2a • 읽기 = northeast-2c • 복제본에 대한 지연시간은 설정마다 달라짐(설정이 추가될수록 느려짐)
  • 22. RDS - 추가작업 • DMS를 써서 S3에 올리거나 직접 S3에 Backup 파일을 올려서 복원처리 가능 • 삭제는 모든 Cluster instance 중지 후 삭제 가능 • 지금/다음에 업그레이드는 엔진 버전 업데이트나 수정 사항 업데이트
  • 23. RDS – 읽기 추가 • 장애 조치 우선 순위에 따라서 읽기 Instance 가 쓰기 Instance로 승격됨(약 10~20분) • cluster의 읽기 엔드포인트는 늘지 않는다 • 매번 dns조회로 ip를 추적하거나 AWS API를 사용해서 각각의 endpoint 추적
  • 24. RDS – 리전 간 읽기 전용 복제본 생성 • 타 리전에 읽기 전용 복제본 생성 • 리전간 트래픽 비용이 발생하기 때문에 비용 예측이 필요
  • 25. RDS - 복제본 • 정확히는 백업 복제본(!= 읽기 복제본) • 쓰기 인스턴스에서만 복제가 가능함 서울 타 리전쓰기 읽기읽기 읽기 읽기 읽기 a b a b
  • 26. RDS – 특정 시점으로 복구 • 기존 인스턴스를 복구X, 새롭게 생성 https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_PIT.html
  • 27. RDS – 장애조치 & 승격 승격 • 장애 조치 : DB Cluster 테스트 • 승격 : 쓰기 Instance에 장애가 발생하면 읽기 Instance가 임시로 쓰기로 변경됨. 이전 쓰기 Instance가 복구되면 다시 돌아옴 -> cluster endpoint를 써야하는 이유
  • 28. RDS – Auto Scaling • CPU, Connection으로 Auto Scale Up/Down 가능 • 최소 1~15개의 복제본 생성 가능 • 아직은 Read만 Scaling 가능
  • 29. RDS – Multi Master • https://aws.amazon.com/ko/about-aws/whats- new/2019/08/amazon-aurora-multimaster-now-generally- available/ • 지원 리전 • 미국 동부(버지니아 북부) • 미국 동부(오하이오) • 미국 서부(오레곤) • EU(아일랜드) • 지원 버전 - Aurora MySQL 5.6에서 사용
  • 30. RDS – DB Router(Custom Endpoint) • https://www.slideshare.net/addnull/20190418-aws-summit-seoul-2019-hbsmith
  • 31. RDS – Aurora Serverless • MySQL 5.6만 가능 • 사용 빈도가 낮거나 예측할 수 없는 workload에서 사용 • 인스턴스 및 용량 관리 불필요 • 컴퓨팅 & 메모리 확장시 클라이언트 연결 유지 • 1 ACU(Aurora Capacity Unit) = $0.1 • 1 ACU = 2 Gb RAM
  • 32. RDS – Aurora Price • 온디맨드 요금 = r5.12xlarge 기준 750시간 $6300 • 48 core, 384 RAM, EBS 7000Mbps, Net 10 Gbps • MySQL = $5130 • 스토리지 요금 = 월 GB당 $0.12 • MySQL = 단일 $0.131, Multi AZ $0.276 • I/O 요금 = 요청 100만 건당 $0.24 • 백업 스토리지 = 월 GB당 $0.023 • 역추적 = 변경 레크도 100만 개당 $0.014
  • 34. DDB(Dynamo DB) • 종합 관리형 NoSQL 데이터베이스 서비스 • 유사 HBase • 복잡성 감소, 비용/성능 개선 • 비지니스 로직은 애플리케이션에서만 처리 • 2018년을 기준으로 매우매우 좋아짐 • Serverless의 꽃이자 함정
  • 35. DDB – 모델 개념 • Table : Item의 모임 • Item : Attribute의 모임 • Attribute : key-value 방식 • 1 Application = 1 Table • 검색을 하려면 기본키로 인덱스 생성(=테이블 인덱스) • 기본키 방식 • Hash 형식 : Attribute 하나를 기본키로 사용 • Hash와 Range 형식 : Attribute 2개를 기본키로 사용(복합키)
  • 36. DDB – 일단 써보기 • 파티션, 정렬 키?? • 보조 인덱스?? • 읽기/쓰기 용량??
  • 37. DDB – 생성된 테이블 정보
  • 38. DDB - Insert • column을 추가 안해도 넣는대로 들어간다!
  • 39.
  • 40. DDB - 함정 • 파티션키 • 정렬키 • 보조 인덱스 • 읽기/쓰기 용량 • 용량 모드 – On-demand/Provisioned • 지옥의 쿼리...
  • 41. DDB - 단점 • 넣는 건 자유 • 읽는 건 파티션 키에 종속 • 파티션 키를 모른다? = 찾을 수 없는 정보 = GSI, LSI로 해결 • 기본키 = 파티션 & 정렬 키
  • 42. DDB – Query vs Scan • 파티션 키 = 필수 • 필터O, 정렬O • 모든 항목을 읽어옴 • 필터O, 정렬X
  • 43. DDB – Query 문제점? • 최소 파티션 키를 알아야 조회가 가능함 • 파티션 & 정렬키가 아닌 값으로 Query를 쓰고 싶다? • GSI(Global Secondary Index) • 파티션, 정렬키를 다르게 사용 • LSI(Local Secondary Index) • 정렬키만 다르게 사용 = 추가 스토리지 사용 = 당연히 추가요금 = 잘못된 테이블 설계
  • 44. DDB - GSI(Global Secondary Index) • 기본키 = 파티션키/정렬키 = UserId/GameTitle • GSI = 파티션키/정렬키 = GameTitle/TopScore
  • 45. DDB - LSI(Local Secondary Index) • 기본키 = 파티션키/정렬키 = ForumName/Subject • 기본키 = 파티션키/정렬키 = ForumName/LastPostDateTime
  • 46. • 추가 속성을 가져오려면 추가 읽기 작업을 수행해야함 = RCU 추가로 사용 • 쿼리하고 가져오기 작업을 회피하기 가장 효율적인 방법 = Projection DDB - Projection
  • 47. DDB - Projection • 옵션 • KEY_ONLY : 파티션/정렬/인덱스 키 • INCLUDE : KEY_ONLY + a • ALL : 모든 속성이 추가 GSI/LSI를 쓰는 성능 상의 이점이 크게 감소함
  • 48. DDB – Read/Write Unit • RCU(Read Capacity Unit) 1 = 최대 4 KB • Eventually Consistent Read(2 Unit) : 최근 쓰기 작업의 결과 반영이 안될 수 있음 • Strongly Consistent Read(1 Unit) : 최근 완료된 쓰기 결과까지 반영 • WCU(Write Capacity Unit) 1 = 최대 1 KB API 호출 수가 아닌 초당 읽은 아이템 수로 결정됨
  • 49. DDB – 항목 크기(item) • String • UTF-8 이진 인코딩을 사용하는 유니코드 • 크기 = attribute name length + UTF-8 인코딩 Byte 수 • 숫자 • 앞과 끝의 0은 잘리는 38자까지 지원 • 크기 = attribute name length + 유효숫자 2자리당 1 Byte + 1 Byte • Null/Boolean • 크기 = attribute name length + 1 Byte • List/Map • 내용에 상관없이 오버헤드 3 Byte 필요 • 크기 = attribute name length + 합계(중첩된 요소의 크기) + 3 Byte 비어있다면 attribute name length + 3 Byte https://zaccharles.github.io/dynamodb-calculator/
  • 50. DDB – Auto Scaling • RCU, WCU의 스케일을 조정 가능함 현실은....
  • 51. DDB - 한계 • Provisioned 모드에서 RCU/WCU 하향이 하루에 최대 4번(상향은 제한X) • 테이블당 최대 GSI 20개, LSI 5개 • 파티션 키 길이 : 1 ~ 2048 Bytes • 정렬 키 길이 : 1 ~ 1024 Bytes • 문자열 최대 : 400KB(UTF-8) • 숫자 : 최대 38자리 정밀도의 양, 음수, 0 • Item 크기 : 속성 이름, 값 모두 포함 400 KB (400KB가 넘으면 S3에 넣고 해당 ARN을 DDB에 저장)
  • 52. DDB & Elastic Search • 쿼리의 유연성, 비용문제, 스케일링 문제를 해결 • DDB Stream으로 가공한 뒤에 ES에 Insert • 검색은 ES에서 처리 • Mapping 문제 • 타입이 다르면 ES에서 입력X • Glue, Athena도 비슷한 문제 존재 • Plugin 문제 • 플러그인이 10개 밖에 지원 안함
  • 53. DDB – On Demand & Transaction • 돈만 내라 • Provisioning/Auto Scale의 고통 해방...? • 2018년 하반기에 생긴 기능
  • 54. DDB – On Demand • 하루에 1회 On-Demand/Provisioned 모드 변경 가능 • https://aws.amazon.com/ko/blogs/korea/amazon-dynamodb-on-demand-no-capacity-planning-and-pay-per-request-pricing/
  • 55. DDB - On-Demand vs Provisioned Price • On-Demand(1회 요청당) • 쓰기 요청 유닛 1 = $0.0000013556 • 읽기 요청 유닛 1 = $0.000000271 • Provisioned(1초당) • 1 WCU = $0.0007049 • 1 RCU = $0.00014098 • 단위는 올림으로 계산 • 나머지 비용은 동일
  • 56. DDB – 트랜잭션 지원 • NoSQL이지만 여러 Table을 묶어서 트랜젝션 처리 가능해짐 • 더 이상 AWSLabs SDK 사용 안해도 됨 • 비용은 일반 요청에 4배(4배만큼 유닛을 사용) • https://github.com/awslabs/dynamodb-transactions
  • 57. DDB – 요즘은... • Dynamo DB + API Gateway : Restful API • Dynamo DB + AppSync : GraphQL API • Dynamo DB + Elastic Search : Restful API, 검색엔진 • Dynamo DB + CloudWatch : 시계열