728x90
반응형

전체 글 551

[Protocol] STOMP Protocol

기본적으로 채팅 서비스를 구현하기 위해서는 Half Duplex 방식의 HTTP보다 Full Duplex 방식의 Socket 통신을 기반으로 구현한다. 그리고 이 위에 메시징 전송을 효율적으로 하기 위해 프로토콜 STOMP Protocol이 존재한다. 채팅 서비스를 개발하기 이전에 STOMP Protocol이 무엇인지 알아보자. ▶ STOMP란 ? STOMP는 Simple / Stream Text Oriented Messaging Protocol 의 약자이다. 말 그대로 간단한 문자 기반 메세징 프로토콜이다. STOMP는 웹 상에서 텍스트 송 / 수신을 위해 미리 정의된 특정한 규칙이다. STOMP에서 정의한 규칙을 준수하면 여러 언어, 여러 플랫폼 간 메세지를 상호 운영할 수 있다. 기본적인 구조는 P..

Spring/Chat 2023.10.09

Apache jMeter란?

Apache jMeter Apache JMeter는 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구이다. JMeter는 순수 Java 애플리케이션 오픈소스이며 서버나 네트워크 또는 개체에 대해 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한 부하 유형에서 전체 성능을 분석하는 데 사용할 수 있다. 비슷한 부하테스트 도구로는 Apache Benchmark, Ngrinder, Pinpoint, Gatling등이 있다. 다음은 Apache JMeter가 가진 특징을 나열한 것이다. 다양한 프로토콜 / 서버를 테스트 할 수 있다. 웹 : HTTP, HTTPS SOAP / REST Web Service FTP DB Mail 사용자 시나리오 모델링 jMeter는 가상 사용자를 생성하고 웹 애플리케이션..

카테고리 없음 2023.09.11

[Kafka - 03] 프로듀서의 내부 동작 원리와 구현, 중복 없는 전송

프로듀서가 전송하려는 메시지들은 프로듀서의 send() 메소드를 통해 시리얼라이저, 파티셔너를 거쳐 카프카로 전송된다. 먼저 파티셔너가 무엇인지 알아본다. 1. 파티셔너 카프카의 토픽은 성능 향상을 위한 병렬 처리가 가능하도록 하기 위해 파티션으로 나뉘고, 최소 하나 또는 둘 이상의 파티션으로 구성된다. 그리고 프로듀서가 카프카로 전송할 메시지는 해당 토픽 내 각 파티션의 로그 세그먼트에 저장된다. 따라서 프로듀서는 토픽으로 메시지를 보낼 때 해당 토픽의 어느 파티션으로 메시지를 보내야 할지를 결정해야 하는데, 이때 사용하는 것이 바로 파티셔너이다. 프로듀서가 파티션을 결정하는 알고리즘은 기본적으로 메시지(레코드)의 키를 해시 처리해 파티션을 구하는 방식이다. 예상치 못한 많은 양의 메시지가 카프카로 인..

CS/Apache Kafka 2023.08.31

[Kafka - 02] 카프카의 내부 동작 원리와 구현

※ 카프카의 내부 동작 원리와 구현에서 가장 중요한 부분 중 하나는 리플리케이션 동작이다. 리플리케이션에 이어, 리더와 팔로워의 역할과 리더에포크와 복구 동작들을 정리한다. 그 다음 리플리케이션 동작과 관련 있는 컨트롤러와 컨트롤러의 동작, 그리고 로그와 로그 컴팩션에 대해 정리한다. 1. 카프카 리플리케이션 고가용성 분산 스트리밍 플랫폼인 카프카는 무수히 많은 데이터 파이프라인의 정중앙에 위치하는 메인 허브 역할을 한다. 이렇게 중앙에서 메인 허브 역할을 하는 카프카 클러스터가 만약 하드웨어의 문제나 점검 등으로 인해 정상적으로 동작하지 못한다거나, 카프카와 연결된 전체 데이터 파이프라인에 영향을 미친다면 이는 매우 심각한 문제를 초래한다. 이때 안정성을 확보하기 위해 카프카 내부에서는 리플리케이션이라..

CS/Apache Kafka 2023.08.25

[Kafka - 01] 카프카 기본 개념과 구조

※ 카프카를 구성하는 주요 요소 주키퍼(Zookeeper) : 아파치 프로젝트 애플리케이션 이름이다. 카프카의 메타데이터(metadata) 관리 및 브로커의 정상상태 점검(health check)를 담당한다. 카프카(Kafka) 또는 카프카 클러스터(Kafka cluster) : 아파치 프로젝트 애플리케이션 이름이다. 여러 대의 브로커를 구성한 클러스터를 의미한다. 브로커(broker) : 카프카 애플리케이션이 설치된 서버 또는 노드를 말한다. 프로듀서(producer) : 카프카로 메시지를 보내는 역할을 하는 노드를 말하낟. 컨슈머(consumer) : 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트를 총칭하낟. 토픽(topic) : 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카..

CS/Apache Kafka 2023.08.23

[AWS 네트워크 보안] 보안그룹과 네트워크 ACL, VPC 플로우 로그, AWS WAF

01. 보안 그룹과 네트워크 ACL 1.1 접근 제어 (Access Control) 1.1.1 접근 제어 개요 일반적인 측면에서 접근 제어는 보안상 위협으로부터 제반 시설 및 환경을 보호하기 위한 보안 대책이다. 인가된 대상은 접근에 허용하고, 인가되지 않은 대상은 접근을 거부하여 보안 측면을 강화할 수 있다. 1.2 보안 그룹과 네트워크 ACL 1.2.1 보안 그룹과 네트워크 ACL 개요 AWS에서는 네트워크 인프라 보호를 위한 트래픽 제어 정책으로 보안 그룹(Security Group)과 네트워크 ACL(Network Access Control List) 기능을 활용한다. 보안그룹과 네트워크 ACL은 IP 주소와 프로토콜과 포트 번호를 통해 대상을 식별하고 제어 정책에 따라 대상의 허용 여부를 판단한..

CS/aws 네트워크 2023.08.22

[Kafka - 00] 카프카 개요 및 특징, 구성

00. Kafka란? Kafka는 분산 데이터 스트리밍 플랫폼으로, 대량의 실시간 데이터를 처리하고 저장하는데 사용되는 오픈 소스 솔루션이다. 아파치 카프카(Apache Kafka)라는 이름으로도 잘 알려져 있다. 이는 LinkedIn에서 개발된 후에 아파치 소프트웨어 재단에 기증되어 개발 및 관리되고 있다. Kafka는 다양한 애플리케이션 간에 데이터 스트림을 안정적으로 전달하고, 실시간으로 데이터를 처리, 분석하고 저장하는 데 사용된다. 대표적인 특징으로 높은 처리량, 순서 보장, 적어도 한 번 전송 방식(At least Once), 강력한 파티셔닝, 자연스러운 백프레셔 핸들링, 로그 컴팩션 같은 기능이 존재한다. ▶ 순서 보장 : 이벤트 처리 순서가 보장되면서, 엔티티 간의 유효성 검사나 동시 수정..

CS/Apache Kafka 2023.08.21

[AWS 부하분산] ELB, Route 53, CloudFront, Global Accelerator

01. ELB [Elastic Load Balancing] 1.1 ELB란? 1.1.1 고가용성 환경 구성 VPC 내 단일 서버를 통한 서비스 구성하여 사용자가 접근하는 환경에 대해 단일 서버가 장애가 발생이 되면 서비스를 받을 수 없다. 지속적인 서비스 제공을 위해 서버를 다중화 구성하여 서비스의 연속성을 보장하는 고가용성 구성이 필요하다. 위 그림과 같이 다수의 서버를 구성하여 서비스를 제공하면, 인스턴스 하나가 장애가 발생하더라도 나머지 인스턴스가 존재하여 서비스를 받을 수 있다. 하지만 서비스 타깃을 사용자 입장에서 일일이 지정을 해주어야 한다는 문제가 존재한다. 사용자 입장에서 장애를 인지하여 타깃을 변경하기 전까지는 서비스를 받을 수 없을 것이며 이러한 환경이 서비스 연속성을 보장하는 고가용성..

CS/aws 네트워크 2023.08.11

[AWS 네트워크 인터넷 연결] AWS의 인터넷 연결, 인터넷 게이트웨이, NAT 디바이스, Proxy 인스턴스

01. AWS의 인터넷 연결 1.1 AWS의 인터넷 연결 소개 AWS VPC 내부에서 외부 인터넷으로 연결을 위한 방법을 소개한다. (통신방향 : AWS 내부 → 외부) 1.1.1 인터넷 연결을 위한 4가지 조건 1) 인터넷 게이트웨이 : 외부 인터넷과 연결을 해주는 장비로 뒤에서 설명하는 3가지 방안(인터넷 게이트웨이, NAT 디바이스, Proxy 인스턴스)이 최종적으로 인터넷 게이트웨이를 통하여 통신한다. 2) 네트워크 라우팅 테이블 정보 (외부와 네트워크 통신을 위한) : 일종의 목적지를 가기 위한 지도 정보로, 모든 네트워크 대역(0.0.0.0/0) 통신은 인터넷 게이트웨이로 전달하기 위해 경로를 지정한다. 3) 공인 IP : 일종의 집 주소와 같이 전 세계에서 유일한 주소의 개념이다. AWS에 ..

CS/aws 네트워크 2023.08.10

[AWS 네트워크 VPC 고급] VPC 엔드포인트, 배치 그룹

01. VPC 엔드포인트 [VPC Endpoint] 1.1 VPC 엔드포인트란? 1.1.1 VPC 엔드포인트 개요 : 사용자가 생성한 VPC에서 AWS 퍼블릭 서비스와 통신을 하거나 다른 VPC로 통신이 필요할 경우 일반적으로 외부 인터넷 구간인 퍼블릭 네트워크를 통해 통신이 이루어진다. 퍼블릭 네트워크 통신 뿐만 아니라 위 그림과 같이 격리된 프라이빗 서브넷에서도 AWS 퍼블릭 서비스와 프라이빗 네트워크 통신으로 안전한 통신을 제공하는 VPC 엔드포인트 기능에 대한 것이다. VPC 엔드포인트는 AWS의 퍼블릭 서비스나 직접적으로 생성한 AWS 서비스에 대해 외부 인터넷 구간을 통한 접근이 아닌 직접적으로 접근할 수 있는 프라이빗 액세스 기능이다. 예를 들어 S3라는 AWS 스토리지 서비스에 대해 우리가..

CS/aws 네트워크 2023.08.10
728x90
반응형