[웨비나] 팟캐스트 요약 : Next-Generation SQL

  • 우주최강라섹남
    (우주최강라섹남)
  • 우주최강라섹남's Avatar 이 글의 작성자
  • Offline
  • Newbie
  • Newbie
더보기
14 Dec 2021 15:04 - 14 Dec 2021 16:47 #5434 작성자: 우주최강라섹남
우주최강라섹남 님의 글: [웨비나] 팟캐스트 요약 : Next-Generation SQL
다음 링크의 팟캐스트를 정리한 것이다.




분산형 데이터베이스(Distributed Database) Cockroach labs/CockroachDB


NoSQL: 수평적 확장에 용이하지만 인덱스와 트랜잭션과 같은 편리한 기능들을 상실
전통적 SQL DB: 인덱스/트랜잭션 등 유용한 기능 제공, 확장성 떨어짐
분산형 DB(Distributed DB): 두 가지 장점을 모두 지닌 데이터베이스
Cockroach labs/CockroachDB: 분산형 DB를 설계하는 곳/제품

새로운 SQL DB가 부상하는 이유


새로운 방식의 DB가 가능해짐
컴퓨터가 데이터를 상실하는 기간이 짧아짐: 네트워크가 프로세서의 성능을 뛰어넘게되면서, 원격 머신(데이터 센터)으로부터 데이터를 읽어올 수 있게 됨
트랜잭션 분할과 분산 합의 프로토콜에 대한 이해도가 높아짐(Paxos/Raft)

분산형 데이터베이스로부터 이점을 취할 수 있는 어플리케이션


NoSQL 기반의 어플리케이션: GCP BigTable/Cassandra/HBase 기반
읽기/쓰기 IO가 복합적인 어플리케이션
CockroachDB를 통해 더 나은 성능 확보 가능
멀티 리전 클러스터
지역 분산 리플리케이션
GDPR 등 글로벌 법령 준수

시장에 존재하는 NoSQL과의 비교


분산형 DB는 NoSQL에 대한 완벽한 대체재
Postgre/MySQL에 비해 셋업/페일오버 설정 쉬움
샤딩을 자동으로 처리해줌

분산형 DB를 적용하기 위해 필요한 것


SQL을 인터페이스 언어로 사용하기 때문에 겹치는 부분이 많음
거리가 먼 리전들을 사용할 때 레이턴시를 고려하여 스키마를 디자인해야함

CSP가 제공하는 DB 서비스와의 차이


AWS Aurora/Azure Cosmos/GCP Spanner등이 제공하지 않는 지역 분산 용량을 갖춤
벤더 종속성과 관련된 문제에서 자유로움

차세대 데이터베이스로 CSP가 아니라 스타트업의 제품을 선택해야 하는 이유


오픈소스로 제공하여 커뮤니티에 의한 서포트 제공: 안전장치로서 기능
Postgresql/MySQL은 이미 CSP에 의해 상당한 투자를 받았지만 CockroachDB와 비슷한 수준의 개발 역량이 투입됨

클라우드 네이티브 기술과 새로운 DB와의 연관성


Stateless
Kubernetes에서 마이크로서비스를 기동: Stateless 어플리케이션에 적합
Statefull
CockroachDB는 Kubernetes 위에서 완벽하게 기동 가능
Kubernetes 스케쥴링이 제공하는 이점 취할 수 있음
Kubernetes에 의한 탄력적 확장을 통해 페일오버를 할 수 있음:MySQL과 Postgres에서 불가능

Cockroach/SQLplus를 사용하기 위한 표준 아키텍쳐


Cockroach의 시작: Kubernetes가 태동하던 시기와 비슷
스타트업부터 대기업까지 쿠버네티스를 활용
자바스크립트/자바/Go/파이썬

차세대 데이터베이스를 오픈소스로 공개하는 이유


스타트업에 의해 시작된 클로스드 소스 DB
오픈소스로 공개하지 않은 DB는 좋은 아키텍쳐와 기능을 갖추더라도 인수되어 문 닫을 수 있음
오픈소스로 공개하여 회사의 상황과 관련 없이 계속해서 제품이 관리될 것을 보장
마케팅적 동기: 오픈소스로 공개하여 높은 접근성 제공

오픈소스 제품에 대한 Free vs. Paid


Paid 버전을 사용하는 이유는 엔터프라이즈 환경에 필요한 기능들을 추가하였기 때문
백업과 복구 등 운영 환경에서 필요한 기능 제공
제품에 대한 지원 제공

SQL/DB 기술의 변화를 통한 어플리케이션의 미래


전 세계에 분산되어 기동되는 어플리케이션을 위해 분산형 DB가 더욱 각광받을 것
이를 위해 SQL에 대한 개념과 개발자를 위한 편의성에 개선이 있을 것
VM을 생성하는 것은 쉽지만 App을 실행하는 것은 어렵고, geo-distributed된 App을 실행하는 것은 더 어려움 - 글로벌 어플리케이션 티어에 변화가 중요
멀티 리전 클러스터를 갖춘 쿠버네티스를 기동하는것은 쉽지 않음: 분산된 쿠버네티스 클러스터에 배포하는 것이 점차 용이해질 것
Time to create page: 0.050 seconds
Powered by Kunena Forum