💻
Albert's Til
GitHub
  • 매일매일 조금씩 성장하기
    • README
    • CS
      • Network
      • HTTP
        • NO-CACHE
      • 오류 코드
      • ORM 도구
      • Design Pattern
        • CQRS Pattern
          • Event Sourcing and CQRS pattern
        • Builder Pattern
    • DB
      • MySQL
        • Timeline
        • Pagination
        • Index
        • Database Performance Optimization Strategies
        • B+ tree
        • MySQL Connectors VS MySQL Shell(Scripting) VS MySQL Workbench
        • MySQL Storage Engine Architecture
      • Normalization & Denormalization
      • JPA
        • @Transactional
        • Why JPA?
        • About JPA
        • N+1 Issue
        • Index
        • ElementCollection&CollectionTable
        • orphanRemoval
        • CascadeType
        • Use Subselect
        • Dynamic Instance Creation
        • Paging
        • Order
        • Spefication
        • mappedBy
      • MongoDB
        • ObjectId
      • Why MySQL?
      • ACID properties of transactions
      • Between JPA and JDBC
      • Identifiers in Hibernate/JPA
    • Java
      • Jackson de/serialize
      • Collections.singletonList() vs List.of()
      • Manage dependencies in Gradle
      • Logging Level
      • Bean Validation
      • JVM Internals
        • Threads
          • Frame
        • Shared Between Threads
          • Classloader
            • Class Loader Hierarchy
            • Loading Linking Initialization
      • Java Collection Framework
      • Annotation
      • Generic
      • 디미터 법칙
    • Spring
      • Caching
      • Spring Integration Overview
        • ThreadPollTaskExecutor
        • Messaging Bridge
        • Channel Adapter
        • Poller
        • Configuration and @EnableIntegration
        • Message Endpoints
        • Message Channels
      • HATEOAS
      • @Autowired vs Constructor Dependency Injection
      • Spring Security
        • JWT 토큰 사용한 인가
        • OAuth 2 Login
        • OAuth 2 인증
        • 인가
        • 인증
        • PasswordEncoder
      • IoC Container
      • Filter,Interceptor,AOP,Argument Resolver
      • Spring Annotation
      • About Spring
    • Kafka
      • Error Channel
    • Infra
      • Scale Up || Scale Out
      • Docker
        • Dockerfile
        • Docker Hub Deploy
        • Command
      • Cloud 유형
        • Infrastructure as a Service
        • Platform as a Service
        • Software as a Service
      • 무중단 배포
        • 엔진엑스(Nginx)
      • 코드 자동 배포
        • Technical
      • AWS EC2
        • PEM(Privacy Enhanced Mail) 키
      • AWS RDS
      • AWS S3
    • CodeSquad
      • Spring Boot Project 1주차 회고
      • Spring Boot Project 2주차 회고
      • Spirng Boot Project 3주차 회고
      • Spring Boot Project 4주차 회고
    • Foody Moody 프로젝트
      • Query Performance Comparison
      • HeartCount Asynchronous Issue
      • DeferredResult
      • ResponseBodyEmitter
      • SseEmitter (Spring)
      • Server-Sent Events (SSE)
      • 기술 스택 적용 이유
      • NO-CACHE(HTTP)
      • Transactional
    • DDD
      • AggregateId
    • Test
      • RestAssured
    • Coding and Algorithmic Problems
      • 819. Most Common Word
      • 344. Reverse String
      • 125. Valid Palindrome
      • 937. Reorder Data in Log Files
    • Node
      • Async... Await...
      • Custom Transactional Decorator Challenger
    • Python
      • Python Basic Grammar
        • Comments and Input/Output
        • Variable
        • Data type
        • Operations and syntax
        • List,Tuple,Dictionary,Set
        • Function
        • Conditional statement
        • Loop
    • HTML
      • HTML Basic
      • HTML Basic Tags
      • HTML Form Tags
      • HTML Table Tags
    • CSS
      • CSS Basic
      • CSS Practice
Powered by GitBook
On this page
  • 스케일 업(scale up) or 스케일 아웃(scale out)
  • 데이터베이스는 왜 스케일 아웃을 하지 않는가?
  • 데이터 동기화 복잡성
  • 높은 비용
  • 디스크 기반의 데이터 접근
  • 트랜잭션 관리의 어려움
  • 복잡한 쿼리 처리
  • Cloud 환경에서 데이터베이스의 스케일 아웃 고려
  • 장점
  • 고려사항
  • 나의 선택

Was this helpful?

  1. 매일매일 조금씩 성장하기
  2. Infra

Scale Up || Scale Out

스케일 업(scale up) or 스케일 아웃(scale out)

Last updated 1 year ago

Was this helpful?

스케일 업(scale up) or 스케일 아웃(scale out)

스케일 업
스케일 아웃

유지보수 및 관리

쉬움

여러 노드에 적절히 부하분산 필요

확장성

제약이 있음

스케일업에 비해 자유로움

장애복구

서버가 1대,다운타임이 있음

장애 탄력성이 있음

데이터베이스는 왜 스케일 아웃을 하지 않는가?

데이터 동기화 복잡성

  • 데이터베이스를 수평적으로 확장하면, 여러 서버간에 데이터 일관성과 동기화를 유지해야 한다.

  • 즉 데이터베이스의 기본적인 읽기, 쓰기, 업데이트 등이 각 노드에서 동시에 일어나면서 발생하는 데이터의 충돌이나 지연 등을 관리해야 한다

  • 동기화 과정은 매우 복잡하며, 실시간으로 일관성을 유지하는 것은 기술적으로 어려운 일이다.

높은 비용

  • 스케일 아웃은 추가적인 서버, 스토리지, 네트워크 인프라 등을 필요로 하여 확장하는 데 상당한 비용이 발생한다.

  • 이러한 장비의 구매 및 유지보수에 상당한 비용이 들 수 있으며, 시스템 관리자, 데이터베이스 관리자(DBA) 등의 추가 인력 채용 및 교육 비용을 포함할 수 있다.

  • 복잡한 시스템 설계 및 구현, 성능 최적화 및 튜닝, 유지보수 및 업그레이드에 이르기까지 다양한 요소의 비용이 발생한다.

디스크 기반의 데이터 접근

  • 대부분의 전통적인 데이터베이스는 디스크 기반으로 데이터를 저장하고 접근한다.

  • 디스크 I/O 작업은 네트워크를 통한 데이터 전송보다 느릴 수 있으며, 여러 노드에 데이터를 분산시키는 것이 성능 향상에 크게 기여하지 않을 수 있다.

트랜잭션 관리의 어려움

  • 데이터베이스는 트랜잭션의 원자성, 일관성, 격리성, 지속성(ACID 속성)을 보장해야 한다.

  • 여러 노드에 걸쳐 있는 데이터베이스에서 이러한 속성을 유지하는 것은 기술적으로 도전적이다.

복잡한 쿼리 처리

  • 분산 데이터베이스 환경에서는 복잡한 쿼리의 처리가 어려울 수 있다.

  • 데이터가 여러 노드에 분산되어 있을 경우, 효율적인 쿼리 최적화와 실행은 더욱 복잡해진다.

Cloud 환경에서 데이터베이스의 스케일 아웃 고려

장점

유연한 확장성

  • 클라우드 서비스는 일반적으로 높은 수준의 확장성을 제공한다

  • 필요에 따라 리소스를 쉽게 추가하거나 줄일 수 있어, 트래픽이 변동하는 애플리케이션에 이상적이다.

비용 효율성

  • 클라우드는 사용한 만큼만 지불하는 모델을 제공한다

  • 이는 초기 투자 비용을 크게 줄여주며, 특히 작은 규모의 프로젝트나 시험적인 프로젝트에 유리하다.

관리의 편의성

  • 클라우드 제공업체가 하드웨어 관리, 기본적인 유지보수, 업데이트 등을 처리한다. 이로 인해 기업은 자체 인프라를 관리하는데 드는 시간과 노력을 줄일 수 있다.

자동화된 백업과 복구

  • 많은 클라우드 서비스는 데이터 백업과 복구를 자동으로 관리하여 데이터 손실에 대한 리스크를 감소시킨다.

고려사항

데이터 동기화

  • 클라우드에서도 여러 인스턴스 간의 데이터 동기화는 여전히 중요한 문제다.

  • 일관성, 복제 지연, 동시성 관리 등의 문제가 여전히 존재한다.

네트워크 지연 시간

  • 클라우드 데이터베이스는 네트워크를 통해 접근되므로, 네트워크 지연 시간이 성능에 영향을 줄 수 있다.

  • 같은 클라우드의 서버를 사용하면 이 부분을 해결 할 수 있을 것 같다.

보안 고려사항

  • 클라우드 환경에서의 데이터 보안은 중요한 고려사항이다.

  • 데이터 암호화, 접근 관리, 보안 정책 등에 특별한 주의가 필요한다.

비용 관리

  • 비록 클라우드가 비용 효율적일수 있지만, 사용량이 급증할 경우 예상치 못한 높은 비용이 발생할 수 있다.

  • 비용 관리와 모니터링이 중요하다.

서비스 제공업체의 선택

  • 다양한 클라우드 서비스 제공업체들은 각기 다른 기능, 성능, 비용 구조를 가지고 있다.

  • 자신의 요구사항에 가장 적합한 서비스를 선택하는 것이 주용하다.

나의 선택

  • 처음에는 Cloud 운영을 선택한다.

  • 최소한 두대의 서버를 운영하여 다운타임 문제를 해결한다

  • 그 이후에 스케일 업 스케일 아웃을 진행할 때 발생하는 비용을 비교하여 최선의 선택을 한다.

  • 데이터베이스는 백업 시스템을 갖추고 한 대만 운영하고 시작 한다.

Scale Up || Scale Out