497
12
장
회복 탄력성
하는 것은 기본 비즈니스 작업이라는 사실이다.
GET
과
PUT
같은 일부
HTTP
동사
verb
는
HTTP
명세에 멱등적이라고 정의돼 있지만, 실제로
그렇게 되려면 이러한 호출을 멱등적으로 처리하는 서비스에 의존해야 한다. 해당 동사를 멱
등성이 없게 만들고 나서 호출자가 그 동사를 반복적으로 안전하게 실행할 수 있다고 생각하면
문제가 발생할 수 있다.
HTTP
를 기본 프로토콜로 사용한다고 해서 모든 것을 공짜로 얻지는
못한다는 점을 기억하라!
12.612.6
위험 분산 위험 분산
회복 탄력성을 위해 확장하는 한 가지 방법은 모든 달걀을 한 바구니에 담지 않는 것이다. 이
방법에 대한 간단한 예로, 하나의 호스트에 여러 개의 서비스가 있어 장애가 여러 서비스에 영
향을 미칠 수 있는 경우를 들 수 있다. 하지만 호스트가 무엇을 의미하는지 생각해보자. 오늘날
대부분의 상황에서 ‘호스트’는 사실 가상의 개념이다. 모든 서비스가 서로 다른 호스트에 있지
만, 그 호스트 모두가 실제로는 동일한 물리 머신에서 실행되는 가상 호스트라면 어떻게 될까?
해당 머신이 다운되면 여러 서비스를 잃게 될 수 있다. 일부 가상화 플랫폼에서는 호스트를 여
러 개의 다른 물리 머신으로 분산해 이런 일이 발생할 가능성을 줄일 수 있다.
내부 가상화 플랫폼의 경우 가상 머신의 루트 파티션을 하나의
SAN
(스토리지 영역 네트워크)
에 매핑하는 것이 일반적 관행이다. 이
SAN
이 다운되면 연결된 모든 가상 머신이 다운될 수 있
다.
SAN