📚글을 쓴 이유
최근에 배운 CDN과 master-slave 전략에 유사한 점이 있어보여 어떤 차이가 있을지 궁금하여 찾아보고 정리하게 되었습니다.
⭕️ 유사점
1. 데이터 분산
- Master-Slave 전략: 데이터를 주로 마스터(master)가 관리하고, 이를 복제하여 슬레이브(slave)에 분산시킵니다.
- CDN: 원본 서버(오리진 서버)로부터 데이터를 복제하여 전 세계의 여러 엣지 서버(edge server)에 분산합니다.
- 공통점: 데이터를 여러 위치에 복제해 사용자에게 더 빠르게 제공하려는 목적이 있음.
2. 읽기 최적화
- Slave 서버는 보통 읽기 작업(read)을 처리하여 마스터 서버의 부하를 줄입니다.
- CDN 서버는 캐싱된 콘텐츠를 제공하여 원본 서버의 부하를 줄입니다.
- 공통점: 읽기 요청을 분산시켜 원본 서버의 성능을 향상.
3. 속도와 접근성 향상
- 두 전략 모두 사용자와 서버 간의 거리 단축 및 요청 처리 시간 단축을 목표로 함.
❌ 차이점
1. 데이터 관리
- Master-Slave
- 데이터는 마스터에서 슬레이브로 복제됩니다.
- 슬레이브는 보통 실시간 업데이트를 받으며, 마스터와의 동기화가 중요합니다.
- CDN
- CDN은 정적 콘텐츠(예: 이미지, CSS, JS 등)를 캐싱하여 제공.
- 모든 엣지 서버가 동기화되지는 않으며, 오리진 서버의 변경이 바로 적용되지 않을 수도 있음.
2. 목적
- Master-Slave
- 데이터베이스 관리에서 주로 사용되며, 데이터 무결성과 일관성 유지가 핵심입니다.
- CDN
- 주로 웹 콘텐츠를 빠르게 배포하는 데 초점이 맞춰져 있습니다.
- 사용자 근처의 서버에서 정적 리소스를 제공해 속도를 높이는 것이 목표.
3. 동기화 방식
- Master-Slave
- 데이터는 실시간 또는 주기적으로 복제됩니다.
- 읽기 전용이거나 트랜잭션 처리 시 동기화가 매우 중요합니다.
- CDN
- 캐싱된 데이터가 만료되기 전까지는 동기화되지 않으며, TTL(Time to Live) 또는 수동으로 갱신합니다.
📚결론
둘 모두 사용자와 서버의 거리를 단축시켜 더 빠른 응답을 하고, 서버의 부하를 줄여줍니다. Master-Slave 전략은 주로 데이터베이스에서 사용하고, CDN은 웹 콘텐츠를 제공합니다. 이는 웹 서비스 아키텍처에서 다른 부분을 담당하기에 위치상에 가장 큰 차이가 있습니다.