Amazon Web Services 한국 블로그
Amazon DynamoDB, 10번째 생일을 축하합니다!🎉🎂🎁
2012년 1월 18일, Jeff와 Werner는 Amazon DynamoDB의 정식 출시를 발표했습니다. 이 서비스는 규모와 관계없이 한 자릿수 밀리초 수준의 성능을 제공하는 완전관리형의 유연한 NoSQL 데이터베이스 서비스입니다.
지난 10년 동안 수십만 명의 고객이 DynamoDB를 채택했습니다. 이 서비스는 정기적으로 성능 및 확장성의 새로운 최고점에 도달합니다. 예를 들어 2021년 6월 마지막 Prime Day 판매 기간 동안에 66시간 동안 수조 건의 요청을 처리하면서 한 자릿수 밀리초 성능을 유지했고, 초당 8,920만 건의 요청을 기록했습니다. Disney+는 DynamoDB를 사용하여 매일 콘텐츠, 메타데이터 및 수십 억 건의 최종 사용자 작업을 수집합니다. 팬데믹으로 인한 전례 없는 요구 속에서도 DynamoDB는 전 세계의 많은 고객이 가상으로 비즈니스를 만나고 수행해야 하는 업무 방식을 변경하도록 지원할 수 있었습니다. 예를 들어 Zoom은 2020년 초 모두가 화상 통화를 시작했을 때, 일일 회의 참가자를 천만 명에서 3억 명으로 확장할 수 있었습니다.
이 특별한 기념일에 3월 1일에 Twitch에서 열리는 특별한 온라인 이벤트에 참여하세요. 이 게시물의 마지막 부분에서 이에 대해 더 자세히 설명하겠습니다. 하지만 이 이벤트에 대해 이야기하기에 앞서, 이 서비스의 기원과 10년 전 최초 출시 이후 추가된 주요 기능에 대하여 다시 살펴봅시다.
DynamoDB의 역사
DynamoDB 이야기는 10년 전에 출시되기 훨씬 전에 시작되었습니다. 이 서비스는 2004년 연말 쇼핑 시즌 동안 Amazon 전자 상거래 플랫폼에서 발생한 일련의 중단으로 시작되었습니다. 당시 Amazon은 모놀리식 아키텍처에서 마이크로서비스로 전환하고 있었습니다. 설계 원칙은 각 상태 유지 마이크로서비스가 자체 데이터 저장소를 사용하고, 다른 서비스는 공개적으로 노출된 API를 통해 마이크로서비스의 데이터에 액세스해야 한다는 것입니다 (여전히 그러합니다). 데이터베이스 직접 액세스는 더 이상 선택지가 아니었습니다. 당시 대부분의 마이크로서비스는 타사 공급 업체에서 제공하는 관계형 데이터베이스를 사용하고 있었습니다. 2004년 연휴 기간 동안의 트래픽 양을 감안할 때, 데이터베이스 시스템은 디버깅하기 어렵고 재현하기 어려운 교착 상태를 경험했습니다. 전자 상거래 플랫폼은 기본 키만 사용하는 쿼리 등의 간단한 사용 패턴을 사용하고 있음에도 관계형 데이터베이스를 그 한계로 몰아넣었습니다. 이러한 사용 패턴에는 관계형 데이터베이스의 복잡성이 필요하지 않습니다.
Amazon 및 AWS에서는 중단이 발생한 후 COE(오류 수정)라는 프로세스를 시작하여 문제의 근본 원인을 문서화하고, 문제를 해결한 방법을 설명하며, 재발을 방지하기 위한 변경 사항을 자세히 설명합니다. 이 데이터베이스 문제에 대한 COE 기간 동안 Swaminathan (Swami) Sivasubramanian(현재 AWS 데이터베이스, 분석 및 ML 조직 담당 부사장)이라는 젊고 순진한 20세의 인턴이 “이 작업에 왜 관계형 데이터베이스를 사용합니까? 이러한 워크로드에는 SQL 수준의 복잡성과 트랜잭션 보장이 필요하지 않습니다.”
이를 통해 Amazon은 데이터 스토어의 아키텍처를 재고하고, 기존의 Dynamo 데이터베이스를 구축했습니다. 목표는 Amazon 전자 상거래 플랫폼의 까다로운 확장성 및 안정성 요건 해결이었습니다. 이러한 비관계형 키 값 데이터베이스는 처음에는 쇼핑 바구니 및 세션 서비스 등의, Amazon 전자 상거래 운영의 핵심이었던 사용 사례를 대상으로 했습니다.
AWS는 3년 후인 2007년에 Dynamo 백서를 발행하여 Amazon의 설계 원칙을 설명하고, Amazon의 핵심 전자 상거래 운영을 지원하기 위해 이 데이터베이스를 실행하면서 얻은 교훈을 제공했습니다. 수년 동안 여러 Dynamo 클론이 등장하여 다른 기업도 Amazon과 마찬가지로 확장 가능한 솔루션을 찾고 있음이 입증되었습니다.
몇 년 후 Dynamo는 Amazon의 여러 핵심 서비스 팀에 채택되었습니다. 엔지니어들은 성능 및 확장성에 매우 만족했습니다. 그러나 Amazon 내에서 더 광범위하게 채택하지 않은 이유를 이해하기 위해 엔지니어를 인터뷰하기 시작했습니다. 저희는 Dynamo가 팀에 필요한 안정성, 성능 및 확장성을 제공하지만, 시스템 실행의 운영 복잡성을 단순화하지는 못했다는 것을 알게 되었습니다. Amazon 데이터 센터에 시스템을 설치, 구성 및 운영하려면 팀이 여전히 필요했습니다.
당시 AWS는 Amazon SimpleDB를 NoSQL 서비스로 제안했습니다. 많은 팀들이 도메인을 10GB 이상으로 확장하는 어려움, 예측 불가능한 지연 시간(데이터베이스 및 인덱스의 크기에 영향을 받음), 그리고 그 최종 일관성 모델에도 불구하고 SimpleDB의 운영 단순성을 선호했습니다.
이상적인 솔루션은 Dynamo의 강점(확장성 및 데이터 검색을 위한 예측 가능한 짧은 지연 시간)과 SimpleDB의 운영 단순성을 결합한다는 결론을 내렸습니다. 선언할 테이블만 있으면, 시스템은 낮은 수준의 복잡성을 투명하게 처리할 수 있습니다.
DynamoDB가 탄생했습니다.
DynamoDB를 통해 개발자는 하드웨어 및 소프트웨어 관리의 복잡성에서 벗어날 수 있습니다. 처리량 요구 사항을 충족하기 위해 데이터를 분할하고, 다시 분할하는 모든 복잡성을 처리합니다. 이 서비스는 테이블을 수동으로 다시 분할할 필요 없이 원활하게 크기를 조정하며, 예측 가능한 짧은 대기 시간(한 자릿수 밀리초)을 거쳐 고객의 데이터에 액세스합니다.
AWS에서는 새로운 서비스를 출시하는 순간이 프로젝트의 끝이 아닙니다. 실제로는 시작입니다. 지난 10년 동안 저희는 여러분의 피드백에 지속적으로 귀를 기울였으며 새로운 기능을 DynamoDB에 도입했습니다. 수백 가지의 점진적 개선 외에도 다음을 추가했습니다.
- 규모나 가용성에 영향을 주지 않으면서 더 복잡한 쿼리 기능을 사용할 수 있도록 로컬 및 글로벌 보조 인덱스 지원 (2013년 12월)
- DynamoDB 스트림(2014년 11월)을 사용하여 대규모로 변경 사항을 캡처하고, 이후 Amazon Kinesis Data Streams for DynamoDB를 사용하여 변경 사항을 캡처할 수 있음 (2020년 11월)
- AWS 리전 간에 글로벌 테이블을 생성하고 데이터를 복제하는 기능 (2017년 11월). 이를 통해 여러 리전에서 호스팅되는 활성/활성 애플리케이션을 생성할 수 있었습니다. DynamoDB 글로벌 테이블은 여러 리전의 여러 복제본으로 구성됩니다. 애플리케이션이 한 리전의 복제본 테이블에 데이터를 작성하면, DynamoDB는 다른 리전의 다른 복제본 테이블에 작성 내용을 자동으로 전파합니다.
- 장기 보존을 위한 DynamoDB 백업 및 복원 기능과 규정 준수 요건을 위한 아카이빙 기능 (2017년 11월)
- 특정 시점으로 복구(PITR). 데이터를 완벽하게 일관된 버전으로 언제든지 복원할 수 있는 기능으로 테이블을 백업할 수 있음 (2018년 3월)
- 불균형 워크로드를 무기한 실행할 수 있는 적응형 용량 (2018년 8월)
- ACID 거래에 대한 지원 (2018년 11월)
- AWS Backup을 사용한 통합 (2021년 11월)
및 기타
마지막으로, 지난 AWS re:Invent 컨퍼런스에서 저희는 Amazon DynamoDB Standard-IA(DynamoDB Standard-Infrequent Access)를 발표했습니다. 이 새로운 DynamoDB 테이블 클래스를 사용하면, 자주 액세스하지 않는 데이터의 데이터 스토리지 비용을 60% 절감할 수 있습니다. 이상적인 사용 사례는 장기 보관해야 하며, 고객의 애플리케이션이 액세스 대기 시간에 대한 타협 없이도 가끔 액세스해야 하는 데이터와 관련이 있습니다. 과거에는 이러한 데이터의 스토리지 비용을 절감하기 위해서 자주 액세스하지 않는 데이터를 Amazon Simple Storage Service(Amazon S3) 등의 저가 스토리지 대안으로 옮기는 코드를 작성했습니다. 이제는 DynamoDB Standard-IA 테이블 클래스로 전환하여 자주 액세스하지 않는 데이터를 저장하는 동시에, DynamoDB의 고가용성 및 성능을 유지할 수 있습니다.
시작하기
개발자가 DynamoDB를 시작하려면 설명서의 시작 안내서를 참조하거나, 훌륭한 DynamoDB, Explained를 읽어야 합니다. 후자는 Alex DeBrie이 작성하였으며, 이 작가는 저희 AWS Heroes 중 한 명으로 The DynamoDB Book의 작가입니다. DynamoDB 데이터 모델링에 대해 자세히 알아보기 위해 AWS Hero Jeremy Daly가 “나머지 사용자를 위한 DynamoDB 모델링” 동영상 강좌를 준비하고 있습니다.
고객은 이제 거의 모든 업종, 지리적 영역 및 회사 규모에서 DynamoDB를 활용합니다. 여러분은 DynamoDB를 혁신하는 방법에 대하여 계속해서 놀라움을 금치 못할 것입니다. 저희는 차세대 애플리케이션을 더 쉽게 구축할 수 있도록 DynamoDB를 계속 발전시키려는 노력을 지속적으로 추진하고 있습니다. 저희는 끊임없이 진화하는 요건을 충족하고, 향후 수십 년 동안 혁신 및 확장할 수 있도록 고객의 피드백으로부터 work backwards해나갈 것입니다.
DynamoDB를 통한 10년간의 혁신 – 가상 이벤트
처음에 말씀드렸듯이, 이 기념일을 여러분과 함께 축하하고 싶습니다. 모범 사례를 학습하고, 기술 데모를 보며, 라이브 Q&A에 참석할 수 있는 라이브 Twitch 이벤트를 준비했습니다. 오랜 고객 두 분, SmugMug CEO Don MacAskill과 Dropbox의 엔지니어링 리더의 이야기를 들어봅시다. 또한 AWS 블로그의 전설이자 수석 에반젤리스트인 Jeff Barr, DynamoDB 제품 관리자 및 엔지니어에게 질문을 하고 대화를 나눌 수 있습니다. 마지막으로 AWS Hero Alex DeBrie와 Jeremy Daly가 두 번의 심층 기술 세션을 개최합니다. 여기에서 전체 의제를 살펴보십시오.
이 행사는 3월 1일 Twitch에서 라이브로 진행되며, 오늘 등록 할 수 있습니다. 미국 내 첫 1,000명의 등록자는 DynamoDB 도서의 디지털 사본을 무료로 받을 수 있습니다 (소매 가치 79달러).
DynamoDB의 향후 10년을 위하여. 건배 🥂.