분류 전체보기

    [MongoDB] MongoDB ReplicaSet 설정 방법 (샤딩 X )

    MongoDB 간단하게 보기 위해 ReplicaSet 설정 진행 - 따로 샤딩 설정은 하지 않고, 설정들도 대부분 기본 값으로 설정한 내용 몽고디비 ReplicaSet 설정 방법 https://www.mongodb.com/docs/manual/administration/install-on-linux/ Install (Ubutun 20.04) #!/bin/sh wget -qO - | sudo apt-key add - echo "deb [ arch=amd64,arm64 ] focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list sudo apt-get update sudo apt-get install -y..

    [Nginx RateLimit] Nginx에 RateLimit 적용해보기

    Rate Limiting주어진 특정한 시간 동안 제한된 HTTP 요청량을 제한할 수 있도록 하는 기능.Rate Limiting을 하는 이유보안 측면의 목적 (Brute force attack 방지 등)비정상적인 요청 방지 (DDoS 공격 등 방지)서버가 처리할 수 있는 요청의 임계 값을 넘어선 요청을 방지함으로써 서버의 안정성을 높이는 역할서버의 안정성을 위해예를 들어서 비정상 호출 방지를 위해 동일 IP에서 초당 요청할 수 있는 횟수를 10회로 제한한다.서버의 안정성을 위해 서버에 들어오는 최대 요청 수를 초당 500회로 제한한다.등 제한을 추가할 필요가 있을 때, Nginx Rate Limiting 기능을 사용하면 유용하다.Nginxnginx에서도 RateLimit를 위한 모듈을 제공하고 있다.ex)..

    [데이터 중심 애플리케이션 설계 정리] 스트림, Dual Write, CDC 정리

    데이터 중심 애플리케이션 설계 중 일부를 정리한 내용입니다. 데이터베이스와 스트림 이벤트는 특정 시점에 발생한 사건을 기록한 레코드. 데이터베이스에 기록하는 것도 이벤트가 될 수 있다. (데이터베이스에 뭔가를 기록한다는 사실은 캡처해서 저장하고 처리할 수 있는 이벤트) 복제 로그는 데이터베이스 기록 이벤트의 스트림이다. 시스템 동기화 유지하기 데이터 저장과 질의, 처리 요구사항을 모두 만족하는 단일 시스템은 없고, 실제로 대부분의 애플리케이션이 요구사항을 만족하기 위해 몇 가지 다른 기술의 조합이 필요하다. 사용자 요청에 대응하기 위한 OLTP 데이터베이스, 공통 요청의 응답 속도를 높이기 위한 캐시, 검색 질의를 다루기 위한 전문 색인, 분석용 데이터 웨어하우스 등이 각 예로, 이 시스템 각각은 데이터..

    [데이터 중심 애플리케이션 설계 정리] 분산 시스템의 어려움, 정족수, 펜싱 토큰 개념

    데이터 중심 애플리케이션 설계 8장. 분산 시스템의 골칫거리를 정리한 내용입니다. 분산 시스템에서는 공유 메모리가 없고 지연 변동이 큰 신뢰할 수 없는 네트워크를 통해 메시지를 보낼 수만 있을 뿐이며 부분 장애, 신뢰성 없는 시계, 프로세스 중단에 시달릴 수 있다. 분산 시스템의 어려움 네트워크로 패킷을 보내려고 할 때는 언제나 패킷이 손실되거나 임의대로 지연될 수 있다. (마찬가지로 응답도 손실되거나 지연될 수 있으므로 응답을 받지 못하면 메시지가 전달됐는지 아닌지를 알 수 없다) 노드의 시계는 다른 노드와 심하게 맞지 않을 수도 있고, 시간이 갑자기 앞뒤로 뛸 수도 있다. 그리고 시계의 오차 구간을 측정할 좋은 수단이 없을 가능성이 크므로 분산 시스템에서 시계에 의존하는 것은 위험하다. 프로세스는 실..

    [MongoDB] MongoDB 배포 형태

    Real MongoDB의 책 내용 중 일부를 정리한 내용입니다. http://www.yes24.com/Product/Goods/58142119 1. 단일 노드 (Standalone 형태) 구성 요소 아무런 관리용 컴포넌트가 필요하지 않다. 특징 및 한계점 복제를 위한 로그(OpLog)를 별도로 기록하지 않으며, 다른 노드와의 통신도 필요하지 않음. Application의 MongoDB 드라이버가 MongoDB 서버로 직접 연결하게 되며, 별도의 레플리카 셋을 가지지 않으므로 MongoDB 서버가 응답 불능 상태라 하더라도 자동 페일오버나 HA 기능이 작동할 수 없음. 2. 단일 레플리카셋 (Simple Replica-set) 구성 요소 단일 레플리카 셋에서도 별도의 관리용 컴포넌트가 필요하지 않지만, 레..