엔지니어링


To Vegas! For re:invent 2022!!

한국신용데이터
2022-12-23
조회수 75



안녕하세요, 한국신용데이터(KCD)에서 캐시노트 백엔드 엔지니어를 담당하고 있는 윤(Youn) 입니다! 😀

이번에 좋은기회로 AWS re:invent 참여하게 되었는데요, 이를 위해 2022에 11월 26일부터 12월 2일까지 미국 네바다 주에 위치한 라스베이거스에 지냈습니다. 난생 처음 떠나는 라스베이거스라서 참 설레였습니다!


출국 전

저는 re:invent를 참여하기 전 현업에서 부딪친 문제를 어떻게 잘 풀어낼 수 있을지 고민하고 있었는데요, 특히 테라바이트(TB) 단위로 다루고 있는 데이터베이스를 어떻게 효율적으로 최신화 하여 관리 할 수 있을지 고민이 많았습니다. AWS에서는 이러한 문제를 효율적으로 유지보수 하기 위해 AWS Aurora RDS 를 하나의 대안으로 제시하고 있는것으로 알고 있어서 이를 중점적으로 파악하고자 AWS의 RDS 쪽 Senior Principal Engineer 이신 Grant McAlister의 Deep dive into Amazon Aurora and its innovations (DAT326) Breakout 세션을 청강하였습니다. 여기서 많은 내용들을 들을 수 있었는데요, 저는 특히 현재 RDBMS 로 PostgreSQL을 사용하고 있어서 이를 중점적으로 들었습니다.


Aurora Global Database Write Forwarding
Aurora RDS Data Fast Clone
Aurora RDS zero-ETL to Redshift

위 처럼 대용량 데이터를 다루기 위해서 Aurora는 좋은 선택으로 보여지지만 저처럼 DBA가 아닌 일반적인 백엔드 엔지니어가 모든것을 이해하기는 다소 어려웠습니다. 이에 대한 아쉬움이 남아 한국에 돌아와서 Aurora PostgreSQL 과 RDS PostgreSQL의 차이에 대해 한번 학습을 해보았습니다.


기존 RDS PostgreSQL vs Aurora PostgreSQL 차이

1. 성능

단순한 OLTP성 작업이고 데이터 용량이 적당한 수준이라면 RDS PostgreSQL이 Aurora PostgreSQL보다 나을수도 있습니다. (참고)

단순 OLTP성 작업 RDS PostgreSQL 과 Aurora PostgreSQL 비교

이미지 또한 Aurora RDS가 RDS PostgreSQL 보다 더 많은 CPU 및 IOPS를 사용하기 때문에 인스턴스 사이즈를 작게 유지하고 싶다면 사용하지 않는것이 좋은 선택입니다.

하지만 쓰기 IOPS가 많고 실시간으로 레플리카와 동기화가 이루어져야 하는경우 스토리지 동기화 방식을 채택하고 있기 때문에 대용량의 데이터를 처리해야 하는경우 훨씬 이점이 있습니다.

Aurora의 데이터 복제 방식

2. 데이터베이스 엔진 호환성

Get Youn’s stories in your inbox

Join Medium for free to get updates from this writer.


Subscribe

엔진 호환성은 단방향입니다. PostgreSQL RDS 에서 Aurora PostgreSQL 으로 마이그레이션은 할 수 있으나 Aurora PostgreSQL 에서 PostgreSQL RDS로 호환은 불가합니다. 이는 데이터 적재 방식이 다르기 때문인데요, 아래 이미지를 한번 보시면 이해하기 수월합니다.

Aurora PostgreSQL과 일반 PostgreSQL 쓰기 비교

여기서 가장 큰 포인트는 Aurora PostgreSQL은 체크포인트에서 스냅샷을 전체 업데이트 하는것이 아니라 계속 병렬로 업데이트 한다는 점입니다.

3.오토스케일링

또한 Aurora PostgreSQL은 오토스케일링이 훨씬 용이하게 구현되어있는데요, 이는 PostgreSQL RDS는 인스턴스 크기만큼 과금되지만 Aurora PostgreSQL는 적재된 데이터베이스 사이즈 만큼 과금되기 때문에 비용적 측면에서 유리합니다.

4.복제본 생성

PostgreSQL RDS는 복제본 생성시 메인 데이터베이스에서 레플리카를 생성하는데 이때 쓰기 작업 때문에 메인 데이터베이스의 IOPS가 증가하게 됩니다. 또한 메인 데이터베이스의 WAL 파일을 보관해야하기 때문에 용량이 증가하게 됩니다.

반면에 Aurora PostgreSQL은 최대 15개까지 reader 확장이 가능하고 복제시 세 가용구역에 로그 복제본을 여섯개까지 분할하여 저장합니다. 즉, 읽기와 쓰기를 분담하여 작업하기 때문에 replication lag 이 높고 5개 이상의 읽기 복제본이 필요하다면 Aurora PostgreSQL 이 더 나은 선택이 될 수 있습니다.

여기까지 제가 알아본 Aurora PostgreSQL 의 내용인데요, 아직까지 기본적인 내용만 훑어본거라 부족한 내용이 많을 수 있습니다. 전환 후에도 많은 경험을 통해 꾸준히 학습이 필요하고 부족한 부분을 앞으로도 계속 채워나갈 예정입니다.

이상 KCD의 Youn 이었습니다 :)


References:

Is Aurora PostgreSQL really faster and cheaper than RDS PostgreSQL - Benchmarking - MigOps

This article is to help you understand that you should benchmark before choosing Aurora PostgreSQL over PostgreSQL. We…

www.migops.com


Is Amazon RDS for PostgreSQL or Amazon Aurora PostgreSQL a better choice for me? | Amazon Web…

If you're planning to move your self-managed PostgreSQL database or refactoring your commercial databases to PostgreSQL…

aws.amazon.com


Amazon Aurora Global Database | MySQL PostgreSQL 관계형 데이터베이스 | Amazon Web Services

Amazon Aurora Global Database는 전 세계적으로 분산된 애플리케이션을 위해 설계되었으며, 단일 Amazon Aurora 데이터베이스를 여러 AWS 리전으로 확장해 줍니다. 데이터베이스 성능에…

aws.amazon.com


AWS Aurora Vs RDS: 5 Critical Factors

Database-as-a-service (DBaaS) cloud services give users an opportunity to use databases without having to configure…

hevodata.com











0 0

월간 인기글