System Design17 [사용자 수에 따른 규모 확장성] 로그, 메트릭 그리고 자동화 웹 사이트와 함께 사업 규모가 커지고 나면, 로그나 매트릭(metric), 자동화(automation) 같은 도구에 필수적으로 투자해야 합니다. 로그: 에러 로그를 모니터링하는 것은 중요합니다. 시스템의 오류와 문제들을 보다 쉽게 찾아낼 수 있도록 하기 때문입니다. 에러 로그는 서버 단위로 모니터링 할 수도 있지만, 로그를 단일 서비스로 모아주는 도구를 활용하면 더 편리하게 검색하고 조회할 수 있습니다. 메트릭: 메트릭을 잘 수집하면 사업 현황에 관한 유용한 정보를 얻을 수도 있고, 시스템의 현재 상태를 손쉽게 파악할 수도 있습니다. 메트릭 가운데 특히 유용한 것을 몇 가지 살펴보면 다음과 같습니다. 호스트 단위 메트릭: CPU, 메모리, 디스크 I/O에 관한 메트릭이 여기 해당합니다. 종합(aggreg.. 2021. 9. 9. [사용자 수에 따른 규모 확장성] 메시지 큐 메시지의 무손실(durability, 즉 메시지 큐에 일단 보관된 메시지는 소비자가 꺼낼 때까지 안전히 보관된다는 특성)을 보장하는, 비동기 통신(asynchronous communication)을 지원하는 컴포넌트입니다. 생산자 또는 발행자(producer/publisher)라고 불리는 입력 서비스가 메시지를 만들어 메시지 큐에 발행(publish)합니다. 큐에는 보통 소비자 혹은 구독자(consumer/subscriber)라 불리는 서비스 혹은 서버가 연결되어 있는데, 메시지를 받아 그에 맞는 동작을 수행하는 역할을 합니다. 메시지 큐를 이용하면 서비스 또는 서버 간 결합이 느슨해져서, 규모 확장성이 보장되어야 하는 안정적 애플리케이션을 구성하기 좋습니다. 생산자는 소비자 프로세스가 다운되어 있어도 .. 2021. 9. 8. [사용자 수에 따른 규모 확장성] 데이터 센터 두 개의 데이터 센터를 이용하는 사례 장애가 없는 상황에서 사용자는 가장 가까운 데이터 센터로 안내되는데, 통상 이 절차를 지리적 라우팅(geoDNS-routing 또는 geo-routing)이라고 부릅니다. 지리적 라우팅에서의 geoDNS는 사용자의 위치에 따라 도메인 이름을 어떤 IP 주소로 변환할지 결정할 수 있도록 해 주는 DNS 서비스입니다. 데이터 센터 중 하나에 심각한 장애가 발생했을 경우 모든 트래픽은 장애가 없는 데이터 센터로 전송됩니다. 다중 데이터센터 아키텍처를 만들기 위한 기술적 난제 트래픽 우회: 올바른 데이터 센터로 트래픽을 보내는 효과적인 방법을 찾아야 합니다. GeoDNS는 사용자에게서 가장 가까운 데이터센터로 트래픽을 보낼 수 있도록 해 줍니다. 데이터 동기화(synchro.. 2021. 9. 7. [사용자 수에 따른 규모 확장성] 무상태(stateless) 웹 계층 웹 계층을 수평적으로 확장하기 위해서는 상태 정보(사용자 세션 데이터와 같은)를 웹 계층에서 제거하여야 합니다. 바람직한 전략은 상태 정보를 관계형 데이터베이스나 NoSQL 같은 지속성 저장소에 보관하고, 필요할 때 가져오도록 하는 것입니다. 이렇게 구성된 웹 계층을 무상태 웹 계층이라 부릅니다. 상태 정보 의존적인 아키텍처 상태 정보를 보관하는 서버는 클라이언트 정보, 즉 상태를 유지하여 요청들 사이에 공유되도록 합니다. 무상태 서버는 이런 장치가 없습니다. 상태 정보 의존적인 아키텍처 사용자 A의 세션 정보나 프로파일 이미지 같은 상태 정보는 서버 1에 저장됩니다. 요청이 서버 2로 저장되면 인증은 실패할 것인데, 서버 2에 사용자 A에 관한 데이터는 보관되어 있지 않기 때문입니다. 마찬가지로, 사용.. 2021. 9. 7. 이전 1 2 3 4 5 다음