스케일 업과 스케일 아웃 비교
클라우드 컴퓨팅의 데이터베이스 스케일링 성능 소개
스케일링 성능에 관해 이야기할 때 말하는 것, 모든 곳에 있는 데이터
클라우드 컴퓨팅 의 스케일링 성능은 IT 솔루션이나 리소스의 크기 또는 성능을 빠르고 쉽게 늘리거나 줄이는 기능입니다. 스케일링 성능이라는 용어는 증가하는 작업량을 처리하는 모든 시스템의 기능을 의미할 수 있지만, 스케일 업할 것인지 또는 스케일 아웃할 것인지에 관해 이야기할 때는 흔히 데이터베이스와 데이터를 의미합니다.
데이터베이스 스케일링 성능은 최신 앱 개발자가 가장 먼저 떠올리는 분야입니다. 새 앱이 급격히 인기를 얻어 몇 안 되던 사용자 수가 전 세계 수백만 명의 사용자로 늘어나 이 앱의 수요가 늘어나는 경우를 가정해 보겠습니다. 앱 개발자가 수요를 유지하고 가동 중지 시간을 최소화하는 데 도움이 되는 가장 중요한 기능 중 하나는 효율적으로 스케일링하는 기능입니다.
스케일 아웃과 스케일 업에 관한 이 대화는 모두 클라우드, 모바일, 소셜 미디어, 빅 데이터에서 생성되는 많은 양의 데이터, 변화하는 데이터 볼륨, 바뀌는 워크로드 패턴에 적응하고 이를 처리하는 데 스케일링 성능이 도움을 주는 방식에 집중합니다.
스케일 아웃과 스케일 업 비교
가장 기본적인 수준에서 데이터베이스 스케일링 성능은 다음과 같은 두 가지 유형으로 나눌 수 있습니다.
수직 스케일링(또는 스케일 업/다운): 성능 수준을 변경하거나 탄력적 데이터베이스 풀을 사용하여 워크로드 수요를 자동으로 조정하는 방식으로, 필요에 따라 컴퓨팅 성능이나 데이터베이스를 늘리거나 줄입니다.
수평 스케일링(또는 스케일 아웃/인): 데이터베이스를 더 추가하거나 서버 간에 더 빠르고 쉽게 관리할 수 있는 분할이라는 데이터 분할 방식을 사용하여 큰 데이터베이스를 작은 노드로 나눕니다.
수직으로 스케일 업
수직 스케일링은 쿼리 변경 또는 인덱싱과 같은 기존 데이터베이스 최적화 기술을 사용하여 해결할 수 없는 성능 문제를 해결하기 위해 빠르게 대응해야 하는 경우에 사용됩니다. 스케일 업은 현재 성능 수준이 모든 수요를 충족할 수 없는 워크로드의 급증을 처리하는 데 유용합니다. 스케일 업을 통해 더 많은 리소스를 추가하여 최대 워크로드를 쉽게 처리할 수 있습니다. 그런 다음, 리소스가 더 이상 필요하지 않으면 스케일 다운하여 원래 상태로 돌아가서 클라우드 비용을 절감할 수 있습니다.
스케일 업하는 경우:
-
워크로드가 CPU 또는 I/O 제한과 같은 몇 가지 성능 제한에 도달합니다.
-
기존 데이터베이스 최적화로 해결할 수 없는 성능 문제를 해결하기 위해 빠르게 대응해야 합니다.
-
변화하는 대기 시간 요구 사항에 맞게 적응하기 위해 서비스 계층을 변경할 수 있는 솔루션이 필요합니다.
수평으로 스케일 아웃
앱 개발자는 최고 성능 수준에서 작동하는 경우에도 워크로드에 충분한 리소스를 이용할 수 없으면 스케일 아웃 또는 수평 스케일링을 고려하기 시작합니다. 수평 스케일링을 사용하면 데이터가 서버 간에 여러 데이터베이스(또는 분할된 데이터베이스)로 나뉘고 분할된 각 데이터베이스를 독립적으로 스케일 업 또는 스케일 다운할 수 있습니다.
데이터 분할은 어떻게 스케일링 성능을 개선하나요? VM(가상 머신)과 같은 리소스를 추가하여 단일 데이터베이스를 스케일 업하면 결국 실제 하드웨어 제한에 도달하게 됩니다. 데이터 파티션은 각각 별도의 서버에서 호스트되므로 여러 분할된 데이터베이스 간에 데이터를 나누면 시스템을 거의 무제한으로 스케일 아웃할 수 있습니다.
일부 데이터베이스 기술 유형(특히, 비관계형 또는 NoSQL 데이터베이스)은 대규모의 관련 없는, 확정되지 않거나 빠르게 변화하는 데이터를 처리할 수 있는 분할이라는 방식으로 데이터를 수평으로 스케일 아웃하는 고유한 기능으로 개발되었습니다.
또한 원래 스케일 업하거나 스케일 다운하는 서비스를 제공한 일부 관계형(SQL) 데이터베이스 서비스는 비관계형 데이터베이스의 스케일링 성능 이점에 필적하는 흥미로운 옵션을 제공하기 시작했습니다. Microsoft Azure SQL Database 하이퍼스케일 및 Azure Database for PostgreSQL 하이퍼스케일 과 같은 하이퍼스케일 서비스를 사용하면 스토리지를 최대 100TB까지 빠르게 스케일링하고, 필요에 따라 스토리지를 늘릴 수 있는 유연한 클라우드 네이티브 아키텍처를 이용할 수 있으며, 거의 즉시 백업이 가능하고 몇 분 만에 빠른 데이터베이스 복원을 수행할 수 있습니다.
스케일 아웃하는 경우:
-
모든 앱이 해당 지역에 있는 일부 데이터에 액세스해야 하는 지리적으로 분산된 애플리케이션이 있습니다. 각 앱은 분할된 다른 데이터베이스에 영향을 주지 않고 해당 지역에 연결되어 있는 분할된 데이터베이스에만 액세스합니다.
-
데이터를 분할된 전용 데이터베이스에 삽입하는 지리적으로 분산된 다수의 클라이언트가 있는 글로벌 분할 시나리오(예: 부하 분산)가 있습니다.
-
서비스의 최고 성능 계층에서도 또는 데이터를 단일 데이터베이스에 맞출 수 없는 경우 성능 요구 사항의 최댓값에 도달했습니다.
자동 스케일링
자동 스케일링은 시스템의 성능 요구 사항을 충족하기 위해 리소스를 자동으로 동적으로 일치시키는 프로세스입니다. 작업량이 증가함에 따라 필요한 성능 수준을 유지하거나 증가하는 수요를 충족하기 위해 앱에 추가 리소스가 필요할 수 있습니다. 수요가 줄어들고 추가 리소스가 더 이상 필요하지 않은 경우 사용되지 않은 리소스의 할당을 취소하기 위한 자동 서비스를 마련하여 클라우드 지출을 줄일 수 있습니다.
자동 스케일링은 클라우드 호스팅 환경의 탄력성을 활용하며, 시스템 운영자가 리소스 추가 또는 제거나 시스템 성능 확인에 관해 지속적으로 의사 결정을 내려야 하는 필요성을 줄여 관리 오버헤드를 줄여 줍니다.
앱을 스케일링하는 두 가지 주요 방법(수직으로 또는 수평으로)이 있지만, 대개 스케일 업할 경우 시스템을 재배포하는 동안 시스템을 일시적으로 사용할 수 없게 해야 하므로 수직 스케일링을 자동화하는 것은 덜 일반적입니다.
스케일 아웃 또는 스케일 인은 단순히 리소스의 인스턴스를 추가하거나 제거하는 것을 의미하고 앱은 새 리소스가 프로비저닝될 때 중단 없이 계속 실행되므로 자동 스케일링은 수평으로 스케일링할 때 더 일반적입니다. 수요가 줄어들면 리소스를 가동 중지 시간 없이 원활하게 종료하고 할당을 취소할 수 있습니다.
Microsoft Azure와 같은 많은 클라우드 기반 시스템 공급자는 자동 수평 스케일링을 지원합니다.
자주 묻는 질문
-
데이터베이스는 더 쉽게 관리하고 액세스할 수 있도록 저장 및 구성된 상호 관련된 정보의 컬렉션입니다. 새 데이터 및 데이터 형식이 매우 빠른 속도로 생성되므로 데이터를 구성하고 액세스할 수 있도록 하고 보호하기가 쉽지 않습니다. 관리 도구 계층을 포함하는 DBMS(데이터베이스 관리 시스템)는 대량의 데이터를 처리하는 데 주로 사용됩니다.
클라우드, 모바일, 소셜 미디어, 빅 데이터에서 생성되는 많은 양의 데이터에 적응하기 위해 새로운 데이터베이스 유형과 기술이 지속적으로 생겨납니다.
-
NoSQL 데이터베이스(흔히 비관계형 또는 "not only" SQL이라고 함)는 기존의 관계형(SQL) 데이터베이스와는 다른 방식으로 데이터 저장 및 검색을 처리하는 다양한 데이터베이스 기술 세트입니다.
NoSQL 데이터베이스는 미리 정의된 스키마가 필요하지 않으며 여러 데이터 모델을 사용할 수 있어 대량의 비정형 데이터를 처리하고 빅 데이터 데이터베이스 프로젝트를 스케일링하는 데 매우 효과적입니다.
-
PostgreSQL은 관계형 및 비관계형 쿼리에서 작동하는 강력한 오픈 소스 데이터베이스로서 신뢰성과 데이터 무결성으로 유명합니다. PostgreSQL은 금융 서비스, 제조, 정부 지역 정보 시스템, 웹 기술 등의 분야에서 널리 사용됩니다. 개발자는 PostgreSQL을 사용하여 앱을 만들고, 관리자는 PostgreSQL을 믿고 사용하여 데이터를 보호합니다.
-
캐싱은 시스템의 성능과 스케일링 성능을 개선하기 위해 개발자와 IT 전문가가 사용하는 일반적인 기술입니다. 캐싱은 자주 액세스하는 데이터를 앱에 가까이 있는 빠른 스토리지에 일시적으로 복사하는 방식으로 작동합니다. 이 빠른 데이터 스토리지가 원래 원본보다 앱에 가까이 위치하는 경우 캐싱은 데이터를 더 빠르게 제공하여 클라이언트 앱에 대한 응답 시간을 크게 개선할 수 있습니다. 개발자는 일반적으로 처리된 데이터를 캐시하기 위한 앱을 디자인한 다음, 표준 데이터베이스 쿼리에서보다 빠르게 요청을 처리하도록 캐시의 용도를 변경합니다.
-
데이터 분할은 큰 데이터베이스를 서버 간에 더 쉽고 빠르게 관리할 수 있는 작은 데이터베이스로 나눌 수 있게 해주는 수평 데이터 분할의 한 가지 유형입니다.
-
흔히 약어로 PaaS라고 하는 Platform as a Service는 앱 개발, 테스트, 제공, 관리를 위한 주문형 환경을 제공하는 클라우드 공급자의 서비스입니다. Platform as a Service를 사용하면 개발자가 개발자로서 필요한 서버, 스토리지, 네트워크, 데이터베이스의 기본 인프라를 설정하거나 관리할 필요 없이 웹 또는 모바일 앱을 더 간단하고 빠르게 만들 수 있습니다.
Azure를 사용하여 클라우드 스케일링 성능 살펴보기
스케일 업과 스케일 아웃 중 온-프레미스, 다중 클라우드, 에지 환경에서 고유한 시나리오에 맞는 종류에 대한 포괄적인 접근 방식을 살펴보세요. Azure 데이터베이스 서비스 제품군을 사용하면 재산적 가치를 가지는 엔진과 오픈 소스 엔진을 망라한 완전 관리형의 관계형 데이터베이스, NoSQL 데이터베이스, 메모리 내 데이터베이스 중에서 최신 앱 개발자의 요구 사항에 맞게 선택할 수 있습니다.
스케일링 성능, 가용성, 보안을 위한 자동화 솔루션을 비롯하여 자동화된 인프라 관리로 시간과 비용을 절약하세요.
관련 제품 및 서비스
Azure SQL
앱 마이그레이션, 현대화, 개발을 위한 유연한 옵션을 제공하는 SQL 클라우드 데이터베이스 제품군
Azure Cosmos DB
모든 규모를 위한 개방형 API가 포함된 빠른 NoSQL 데이터베이스
Azure PostgreSQL
완전 관리형의 확장성 있는 인텔리전트 PostgreSQL입니다.
Azure SQL Database
클라우드의 관리형 인텔리전트 SQL
Azure SQL Managed Instance
클라우드에서 항상 최신 상태로 유지되는 관리형 SQL 인스턴스
Virtual Machines의 SQL Server
최저 TCO로 SQL Server 워크로드를 클라우드로 마이그레이션
Azure Database for MySQL
스케일링 가능한 완전 관리형 MySQL 데이터베이스입니다.
Azure Maria DB
앱 개발자를 위한 관리 MariaDB 데이터베이스 서비스
Azure Cache for Redis
높은 처리량과 짧은 데이터 캐싱 대기 시간으로 애플리케이션 가속화