다섯 살도 알 수 있게 · SRE
복제가 뭐예요?
복제를 같은 손님 명부를 창고 여러 곳에 똑같이 적어 두는 이야기로 풀어봤어요.
창고에 불이 나서 명부를 통째로 잃었어요.딱 한 곳에만 있던 명부라 되살릴 수가 없어요.
한 곳에만 두면 그곳이 잘못되면 끝이에요.한 군데가 전부를 쥐고 있으면 위험해요.
같은 명부를 창고 두세 곳에 똑같이 적어 둬요.하나가 타도 나머지가 있어요.
원본 창고 하나쓰기는 여기서만 해요
나머지는 베끼기만읽기 담당이에요
베끼는 데 시간이 조금복제 지연이라 불러요
원본이 망가지면복제본 하나가 원본이 돼요
원본이 쓰기를 맡고, 나머지는 베끼기만 해요.도착까지 아주 잠깐 걸리고, 원본이 고장나면 복제본 하나가 원본이 돼요.
베끼는 중엔 살짝 옛날 답을 받을 수 있어요.그리고 창고 둘이 서로 원본이라고 우기면 큰 문제예요.
한 줄로
복제 = 같은 명부를 창고 여러 곳에 똑같이 적어 두는 일. 원본이 쓰기를 맡고 나머지는 베끼기만 해서, 하나가 망가져도 서비스는 계속돼요.
데이터를 여러 서버에 복사해 두는 방식이에요. 원본(leader)과 복제본(follower)으로 나뉘고, 동기 복제는 즉시, 비동기 복제는 살짝 늦게 맞춰져요(→일관성). 원본 장애 시 복제본 중 하나가 원본이 되는 걸 장애 조치라 해요.
어른들은 이렇게 불러요
- 복제
Replication - 명부를 여러 창고에 똑같이 두는 일. 하나가 망가져도 서비스가 멈추지 않아요.
- 원본/복제본
Leader/follower - 쓰기 담당 창고와 베끼기만 하는 창고. 원본이 하나, 복제본은 여럿일 수 있어요.
- 복제 지연
Replication lag - 베끼는 데 걸리는 짧은 시간. 그 사이엔 복제본이 살짝 옛날 답을 줘요.
- 읽기 복제본
Read replica - 읽기만 맡는 복제본. 원본의 쓰기 부담을 덜어줘요.
- 동기/비동기 복제
Sync / async replication - 즉시 맞추는지, 조금 늦게 맞추는지. 즉시는 더 안전하지만 더 느려요.
- 다중 리전
Multi-region - 복제본을 아예 다른 도시에 두는 일. 한 도시가 통째로 문제여도 버텨요.
- 일관성
Eventual consistency - 베끼는 중 살짝 다른 답이 나오는 것. 시간이 지나면 다 같은 답이 돼요.
- 장애 조치
Failover - 원본이 망가지면 복제본이 원본이 되는 일. 누가 새 원본이 될지는 투표로 정해요. → 여러 관제실이 손 들어 정하기
다음 이야기
여러 관제실이 손 들어 정하기 →