클라우드

글로벌 칼럼 | 우리 회사 클라우드 DB 성능이 엉망인 이유

David Linthicum | InfoWorld 2023.12.11
"클라우드 애플리케이션 너무 느려요!" 너무나 흔한 불만이다. 하지만 십중팔구 그 원인은 애플리케이션 처리 과정에 문제가 있거나 애플리케이션이 필요한 성능을 데이터베이스가 지원하지 못하기 때문이 아니다. 2024년을 코앞에 둔 지금까지 우리는 왜 클라우드 데이터베이서 성능 문제와 씨름해야 하는 걸까? 가장 일반적인 이유와 해결 방법을 알아보자.
 
ⓒ Getty Image Bank
 

클라우드 서비스를 제대로 선택했나

클라우드 서비스 업체는 아마존 RDS, 애저 SQL 데이터베이스, 구글 클라우드 SQL 등 다양한 데이터베이스 서비스를 판매하고 있다. 보통 기업은 자사 애플리케이션이 필요로 하는 요건과 확장성, 성능 기대치 같은 것을 기준으로 데이터베이스를 선택하는데, 많은 경우 잘못된 이유를 근거로 데이터베이스를 선택하는 게 문제다. 예를 들어 언젠가 스토리지와 바이너리 관리가 필요할 것이라고 생각해 오브젝트 데이터베이스를 도입하는 기업이 많다. 하지만 이 경우라면 관리형 서비스와 지리적 위치, 호환성 등을 고려했을 때 오히려 관계형 데이터베이스가 더 올바른 선택이다.

데이터베이스 형태와 업체를 선택할 때 성능도 고려해야 한다. 클라우드를 사용하면 기본적으로 무한히 확장할 수 있고 성능도 우수하다고 할 수 있으므로, 이때 중요한 선택 기준은 2가지다. 첫째, 저장하려는 데이터의 형태, 둘째, 컬럼형 계층 구조, 관계형, 오브젝트 등 데이터를 사용하는 방식이다. 이 2가지에 따라 데이터베이스 형태를 결정해 도입해야 한다. 가장 널리 사용하는 데이터베이스라고 해도 우리 기업의 환경에 적합하지 않을 수 있다는 사실을 염두에 둬야 한다.
 

데이터베이스 설계와 색인이 제대로 됐나

매우 중요한 문제다. 효율적인 데이터베이스 설계와 적절한 색인은 성능에 결정적인 영향을 준다. 데이터베이스 성능이 떨어지는 문제를 추적해 보면 대부분 데이터베이스 설계 문제, 특히 매우 복잡한 데이터베이스 구조와 잘못 적용된 색인으로 귀결되곤 한다. 일단 데이터 복구 속도를 높이라면 색인을 적절하게 만드는 것이 중요하다. 정기적으로 쿼리를 검토해 최적화해야 성능 병목을 없앨 수 있고, 데이터베이스 스키마를 최적화해야 한다.

필요하다면 데이터베이스를 정규화하는 것도 하는 것이 좋지만 지나친 정규화는 오히려 독이 될 수 있음을 유의하자. 참고로 정규화란, 데이터베이스에서 데이터를 상호 연관된 별도의 테이블 또는 네이티브 데이터베이스 컨테이너로 구성하는 것을 의미한다. 이렇게 중복된 데이터를 없애고 거대한 테이블을 더 관리하기 편한 작은 테이블로 쪼개 낭비되는 리소스와 의존성을 줄일 수 있다. 데이터 정규화를 통해 성능을 높일 수 있음에도 이를 간과해 성능 문제를 겪고 있는 기업이 의외로 많다.
 

리소스를 적절하게 확장/축소하고 있나

많은 클라우드 서비스 업체가 다양한 워크로드에 적용할 수 있는 유연한 확장성을 제공하지만 여전히 더 효율화할 수 있는 부분이 많다. 기본적으로 기업은 오토 스케일링 기능이 어떻게 적용돼 있는지 확인해 리소스에 대한 수요에 따라 동적으로 리소스를 확장/축소할 수 있도록 해야 한다. 인스턴스를 추가하는 수평적 확장과 인스턴스 크기를 키우는 수직적 확장 모두 높은 성능을 필요로 하는 애플리케이션에서 전략적으로 활용할 필요가 있다.

반면 클라우드 서비스 업체가 기업을 대신해 자동으로 리소스를 할당할 수 있도록 할지에 대해서는 신중할 필요가 있다. 이들 기업은 많은 인스턴스에서 과도하게 리소스를 할당하는 경향이 있고 결과적으로 월말에 사용료 폭탄을 맞을 수 있다. 오토 스케일링 버튼을 선택하는 대신 우리 기업에 맞는 적절한 균형점을 찾을 필요가 있다.
 

스토리지에 재해복구 설정이 돼 있는가

스토리지 설정을 최적화할 때는 워크로드 특성을 최우선으로 생각해야 한다. 클라우드 자격증을 취득할 때 배웠던 베스트 프랙티스를 무턱대고 적용해선 안 된다. 예를 들어 I/O 작업이 많은 워크로드에는 SSD를 사용하돼 더 많은 비용이 든다는 점을 고려해야 한다. 또한 디스크 I/O 작업을 줄이기 위해서는 올바른 스토리지 티어를 설정하고 캐시 매커니즘도 적용하는 것이 좋다. 캐시까지 자동화했다면 비용을 최소화하면서 성능을 최적화하기 위해 더 세밀한 조정이 필요할 수 있다.

마지막으로 데이터베이스 성능을 더 끌어올리려면 클라우드 아키텍트와 데이터베이스 엔지니어의 협업이 필수다. 많은 경우 성능 개선 작업은 데이터베이스 설계와 설정, 구축에 있어서 기본으로 돌아가는 것을 의미하기 때문이다. 오늘날 많은 클라우드 시스템 실무자가 이런 문제를 단지 돈으로 해결하려는 경향이 강하지만, 이는 절대 문제를 해결하는 좋은 방법이 아니다.
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.