Network

    방화벽 설정

    iptables 패킷에 대한 동작은 위에서부터 차례로 각 규칭에 대해 검사하고 그 규칙과 일치하는 패킷에 대하여 타겟에 지정한 ACCEPT, DROP 등을 수행한다. 규칙이 일치하고 작업이 수행되면, 그 패킷은 해당 규칙의 결과에 따라 처리하고 체인에서 추가 규칙을 무시한다. 패킷이 체인의 모든 규칙과 매치하지 않아 규칙의 바닥에 도달하면 정해진 기본정책(policy)이 수행된다. 기본 정책은 policy ACCEPT, policy DROP 으로 설정할 수 있다. 일반적으로 기본 정책은 모든 패킷에 대해 DROP 설정하고 특별히 지정된 포트와 IP 주소 등에 대해 ACCEPT 를 수행하게 만든다. iptables 설정 1) 기본 설정 규칙에 명시되지 않은 패킷에 대한 처리를 어떻게 할 것 인지에 대한 기..

    MSA를 위한 L7 Proxy - Envoy proxy

    네트워크는 애플리케이션에 투명해야하며 장애가 발생했을 시 어디에서 문제가 발생했는지 쉽게 파악할 수 있어야한다. MSA 서비스들이 늘어나면서 서비스들이 네트워크를 통해 서로 통신해야했고 이러한 서비스에서 사용하는 핵심 네트워크 프로토콜은 HTTP, HTTP/2, gRPC, Kafka, MongoDB 등의 L7 프로토콜이다. L3, L4 기반의 프록시들로는 다양한 요건들을 처리하기 어려워졌고 그에 따라 L7 기능을 갖춘 프록시의 필요성이 부각되기 시작했다. Envoy Proxy 는 Serivice Mesh Architecture로 대표되는 Istio의 메인 프록시로 대형 MSA 의 단일 Application과 Service를 위해 설계된 고성능 분산 C++ 프록시이다. Lift 사에서 제작한 프로젝트로 (..

    Service Mesh Architecture & Istio

    Service Mesh Architecture & Istio

    MSA 시스템안에는 수십개의 Micro Service가 분리되어있고 동작하는 수백 ~ 수천개의 서비스 인스턴스들을 모니터링하고 로깅하고 관리해야한다. 또한 서비스간의 통신도 매우 복잡해진다. 이와 같은 프로그래밍 오버헤드를 낮추기 위해 나온 아키텍처가 바로 Service Mesh 이다. Service Mesh 기존 서비스 아키텍처에서의 호출이 직접 호출방식이었다면 service mesh에서의 호출은 서비스에 딸린 proxy끼리 이뤄지게 된다. 이는 서비스의 트래픽을 네트워크단에서 통제할 수 있게 하고 또한 Client 의 요구에 따라 Proxy단에서 라우팅 서비스도 가능하게 할 수 있다. 이런 다양한 기능을 수행하려면 기존의 TCP기반의 proxy로는 한계가 있다. 그래서 Service Mesh에서의 통..

    비동기 네트워크 서버 프레임워크 Vert.x 개념

    비동기 네트워크 서버 프레임워크 Vert.x 개념

    Tomcat은 HTTP 요청이 도착하면 요청이 처리될 때까지 요청을 대기열에 넣습니다. 이 대기열에 있는 요청들은 Thread Pool에 있는 스레드에게 할당되어 하나씩 처리됩니다. 각 스레드는 요청을 처리하고 작업이 완료되면 응답을 보낸 후 해당 요청에 대한 작업을 종료합니다. 작업이 완료된 스레드는 다시 스레드 풀로 돌아갑니다. Tomcat에서 동시에 처리할 수 있는 Connection수는 일반적으로 50~500개의 스레드가 적절합니다. 즉, 하나의 Tomcat 서버는 동시에 최대 500여개의 연결을 처리할 수 있습니다. 서비스의 규모와 요구 사항이 증가함에 따라, 수십만 또는 수백만 개의 동시 연결을 처리해야 할 필요가 있을 수 있습니다. 그러나 일반적인 WAS로는 이러한 요구를 충족하기 어렵습니다..