이 강연에서는 NoSQL 데이터베이스인 DynamoDB를 활용하기 위해 개발 실무자가 알아야 할 실용적 지식을 소개해 드립니다. 테이블을 설계하고 모범사례를 도입해 최적화된 성능과 비용으로 고가용성 데이터베이스 아키텍처를 구축하는 방법에 대해 말씀드린 뒤 다양한 용도로 DynamoDB를 활용하고 계시는 한국 고객들의 사례에 대해 소개하도록 하겠습니다.
연사: 김일호, 아마존 웹서비스 솔루션즈 아키텍트
이 강연에서는 NoSQL 데이터베이스인 DynamoDB를 활용하기 위해 개발 실무자가 알아야 할 실용적 지식을 소개해 드립니다. 테이블을 설계하고 모범사례를 도입해 최적화된 성능과 비용으로 고가용성 데이터베이스 아키텍처를 구축하는 방법에 대해 말씀드린 뒤 다양한 용도로 DynamoDB를 활용하고 계시는 한국 고객들의 사례에 대해 소개하도록 하겠습니다.
연사: 김일호, 아마존 웹서비스 솔루션즈 아키텍트
Amazon Aurora 는 엔터프라이즈급의 가용성과 성능을 제공합니다. 실제 적용에서 Aurora성능 개선을 위해 무엇을 해야하는지, 그에 따른 모범 사례는 무엇이 있는지 본 세션에서 살펴봅니다. 또한 AWS Lambda 및 Amazon S3 와 같은 AWS의 다양한 서비스와 통합하는 최근 기능들에 대하여 상세하게 살펴보고 한국 고객들이 Aurora를 도입 및 마이그레이션한 사례를 통해 어떻게 마이그레이션에 접근해야 하는지를 살펴봅니다.
연사: 구승모, 아마존 웹서비스 솔루션즈 아키텍트
Amazon Aurora 는 엔터프라이즈급의 가용성과 성능을 제공합니다. 실제 적용에서 Aurora성능 개선을 위해 무엇을 해야하는지, 그에 따른 모범 사례는 무엇이 있는지 본 세션에서 살펴봅니다. 또한 AWS Lambda 및 Amazon S3 와 같은 AWS의 다양한 서비스와 통합하는 최근 기능들에 대하여 상세하게 살펴보고 한국 고객들이 Aurora를 도입 및 마이그레이션한 사례를 통해 어떻게 마이그레이션에 접근해야 하는지를 살펴봅니다.
연사: 구승모, 아마존 웹서비스 솔루션즈 아키텍트
Amazon Elastic Compute Cloud (Amazon EC2)는 손쉽게 확장 가능한 컴퓨팅 자원을 클라우드로 제공하며, 대부분 EC2 사용으로 AWS 사용을 시작하는 것이 보통입니다. 본 강연에서는 Amazon EC2의 기초 개념과 클라우드 컴퓨팅으로 빠르고 가볍게 가상머신을 실행하는 법에 대해 알아봅니다.
또한 이 강연에서는 EC2 인스턴스의 종류와 Amazon Machine Image (AMI) 사용 방법, 이를 통해 손쉽게 인스턴스를 동적으로 제공하는 부트스트래핑(Bootstrapping), 그리고 CloudWatch를 통한 EC2 모니터링 방법, 마지막으로 오토스케일링 (Autoscaling)으로 확장성 아키텍처를 구성하는 방법에 대해서도 알아볼 수 있습니다.
본 세션에서는 Amazon의 관리형 데이터베이스 서비스(RDS) 중 기존 상용데이터베이스의 5배 성능 및 1/10 가격으로도 확장성을 보장하는 Aurora에 대한 소개 및 사용법 그리고 기존의 DB에서의 마이그레이션 방법에 대해 소개해드립니다. 10월 리인벤트를 통해 동경 리전에 Aurora를 사용가능하게 되었습니다.
2014년 10월 29일에 열린 AWS Enterprise Summit에서의 발표자료입니다. 아마존 웹서비스의 이종남 프로페셔널 컨설턴트가 진행한 강연입니다.
강연 요약: AWS 클라우드 도입 시 많은 엔터프라이즈 고객들이 가장 먼저 이전하는 것은 웹사이트와 모바일 애플리케이션이고, 그 다음으로 가장 중요한 비즈니스 서비스를 옮겨옵니다. SAP나 Oracle 같은 이런 서비스들은 매우 복잡하며 고객사 내부에서도 다양한 절차와 결합되어 있어 다른 내부 및 외부 서비스들과 연동된 하이브리드 솔루션의 형태로 배포되어 있기 마련입니다. 이러한 하이브리드 솔루션을 구축하기 위해서는 이전 세션에서 다룬 대로 기존의 온프레미스 네트워크와 클라우드 사이에 빠르고 안전한 네트워크 연결이 필요합니다. 이번 세션에서는 이러한 연결망을 구축하는 방법에 대해 조금 더 자세히 알아보고 AWS를 선택한 고객들이 자신들의 비즈니스 애플리케이션을 AWS에 연결해 얻게 된 이점에 대해 이해해 보시기 바랍니다.
효과적인 NoSQL (Elasticahe / DynamoDB) 디자인 및 활용 방안 (최유정 & 최홍식, AWS 솔루션즈 아키텍트) :: ...Amazon Web Services Korea
대량의 트랜잭션을 빠르고 유연하게 처리하기 위해서는, 데이터 처리 및 저장 방식에 대한 변화를 고려해야 합니다. 본 세션에서는 어플리케이션이 요구하는 다양한 사용 패턴 및 성능 요구사항을 살펴보고, NoSQL(Elasticache Redis, DynamoDB)을 기반으로 이를 효율적으로 처리하기 위한 디자인 및 쿼리 패턴을 포함한 기술적 고려사항을 알아봅니다.
AWS에서는 애플리케이션의 목적과 특징에 맞는 다양한 클라우드 기반 데이터베이스 선택 옵션을 제공합니다. 본 세션에서는 클라우드 DB 서비스를 간단히 알아보고, 그 중에서도 DB 서버 및 클러스터 관리 및 운영에 대한 걱정이 전혀 없는 서버리스(Serverless) DB 서비스인 Amazon Aurora Serverless와 DynamoDB에 대해 자세히 알아봅니다. DB 관리 및 운영 등의 번거러운 작업은 AWS에 맡기고, 비지니스 로직에 필요한 데이터 모델 구성 및 쿼리 최적화 등에 집중하여 시장에 요구에 따른 비지니스에 민첩한 서비스를 만드는 방법을 알아 봅니다.
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/z68l2X5KoC4
AWS 클라우드는 초기에 적은 비용으로 웹 서비스를 시작하고, 향후 사업이 발전했을 때 천만 이상의 유저가 사용할 수 있는 고가용성, 확장성, 민첩성이 뛰어난 웹 서비스를 만들 수 있습니다. 본 세션에서는 작은 서비스로 시작하여 AWS의 다양한 서비스를 사용하여 천만 이상의 대규모 유저 트래픽을 수용할 수 있는 웹 서비스로 발전시키는 것을 단계별로 오토스케일링, 트래픽 경감, 모니터링과 자동화, 고가용성 확보를 위한 아키텍처 구성 방법을 소개합니다.
모바일 퍼스트 시대에서 점점 더 고객과의 접점이 늘어나고 있습니다. 다양한 비금융 애플리케이션은 고객들의 수요에 탄력적으로 대응할 수 있는 시스템이 필요합니다. 본 강연에서는 AWS 위에서 최적의 솔루션을 구현하는 방안에 대해 공유합니다.
연사: 이창수 솔루션 아키텍트, 아마존 웹서비스
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
Similar to AWS Innovate: Best Practices for Migrating to Amazon DynamoDB - Sangpil Kim (20)
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...Amazon Web Services Korea
Database Migration Service(DMS)는 RDBMS 이외에도 다양한 데이터베이스 이관을 지원합니다. 실제 고객사 사례를 통해 DMS가 데이터베이스 이관, 통합, 분리를 수행하는 데 어떻게 활용되는지 알아보고, 동시에 데이터 분석을 위한 데이터 수집(Data Ingest)에도 어떤 역할을 하는지 살펴보겠습니다.
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Web Services Korea
Amazon ElastiCache는 Redis 및 MemCached와 호환되는 완전관리형 서비스로서 현대적 애플리케이션의 성능을 최적의 비용으로 실시간으로 개선해 줍니다. ElastiCache의 Best Practice를 통해 최적의 성능과 서비스 최적화 방법에 대해 알아봅니다.
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Amazon Web Services Korea
ccAmazon Aurora 데이터베이스는 클라우드용으로 구축된 관계형 데이터베이스입니다. Aurora는 상용 데이터베이스의 성능과 가용성, 그리고 오픈소스 데이터베이스의 단순성과 비용 효율성을 모두 제공합니다. 이 세션은 Aurora의 고급 사용자들을 위한 세션으로써 Aurora의 내부 구조와 성능 최적화에 대해 알아봅니다.
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...Amazon Web Services Korea
오랫동안 관계형 데이터베이스가 가장 많이 사용되었으며 거의 모든 애플리케이션에서 널리 사용되었습니다. 따라서 애플리케이션 아키텍처에서 데이터베이스를 선택하기가 더 쉬웠지만, 구축할 수 있는 애플리케이션의 유형이 제한적이었습니다. 관계형 데이터베이스는 스위스 군용 칼과 같아서 많은 일을 할 수 있지만 특정 업무에는 완벽하게 적합하지는 않습니다. 클라우드 컴퓨팅의 등장으로 경제적인 방식으로 더욱 탄력적이고 확장 가능한 애플리케이션을 구축할 수 있게 되면서 기술적으로 가능한 일이 달라졌습니다. 이러한 변화는 전용 데이터베이스의 부상으로 이어졌습니다. 개발자는 더 이상 기본 관계형 데이터베이스를 사용할 필요가 없습니다. 개발자는 애플리케이션의 요구 사항을 신중하게 고려하고 이러한 요구 사항에 맞는 데이터베이스를 선택할 수 있습니다.
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Amazon Web Services Korea
실시간 분석은 AWS 고객의 사용 사례가 점점 늘어나고 있습니다. 이 세션에 참여하여 스트리밍 데이터 기술이 어떻게 데이터를 즉시 분석하고, 시스템 간에 데이터를 실시간으로 이동하고, 실행 가능한 통찰력을 더 빠르게 얻을 수 있는지 알아보십시오. 일반적인 스트리밍 데이터 사용 사례, 비즈니스에서 실시간 분석을 쉽게 활성화하는 단계, AWS가 Amazon Kinesis와 같은 AWS 스트리밍 데이터 서비스를 사용하도록 지원하는 방법을 다룹니다.
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon Web Services Korea
Amazon EMR은 Apache Spark, Hive, Presto, Trino, HBase 및 Flink와 같은 오픈 소스 프레임워크를 사용하여 분석 애플리케이션을 쉽게 실행할 수 있는 관리형 서비스를 제공합니다. Spark 및 Presto용 Amazon EMR 런타임에는 오픈 소스 Apache Spark 및 Presto에 비해 두 배 이상의 성능 향상을 제공하는 최적화 기능이 포함되어 있습니다. Amazon EMR Serverless는 Amazon EMR의 새로운 배포 옵션이지만 데이터 엔지니어와 분석가는 클라우드에서 페타바이트 규모의 데이터 분석을 쉽고 비용 효율적으로 실행할 수 있습니다. 이 세션에 참여하여 개념, 설계 패턴, 라이브 데모를 사용하여 Amazon EMR/EMR 서버리스를 살펴보고 Spark 및 Hive 워크로드, Amazon EMR 스튜디오 및 Amazon SageMaker Studio와의 Amazon EMR 통합을 실행하는 것이 얼마나 쉬운지 알아보십시오.
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon Web Services Korea
로그 및 지표 데이터를 쉽게 가져오고, OpenSearch 검색 API를 사용하고, OpenSearch 대시보드를 사용하여 시각화를 구축하는 등 Amazon OpenSearch의 새로운 기능과 기능에 대해 자세히 알아보십시오. 애플리케이션 문제를 디버깅할 수 있는 OpenSearch의 Observability 기능에 대해 알아보세요. Amazon OpenSearch Service를 통해 인프라 관리에 대해 걱정하지 않고 검색 또는 모니터링 문제에 집중할 수 있는 방법을 알아보십시오.
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Amazon Web Services Korea
데이터 거버넌스는 전체 프로세스에서 데이터를 관리하여 데이터의 정확성과 완전성을 보장하고 필요한 사람들이 데이터에 액세스할 수 있도록 하는 프로세스입니다. 이 세션에 참여하여 AWS가 어떻게 분석 서비스 전반에서 데이터 준비 및 통합부터 데이터 액세스, 데이터 품질 및 메타데이터 관리에 이르기까지 포괄적인 데이터 거버넌스를 제공하는지 알아보십시오. AWS에서의 스트리밍에 대해 자세히 알아보십시오.
Amazon Redshift Deep Dive - Serverless, Streaming, ML, Auto Copy (New feature...Amazon Web Services Korea
이 세션에 참여하여 Amazon Redshift의 새로운 기능을 자세히 살펴보십시오. Amazon Data Sharing, Amazon Redshift Serverless, Redshift Streaming, Redshift ML 및 자동 복사 등에 대한 자세한 내용과 데모를 통해 Amazon Redshift의 새로운 기능을 알고 싶은 사용자에게 적합합니다.
From Insights to Action, How to build and maintain a Data Driven Organization...Amazon Web Services Korea
데이터는 혁신과 변혁의 토대입니다. 비즈니스 혁신을 이끄는 혁신은 특정 시점의 전략이나 솔루션이 아니라 성장을 위한 반복적이고 집단적인 계획입니다. 혁신에 이러한 접근 방식을 채택하는 기업은 전략과 비즈니스 문화에서 데이터를 기반으로 하는 경우가 많습니다. 이러한 접근 방식을 개발하려면 리더가 데이터를 조직의 자산처럼 취급하고 조직이 더 나은 비즈니스 성과를 위해 데이터를 활용할 수 있도록 권한을 부여해야 합니다. AWS와 Amazon이 어떻게 데이터와 분석을 활용하여 확장 가능한 비즈니스 효율성을 창출하고 고객의 가장 복잡한 문제를 해결하는 메커니즘을 개발했는지 알아보십시오.
[Keynote] Accelerating Business Outcomes with AWS Data - 발표자: Saeed Gharadagh...Amazon Web Services Korea
데이터는 최종 소비자의 성공에 초점을 맞춘 디지털 혁신에서 중추적인 역할을 하고 있습니다. 모든 기업들은 데이터를 자산으로 사용하여 사례 제공을 추진하고 까다로운 결과를 해결하고 있습니다. AWS 클라우드 기술과 분석 솔루션의 강력한 성능을 통해 고객은 혁신 여정을 가속화할 수 있습니다. 이 세션에서는 기업 고객들이 클라우드에서 데이터의 힘을 활용하여 혁신 목표를 달성하고 필요한 결과를 제공하는 방법에 대해 다룹니다.
LG전자 - Amazon Aurora 및 RDS 블루/그린 배포를 이용한 데이터베이스 업그레이드 안정성 확보 - 발표자: 이은경 책임, L...Amazon Web Services Korea
LG ThinQ는 LG전자의 가전제품과 서비스를 아우르는 플랫폼 브랜드로서 앱 하나로 간편한 컨트롤, 똑똑한 케어, 스마트한 쇼핑까지 한번에 가능한 플랫폼입니다. ThinQ 플랫폼은 글로벌 서비스로 제공되고 있어, 작업 시간을 최소화하고, 서비스의 영향을 최소화 할 필요가 있었습니다. 따라서 DB 버전 업그레이드 작업 시 애플리케이션 배포가 필요없는 Blue/Green Deployment 방식은 최선의 선택이 되었습니다.
KB국민카드 - 클라우드 기반 분석 플랫폼 혁신 여정 - 발표자: 박창용 과장, 데이터전략본부, AI혁신부, KB카드│강병억, Soluti...Amazon Web Services Korea
온프레미스 분석 플랫폼에는 자원 증설 비용, 자원 관리 비용, 신규 자원 도입 및 환경 설정의 리드타임 등 다양한 측면에서의 한계가 존재합니다. 이에 KB국민카드에서는 기존 분석 플랫폼의 한계를 극복함과 동시에 시너지를 낼 수 있는 클라우드 기반 분석 플랫폼을 설계 및 도입하였습니다. 본 사례 소개는 KB국민카드의 데이터 혁신 여정과 노하우를 소개합니다.
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...Amazon Web Services Korea
SK Telecom의 망관리 프로젝트인 TANGO에서는 오라클을 기반으로 시스템을 구축하여 운영해 왔습니다. 하지만 늘어나는 사용자와 데이터로 인해 유연하고 비용 효율적인 인프라가 필요하게 되었고, 이에 클라우드 도입을 검토 및 실행에 옮기게 되었습니다. TANGO 프로젝트의 클라우드 도입을 위한 검토부터 준비, 실행 및 이를 통해 얻게 된 교훈과 향후 계획에 대해 소개합니다.
코리안리 - 데이터 분석 플랫폼 구축 여정, 그 시작과 과제 - 발표자: 김석기 그룹장, 데이터비즈니스센터, 메가존클라우드 ::: AWS ...Amazon Web Services Korea
2022년 코리안리는 핵심업무시스템(기간계/정보계 시스템)을 AWS 클라우드로 전환하는 사업과 AWS 클라우드 기반에서 손익분석을 위한 어플리케이션 구축 사업을 동시에 진행하고 있었습니다. 이에 따라 클라우드 전환 이후 시스템 간 상호운용성과 호환성을갖춘 데이터 분석 플랫폼 또한 필요하게 되었습니다. 코리안리 IT 환경에 적합한 플랫폼 선정을 위하여 AWS Native Analytics Platform, 3rd Party Analytics Platform (클라우데라, 데이터브릭스)과의 PoC를 진행하고, 최종적으로 AWS Native Analytics Platform 으로 확정하였습니다. 코리안리는 메가존클라우드와 함께 2022년 10월부터 4개월(구축 3개월, 안정화 및 교육 1개월) 동안 AWS 기반 데이터 분석 플랫폼을 구축하고 활용 범위를 지속적으로 확대하고 있습니다.
LG 이노텍 - Amazon Redshift Serverless를 활용한 데이터 분석 플랫폼 혁신 과정 - 발표자: 유재상 선임, LG이노...Amazon Web Services Korea
LG 이노텍은 세계 시장을 선도하는 글로벌 소재·부품기업으로, Amazon Redshift 을 데이터 분석 플랫폼의 핵심 서비스로 활용하고 있습니다.지속적인 데이터 증가와 업무 확대에 따른 유연한 아키텍처 개선의 필요성에 대처하기 위해, 2022년에 AWS 에서 발표된 Redshift Serverless 를 활용한, 비용 최적화된 아키텍처 개선 과정의 실사례를 엿볼수 있는 기회가 됩니다.
2. Amazon DynamoDB 개요
• NoSQL 데이터베이스
• 완전 관리형 서비스
• 대용량, 뛰어난 확장성
• 10ms 미만의 빠르고 일관된 성능
• 유연한 데이터 모델 - 문서 및 키-값 스토어
• 세분화된 접근 제어
Amazon
DynamoDB
3. 목차
• AWS 관리형 데이터베이스 서비스
• 데이터 저장소 선택 시 고려사항
• 1단계 : 검토
• 2단계 : 테이블 설계
• 3단계 : 데이터 마이그레이션
• 4단계 : 마이그레이션 이후
• 주요 고려사항
4. AWS 관리형 데이터베이스 서비스
Amazon DynamoDB
• NoSQL
데이터베이스
• 완전 관리형
• 10ms 미만
응답속도
• 대용량, 뛰어난
확장성
• 낮은 비용
Amazon RDS
• 관계형 데이터베이
스
• 완전 관리형
• 예측 가능한 성능
• 빠르고 손쉬운 확장
• 낮은 비용, 사용량에
따른 과금
Amazon Elasticache
• 인-메모리 키-값 저장
소
• 고성능
• Memcached 및 Redis
• 완전 관리형
Amazon Redshift
• 관계형 데이터 웨어하
우스
• 대용량 병렬처리
• 페타-바이트 단위
• 완전 관리형
• HDD 및 SSD 플랫폼
7. 데이터 저장소 선택 시 고려사항
• 데이터 구조 : 고정된 스키마 / JSON / 키-값
• 억세스 방식 : 데이터를 억세스하고자 하는 방식으로 저장
• 데이터 억세스 특징 : Hot / Warm / Cold
• 비용: 적합한 비용
8. 데이터 구조 및 억세스 방식
억세스 방식 저장소
Put/Get (키, 값) 캐시, NoSQL
단순한 관계 → 1:N, M:N NoSQL
테이블 조인, 트랜잭션, SQL SQL
Faceting, 검색 검색
데이터 구조 저장소
고정된 스키마 SQL, NoSQL
스키마 없음(JSON) NoSQL, 검색
키-값 저장소 캐시, NoSQL
9. Hot Warm Cold
규모 MB–GB GB–TB PB
아이템 크기 B–KB KB–MB KB–TB
응답속도 ms ms, sec min, hrs
내구성 Low–High High Very High
요청 비율 Very High High Low
비용/GB $$-$ $-¢¢ ¢
Hot Data Warm Data Cold Data
데이터 억세스 특성 : Hot / Warm / Cold
10. Cache
SQL
요청 비율
높음 낮음
비용/GB
높음 낮음
응답속도
낮음 높음
데이터 규모
낮음 높음
Glacier
구조화
NoSQL
Hot Data Warm Data Cold Data
낮음
높음
Search
적합한 데이터 저장소 선택
11. Amazon
ElastiCache
Amazon
DynamoDB
Amazon
Aurora
Amazon
Elasticsearch
Amazon
EMR (HDFS)
Amazon
S3
Amazon
Glacier
평균 응답속도 ms ms ms, sec ms,sec sec,min,hrs ms,sec,min
(~ size)
hrs
데이터 규모 GB GB–TBs
(no limit)
GB–TB
(64 TB Max)
GB–TB GB–PB
(~nodes)
MB–PB
(no limit)
GB–PB
(no limit)
아이템 크기 B-KB KB
(400 KB max)
KB
(64 KB)
KB
(1 MB max)
MB-GB KB-GB
(5 TB max)
GB
(40 TB max)
요청 비율 높음 -
매우 높음
매우 높음
(no limit)
높음 높음 낮음– 매우 높음 낮음 –
매우 높음
(no limit)
매우 낮음
스토리지 비용
GB/월
$$ ¢¢ ¢¢ ¢¢ ¢ ¢ ¢/10
내구성 낮음 - 보통 매우 높음 매우 높음 높음 높음 매우 높음 매우 높음
Hot Data Warm Data Cold Data
적합한 데이터 저장소 선택
13. DynamoDB - 기본 키 (파티션 키)
파티션 키 (Partition Key)
데이터의 분산 / 데이터 모델 단순 /
비정렬 / 동일값 조회
14. 기본 키 (파티션 키 및 정렬 키)
파티션 키
정렬 키 (Sort Key)
데이터 모델 복합/
정렬 / 범위 값 조회
15. 1단계: 검토 – 성능 / 확장성 / 가용성 / 보안
• 모든 규모에서 낮은 응답 속도(Single digit milli-second) 제공
• 데이터 규모 및 요청 수에 따른 성능 영향 없음
쓰기
디스크 영구 저장 (커스텀 SSD)
읽기
강한 또는 최종 일관성
응답속도 저하 없음
16. 1단계: 검토 – 성능 / 확장성 / 가용성 / 보안
• 각 테이블의 읽기 쓰기 대역폭 용량을 지정
- RCU (Read Capacity Units) : 4 KB per second
- WCU (Write Capacity Units) : 1 KB per second
• 필요에 따라 대역폭 용량을 제한 없이 확장 및 축소
• 스토리지 용량 제한 없이 데이터 저장에 따라 확장
• DynamoDB가 모든 내부 작업을 관리
17. 1단계: 검토 – DynamoDB 파티션
00 55 A954 AA FF00 FF
Id = 1
Name = Jim
Hash (1) = 7B
Id = 2
Name = Andy
Dept = Engg
Hash (2) = 48
Id = 3
Name = Kim
Dept = Ops
Hash (3) = CD
Key Space
• DynamoDB 테이블은 확장성을 위하여 내부적으로 다수의 파티션 관리
• 스토리지 용량 및 쓰루풋 증가에 따라 파티션 증가
• 파티션 키는 해시 값에 따라 파티션 간 아이템 분산에 사용
18. 1단계: 검토 – DynamoDB 파티션 계산
• 초기 파티션 수 계산 공식 :
• 예 : 10,000 읽기 용량 단위와 5,000 쓰기 용량 단위
• 이후, 스토리지 용량 및 쓰루풋 증가에 따라 파티션 자동 증가
( readCapacityUnits / 3,000 ) + ( writeCapacityUnits / 1,000 ) = initialPartitions (rounded up)
( 10,000 / 3,000 ) + ( 5,000 / 1,000 ) = 9 (8.33.. rounded up)
19. 1단계: 검토 – 성능 / 확장성 / 가용성 / 보안
• 높은 가용성과 안정성을 실현하기 위해 Amazon DynamoDB는 AWS
리전의 세 개 시설에 걸쳐 데이터를 동기적으로 복제
20. 1단계: 검토 – 성능 / 확장성 / 가용성 / 보안
• DynamoDB 자원에 대한 개별 사용자 접근 제어
• 항목 및 속성 수준까지
• AWS IAM(Identity and Access Management)과 통합
• 중앙화된 관리
• 3rd 파티 인증과 통합을 위한 Web Identity Federation
22. 1단계: 검토 – 비용 (Lessons Learned)
• 인스턴스 기반의 NoSQL
• 3 복제 및 운영(Compaction, Backup, Temp 등)에 따른 스토리지 용량 소요
• 데이터 증가에 따라 인스턴스 추가
• 인스턴스 최적화 여지
• DynamoDB
• Provisioned Throughput의 %사용률 고려 (100% 사용율 어려움)
• Item 크기에 따른 WCU / RCU 소모 고려
• Eventual Consistency Read 시 Throughput 50% 소모
• Reserved Capacity 통한 비용절감 고려
23. 2단계: 테이블 설계
• 모범 사례 :
http://docs.aws.amazon.com/amazondynamodb/latest/developergui
de/GuidelinesForTables.html
• 테이블의 프로비저닝된 처리량을 최적으로 사용하려면 다음
요소가 중요 :
• 기본 키 선택
• 개별 아이템의 워크로드 패턴
• 테이블에 대해 프로비저닝한 전체 요청 처리량을 달성하려면
워크로드가 파티션 키 값에 고르게 분산되도록 유지
24. 2단계: 테이블 설계 – 기본 키 선택
• 파티션 키의 고유한 값의 갯수가 많은 속성을 파티션 키로 선택
• 좋은 예 : 사용자 ID, 애플리케이션의 사용자가 많은 경우
• 나쁜 예 : 상태 코드, 가능한 상태 코드가 몇 개 없는 경우
00:0 FF:∞
Hash (2) = 48
ID = 2
Order# = 10
Item = Pen
ID = 2
Order# = 11
Item = Shoes
ID = 1
Order# = 10
Item = Toy
ID = 1
Order# = 11
Item = Boots
Hash (1) = 7B
ID = 3
Order# = 10
Item = Book
ID = 3
Order# = 11
Item = Paper
Hash (3) = CD
55 A9:∞54:∞ AA
Partition 1 Partition 2 Partition 3
Id = 1
Order# = 10
Item = Toy
Hash (1) = 7B
Id = 2
Order# = 10
Item = Pen
Hash (2) = 48
Id = 3
Order# = 10
Item = Book
Hash (3) = CD
Key Space
25. 2단계: 테이블 설계 – 기본 키 선택
• 파티션 키의 고유한 값의 갯수가 많지 않은 경우
• 팁1 : 복합 키(Composite Key) 만들기
Composite key : 사용자 아이디 + 어플리케이션 아이디 + 레코드 아이디
Partition key Sort key Attributes
…
…
…
…
Num (user accounts) = ~20M
Random number guid /w 10 digits
Email / contacts / message
Unique values per service
Unique values
/w >10 digits
26. 2단계: 테이블 설계 – 기본 키 선택
• 팁2 : 임의(Random) 또는 계산된 값(Calculated Value) 더하여 쓰기
분산
• Write Sharding 또는 Scatter & Gather 아키텍처
Partition key : 2014-07-09.N(여기서 N은 1 -200)
Partition key Sort key Attributes
…
…
…
…
날짜는 값의 갯수는
많으나
특정 파티션에 워크로드
집중
임의 또는 계산된 값을 추가
복수 파티션에 워크로드 분산
27. 3단계: 데이터 마이그레이션
• DynamoDB 내보내기(Export) 및 가져오기(Import) 기능 활용
• 가져오기 성능 향상 : EMR 클러스터 인스턴스 타입 및 크기,
DynamoDB Provisioned WCU 및 write throughput ratio
DynamoDB
Table
Amazon S3
bucket
Amazon EMR
Cluster
AWS Data
Pipeline
RDS
instance
Generic
Database
NoSQL
Database
JSON
3. Load Files 4. Write Items
2. Launch Cluster
1. Export to JSON
DynamoDB 가져오기(Import)
28. 3단계: 데이터 마이그레이션
• 온라인 마이그레이션을 위한 아키텍처 예:
user storage path
User A <path_to_cassandra>
User B <path_to_dynamodb>
Cassandra
Cluster
DynamoDB
App servers
Mobile
Clients
Storage
path db
User
A
User
B
Normal data flow
for migrated
users
Normal data flow
for not migrated
users
Migration servers
Migration data
flow
29. 3단계: 데이터 마이그레이션
• 파티션 키의 설계 또는 파티션 간 쓰기 부하 분산이 잘못된 경우
• Provisioned Throuput 대비 Consumed Throughput이 낮으며,
Throttling이 발생
Provisioned Write Capacity
Average Consumed Write Capacity
Throttled Write Requests
30. 3단계: 데이터 마이그레이션
UerID MessageID
U1 1
U1 2
U1 …
U1 … 최대 100
U2 1
U2 2
U2 …
U2 … 최대 100
• 데이터 업로드 중 파티션 간 쓰기 부하 분산
파티션 키 정렬 키
쓰기시퀀스
- 워크로드가 분산되지 않은 시퀀스 -
UerID MessageID
U1 1
U2 1
U3 1
… …
U1 2
U2 2
U3 2
… …
파티션 키 정렬 키
쓰기시퀀스 - 워크로드가 분산된 시퀀스 -
31. 4단계: 마이그레이션 이후
Partition #1
Partition #2
Partition #3
…
Partition
#1,000
Partition #1
Partition #2
Partition #3
…
Partition
#1,000
Partition #1
Create table
Migration After
Increase WCU
to 1,000K
Decrease WCU
to 100K
1,000 WCU
per partition
X
1,000 partitions
100 WCU
per partition
X
1,000 partitions
1/10 per partition
WCU
• 대용량 쓰루풋 Provisioned 후, 마이그레이션 이후 Normal 쓰루풋
감소
• 파티션은 증가하나 감소하지 않음에 따라 파티션 당 쓰루풋 감소
- Diluted Partition 피할 것
32. 주요 고려사항
데이터 저장소 선택 시 고려사항
1. 데이터 구조, 억세스 방식, 데이터 억세스 특징을 고려하여 DynamoDB가
적합한 데이터 저장소인지 검토
1단계 : 검토
1. 성능 : DynamoDB는 모든 규모에서 한자리수 ms의 성능 제공
2. 확장성 : 파티션 확장을 통하여 무제한의 스토리지 공간 및 대역폭 성능
제공
3. 가용성 : 리전 내 3개 설비에 데이터 동기화 저장
4. 보안 : Fine Grained Access Control
33. 주요 고려사항
1단계 : 검토 (계속)
5. 비용
• 기존 NoSQL은 복제 및 인스턴스 운영, 데이터 증가에 따라 인스턴스 최적화 여지
있음
• Provisioned Throughput의 %사용률 고려
• Item 크기에 따른 WCU / RCU 소모 고려
• Eventual Consistency Read 시 Throughput 50% 소모
• Reserved Capacity 통한 비용절감 고려 - 1년 계약의 경우 최대 53%, 3년 계약의 경우
최대 76%까지 절감
6. 벤치마크
• 벤치마크 툴이 부하를 잘 분산하여 요청하는지 확인 필요
(예: YCSB의 request distribution을 zipfian -> uniform)
34. 주요 고려사항
2단계 : 테이블 설계
1. 파티션 키의 고유한 값의 갯수가 많은 속성을 파티션 키로 선택
2. 복합 키(Composite Key) 만들기
3. 임의(Random) 또는 계산된 값(Calculated Value) 더하여 쓰기 분산하
는 Write Sharding 또는 Scatter & Gather 아키텍처 고려
4. 테이블에 대해 프로비저닝한 전체 요청 처리량을 달성하려면
워크로드가 파티션 키 값에 고르게 분산되도록 유지
3단계 : 데이터 마이그레이션
1. DynamoDB 가져오기(Import) 기능 활용
35. 주요 고려사항
3단계 : 데이터 마이그레이션 (계속)
2. 가져오기 성능 향상을 위하여 EMR 클러스터 인스턴스 타입 및 크기,
DynamoDB write throughput ratio 및 Provisioned WCU 조정
3. 온라인 마이그레이션을 위하여는 Storage path DB를 관리하는 전체
어플리케이션 아키텍처 고려
4. 데이터 업로드 중 파티션 간 쓰기 부하 분산하는 쓰기 시퀀스 고려
4단계 : 마이그레이션 이후
1. Diluted Partition 피할 것
36. Online Labs & Training
Gain confidence and hands-on
experience with AWS.
Watch free Instructional Videos
and explore Self-Paced Labs
Instructor Led Classes
Learn how to design, deploy and
operate highly available, cost-
effective and secure applications
on AWS in courses led by qualified
AWS instructors
Validate your technical
expertise with AWS and use
practice exams to help you
prepare for AWS Certification
AWS Certification
More info at http://aws.amazon.com/training
37. Thank You for Attending AWS Innovate
We hope you found it interesting!
Do provide us with your feedback for the session and complete the feedback form.
Let us know your thoughts of today’s event and how we can improve the event
experience for you in the future.