Scalability

유석현(SeokHyun Yu)·2023년 4월 11일
0

분산 시스템

목록 보기
7/27
post-thumbnail

분산 시스템 개발자들에게 가장 중요한 목표 중 하나는 확장성(Scalability)이다.

크기(size) 측면에서 확장 가능하면 사용자와 리소스를 쉽게 추가할 수 있다.

지리적(geographically)으로 확장 가능하면 사용자와 리소스가 멀리 떨어져 있어도 사용이 가능하다.

관리적(administratively)으로 확장 가능하면 여러 독립적인 조직에서도 쉽게 관리할 수 있다.


확장성의 문제(size 측면)

시스템이 사용자나 리소스가 많아짐에 따라 확장이 필요해지면, 중앙집중식으로 구현된 서비스, 데이터, 알고리즘의 한계점이 나타난다.

중앙집중식 서비스는 통신이 불가피하게 병목현상을 유발하여 처리와 저장 용량을 무한정 증가시켜도 언젠가는 커뮤니케이션 제한으로 인해 더 이상 확장할 수 없게 된다.

중앙집중식 데이터도 마찬가지로 대규모 데이터를 하나의 테이블로 유지하면 문제가 발생할 수 있다.

예를 들어, 5천만 명의 전화번호와 주소를 관리하는 것과 같이 대규모 데이터를 단일 테이블로 유지하면 이슈가 발생할 수 있다.

이를 위해 데이터를 분산시켜야 한다.

또한 중앙집중식 알고리즘은 각 머신이 시스템 상태에 대한 완전한 정보를 가지지 않으며, 모든 사이트에서 정보를 수집하고 처리를 위해 한 대의 컴퓨터에 보내는 알고리즘은 피해야 한다.

이를 해결하기 위해 분산 알고리즘이 사용된다.

분산 알고리즘은 각 머신이 로컬 정보에만 기반하여 결정을 내리며, 한 대의 머신이 실패해도 알고리즘이 망가지지 않는 특징이 있다.

그러나 전체적인 시계가 존재하지 않는 묵시적인 가정이 없기 때문에, 분산 알고리즘에서는 정확한 시계 동기화의 부재를 고려해야 한다.


확장성의 문제(geographical 측면)

지리적으로 넓게 퍼진 대규모 분산 시스템에서는 다음과 같은 문제점이 있다.

동기 통신: 분산 시스템은 동기 통신에 기반하고 있기 때문에, 클라이언트가 서비스를 요청하면 응답이 올 때까지 대기하는 문제가 발생할 수 있다. 이러한 문제는 지리적으로 떨어진 서버 간의 통신에서 특히 빈번하게 일어난다.

신뢰성이 없는 점대점 통신: 광역 네트워크에서의 통신은 신뢰성이 없으며, 대부분 점대점 통신 방식을 사용한다. 이러한 통신 방식은 서비스 위치를 찾는 등의 문제를 야기할 수 있다.

브로드캐스트의 불가능성: 대규모 지리적 분산 시스템에서는 브로드캐스트를 사용할 수 없다. 즉, 네트워크 전체에 메시지를 브로드캐스트하여 모든 노드가 메시지를 수신하는 것은 불가능하다.


확장성의 문제(administrative 측면)

분산 시스템을 다수독립관리 도메인에 걸쳐 확장하는 것은 쉽지 않은 문제이다.

이는 자원 사용, 관리 및 보안 정책의 충돌로 인해 발생한다.

사용자들은 자신의 시스템 관리자를 믿지만, 이 신뢰는 도메인 경계를 넘어서 쉽게 확장되지 않기 때문이다.

따라서 분산 시스템이 새로운 도메인으로 확장될 때는 보안 문제에 대한 대책을 수립해야 한다.

예를 들어, 새 도메인의 사용자는 원래 도메인의 파일 시스템에 대해 읽기 권한만 갖게 만들 수 있다.

profile
Backend Engineer

0개의 댓글