Architecture
-
개요 처리율 제한 장치(rate limiter)는 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치입니다. 이 기술은 서비스나 애플리케이션에 너무 많은 요청이 한꺼번에 몰리는 것을 방지하여, 서버가 안정적으로 운영될 수 있도록 돕습니다. 예시: 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한 사용자는 초당 2회 이상의 새 글을 올릴 수 없습니다. 같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없습니다. 같은 디바이스로 주당 5회 이상 리워드(reward)를 요청할 수 없습니다. API 처리율 제한 장치를 두면 좋은점 DoS(Denial of Service) 공격에 의한 자원 고갈(Resource Starvation)을 방지할 수 있습니다. 비용을 절감할 ..
[Architecture]처리율 제한 장치 설계(Rate limiting)개요 처리율 제한 장치(rate limiter)는 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치입니다. 이 기술은 서비스나 애플리케이션에 너무 많은 요청이 한꺼번에 몰리는 것을 방지하여, 서버가 안정적으로 운영될 수 있도록 돕습니다. 예시: 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한 사용자는 초당 2회 이상의 새 글을 올릴 수 없습니다. 같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없습니다. 같은 디바이스로 주당 5회 이상 리워드(reward)를 요청할 수 없습니다. API 처리율 제한 장치를 두면 좋은점 DoS(Denial of Service) 공격에 의한 자원 고갈(Resource Starvation)을 방지할 수 있습니다. 비용을 절감할 ..
2024.03.31 -
개요 수평적 규모 확작성을 달성하기 위해서는 요청 또는 데이터를 서버에 균등하게 나누는게 중요합니다. 안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술입니다. 당면한 문제 : 해시 키 재배치(rehash) 문제 전통적인 해시 테이블에서 서버(노드)를 추가하거나 제거할 때 대부분의 키가 재배치되어야 하는 문제가 발생합니다. 이는 시스템에 큰 부하를 주고, 수평적 확장성을 제한하는 주요 원인이 됩니다. 서버의 개수 변하지 않을때: 문제 없음 서버의 개수가 변할때: 대규모 캐시 미스 발생 문제가 발생한 1번 서버에 보관되어 있는 키 뿐만 아니라 대부분의 키가 재분배 되었다. 1번 서버가 죽으면 대부분 캐시 클라이언트가 데이터가 없는 엉뚱한 서버에 접속하게 된다. 해결 방법: 안정 해시(consis..
[Architecture]안정 해시 설계(consistent hash)개요 수평적 규모 확작성을 달성하기 위해서는 요청 또는 데이터를 서버에 균등하게 나누는게 중요합니다. 안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술입니다. 당면한 문제 : 해시 키 재배치(rehash) 문제 전통적인 해시 테이블에서 서버(노드)를 추가하거나 제거할 때 대부분의 키가 재배치되어야 하는 문제가 발생합니다. 이는 시스템에 큰 부하를 주고, 수평적 확장성을 제한하는 주요 원인이 됩니다. 서버의 개수 변하지 않을때: 문제 없음 서버의 개수가 변할때: 대규모 캐시 미스 발생 문제가 발생한 1번 서버에 보관되어 있는 키 뿐만 아니라 대부분의 키가 재분배 되었다. 1번 서버가 죽으면 대부분 캐시 클라이언트가 데이터가 없는 엉뚱한 서버에 접속하게 된다. 해결 방법: 안정 해시(consis..
2024.03.11 -
개요 데이터베이스 선택, 애플리케이션의 확장, 로드밸런싱, 캐싱, CDN 활용, 데이터베이스 샤딩 등의 전략을 통해 효율적이고 확장 가능한 웹 시스템 아키텍처를 설계할 수 있습니다. 요약: 사용자 수에 따른 규모 확장성 웹 계층은 Stateless해야 합니다. 이는 시스템이 더 많은 사용자와 트래픽을 수용할 수 있도록 만듭니다. 모든 계층에 다중화를 도입합니다. 이는 시스템의 부하를 분산시키고 가용성을 높입니다. 가능한 한 많은 데이터를 캐시합니다. 이는 응답 시간을 단축하고 시스템의 전반적인 성능을 향상합니다. 정적 콘텐츠는 CDN을 통해 서비스합니다. 이는 전 세계적으로 빠른 콘텐츠 전달을 가능하게 합니다. 데이터 계층은 샤딩을 통해 확장합니다. 이는 데이터 관리를 보다 효율적으로 만듭니다. 각 계층..
[Architecture]대규모 애플리케이션을 위한 아키텍처 설계 가이드개요 데이터베이스 선택, 애플리케이션의 확장, 로드밸런싱, 캐싱, CDN 활용, 데이터베이스 샤딩 등의 전략을 통해 효율적이고 확장 가능한 웹 시스템 아키텍처를 설계할 수 있습니다. 요약: 사용자 수에 따른 규모 확장성 웹 계층은 Stateless해야 합니다. 이는 시스템이 더 많은 사용자와 트래픽을 수용할 수 있도록 만듭니다. 모든 계층에 다중화를 도입합니다. 이는 시스템의 부하를 분산시키고 가용성을 높입니다. 가능한 한 많은 데이터를 캐시합니다. 이는 응답 시간을 단축하고 시스템의 전반적인 성능을 향상합니다. 정적 콘텐츠는 CDN을 통해 서비스합니다. 이는 전 세계적으로 빠른 콘텐츠 전달을 가능하게 합니다. 데이터 계층은 샤딩을 통해 확장합니다. 이는 데이터 관리를 보다 효율적으로 만듭니다. 각 계층..
2024.02.09 -
멀티 테넌트(Multi-Tenant) 아키텍처는 단일 소프트웨어 인스턴스가 여러 사용자 그룹(테넌트)에 의해 공유되는 구조를 말합니다. 이는 클라우드 컴퓨팅과 SaaS(Software as a Service) 모델에서 널리 사용됩니다. 멀티 테넌트 개념 멀티 테넌트 시스템에서는 다수의 고객이나 사용자 그룹이 동일한 애플리케이션을 공유합니다. 중요한 점은, 각 테넌트의 데이터와 설정이 서로 격리되어 있다는 것입니다. https://blogs.sap.com/2022/08/27/fundamentals-of-multitenancy-in-sap-btp/ 예시: 로그 관리 시스템 시나리오: 단일 로그 관리 시스템이 여러 회사(회사 A, B, C)에 의해 사용됩니다. 이 시스템은 각 회사의 로그를 수집하고 관리합니다..
[Architecture]멀티 테넌트 아키텍처 이해하기멀티 테넌트(Multi-Tenant) 아키텍처는 단일 소프트웨어 인스턴스가 여러 사용자 그룹(테넌트)에 의해 공유되는 구조를 말합니다. 이는 클라우드 컴퓨팅과 SaaS(Software as a Service) 모델에서 널리 사용됩니다. 멀티 테넌트 개념 멀티 테넌트 시스템에서는 다수의 고객이나 사용자 그룹이 동일한 애플리케이션을 공유합니다. 중요한 점은, 각 테넌트의 데이터와 설정이 서로 격리되어 있다는 것입니다. https://blogs.sap.com/2022/08/27/fundamentals-of-multitenancy-in-sap-btp/ 예시: 로그 관리 시스템 시나리오: 단일 로그 관리 시스템이 여러 회사(회사 A, B, C)에 의해 사용됩니다. 이 시스템은 각 회사의 로그를 수집하고 관리합니다..
2024.01.21