515
13
장
확장
수 있으며, 그에 따라 프로그래밍 이디엄
programming
idiom
을 완전히 바꿔야 할 수도 있다.
또한 더 큰 시스템을 도입한다고 해서 무조건 견고성이 개선되는 것은 아니다. 더 크고 새로운
서버는 안정성을 개선할 수 있지만, 궁극적으로 해당 머신이 다운되면 그 머신의 모든 것이 다
운된다. 앞으로 살펴볼 다른 형태의 확장과 달리 수직 확장은 시스템의 견고성을 개선하는 데
큰 영향을 미치지 않을 것이다.
마지막으로, 머신이 커질수록 비용은 더 많이 들지만, 사용 가능한 자원이 이와 비례해서 항상
증가하는 것은 아니다. 때로는 소수의 대형 머신보다 다수의 소형 머신을 보유하는 것이 훨씬
더 비용 효과가 좋다.
13.1.213.1.2
수평 복제수평 복제
수평 복제를 사용하면 시스템의 일부를 복제해 더 많은 워크로드를 처리할 수 있다. 정확한 메
커니즘은 다양하지만 (곧 구현 방법을 살펴본다 ), 수평 복제를 사용하려면 이러한 복제본들에
게 작업을 분산하는 방법이 필요하다.
수직 확장과 마찬가지로 이 유형의 확장은 전체 유형에서 단순한 편에 속하며 종종 초기에 시
도하는 것 중 하나다. 모놀리식 시스템으로 부하를 감당할 수 없다면, 여러 개의 복제본을 가동
시켜 도움이 되는지 확인해보라!
구현
아마도 머리에 떠오르는 가장 분명한 수평 복제의 형태는 로드 밸런서를 사용해 여러 기능 복
제본으로 요청을 분산시키는 것이다. 예를 들어 [그림
13
-
1
]에서 뮤직코프 카탈로그 마이크로
서비스의 여러 인스턴스에 걸쳐 부하를 분산하는 ...