S3는 합의를 대체하지 않았다.

1 hour ago 3

S3가 새로운 합의(Consensus) 계층이 되고 있다는 이야기는 절반만 맞다. 더 중요한 변화는 S3 덕분에 별도의 합의 시스템 없이 처리할 수 있는 조율 작업이 늘어나고 있다는 것이다.

  • S3의 조건부 쓰기가 바꾼 것: If-None-Match, If-Match를 이용하면 객체의 존재 여부나 ETag를 조건으로 원자적인 쓰기를 수행할 수 있다. 이를 통해 단일 객체에 대한 compare-and-swap(CAS)과 같은 조율 패턴을 구현할 수 있게 됐다.
  • 핵심은 합의가 필요한 빈도다: writer 선출이나 manifest 교체처럼 드물게 발생하는 결정은 S3만으로 처리할 수 있다. 반면 Kafka의 메시지 순서 결정처럼 초당 수천 번 발생하는 결정은 여전히 별도의 합의 계층이 필요할 수 있다.
  • 이러한 변화의 배경에는 비용 구조도 있다: Kafka의 AZ 간 데이터 복제 비용과 S3의 저장·요청 비용 차이는 시스템 설계의 경제성을 바꾼다. S3 기반 아키텍처는 쓰기를 모아 커밋 빈도를 줄이는 방향으로 설계된다.
  • 결론: S3가 기존 합의 계층을 완전히 대체한 것은 아니다. 대신 합의가 필요한 작업과 빈도를 줄여 별도 조율 시스템의 운영 부담을 낮출 수 있는 설계 공간을 열었다.

분산 시스템을 설계할 때의 질문도 달라진다. 어떤 합의 시스템을 운영할 것인가? 에서 우리 시스템은 얼마나 자주 합의가 필요한가? 로.

Read Entire Article