
284
2
부
구현
서
AWS
, 애저, 구글 클라우드 모두 단일 머신에 대한
SLA
를 제공하지 않으며 단일 가용 영역
availability
zone
(이러한 공급자의 데이터 센터와 거의 같은 개념이다 )에 대한
SLA
도 제공하지 않
는다. 실제로 이 말은 배포하는 모든 솔루션이 여러 가용 영역에 분산돼야 한다는 것을 의미한다.
8.1.28.1.2
데이터베이스 데이터베이스
더 나아가 지금까지 간과했던 또 다른 주요 구성 요소가 있다. 바로 데이터베이스다. 이미 논
의한 것처럼, 마이크로서비스의 내부 상태 관리는 감춰져야 하므로 상태 관리를 위해 사용되는
데이터베이스도 모두 마이크로서비스 내부에 숨겨져 있는 것으로 간주된다. 이는 ‘데이터베이
스를 공유하지 말라’라는 자주 되뇌는 주문이 됐고, 이에 대한 주장이 이미 충분히 이뤄졌길 바
란다.
하지만 마이크로서비스에 여러 인스턴스가 있다는 사실을 고려할 때 데이터베이스는 어떻게
작동할까? 마이크로서비스
인스턴스마다인스턴스마다
자신만의 데이터베이스가 있어야 할까? 한마디로 말
해 그렇지 않다. 대부분의 경우 어떤 주문 서비스의 인스턴스로 가더라도 동일한 주문 정보를
얻을 수 있길 기대한다. 따라서 [그림
8
-
4
]와 같이 논리적으로 동일한 서비스의 서로 다른 인
스턴스 간에는 어느 정도의 공유 상태가 필요하다.
주문
인스턴스 ...