본문 바로가기

전체 글

(24)
[Network] VPN / Forward Proxy / Reverse Proxy 차이 Forward Proxy vs Reverse Proxy Forward Proxy는 client의 ip가 변경되는 것, Reverse Proxy는 server의 ip가 변경되는 것이라고 생각하면 된다. 유튜브나 네이버 스포츠 영상을 볼 때 해외에서 접속하면 서비스 대상 국가가 아니라고 나오면서 영상을 못보는 경우가 많은데, (사용할 수 있는 ip가 국가별로 고정되어 있고, 이 고정된 ip 정보를 가진 테이블로 필터링) 이를 우회하기 위해 사용하는 것이 Forward Proxy이다. 즉, 우리나라에서 1.1.1.1 ~ 1.1.1.10까지 총 10개의 ip만 사용할 수 있다고 가정을 해보자. 내가 접속하려는 사이트 www.a.com의 ip는 1.1.1.10인데, 이 서비스는 해외에서는 접속할 수 없어야 하는 ..
[Data Structure] HashMap이란? 자료구조 뿐만 아니라 어떤 개념에 대해 이해할 때 탄생 배경을 아는 것, 그리고 정확하지는 않더라도 개인적으로 추측해보는 과정이 제일 중요하다고 생각한다. HashMap의 탄생 배경은 배열이다. 배열은 데이터를 하나의 논리적인 개념으로 묶어 사용할 수 있도록 편의성을 제공하지만 한 가지 큰 단점이 있는데, 바로 인덱스와 저장된 데이터 사이의 관계가 전혀 없다는 것이다. 즉, 배열에서 데이터를 활용하기 위해서는 배열의 모든 데이터에 접근해야 하는 것이다. 따라서 이 인덱스와 저장된 데이터 사이에 관계를 만들어 배열의 모든 데이터에 접근할 필요 없이 바로 해당 데이터가 저장된 위치를 알아낼 수 있도록 한 것이 바로 HashMap이다. 간단하게는 데이터를 HashCode라는 함수를 통해 int형으로 변환한 뒤..
[Network] bps vs pps, 필요 대역폭 계산하는 방법 대용량 데이터 파이프라인에서 필요 대역폭을 계산하는 것은 반드시 필요하다. 사실 가장 좋은 방법은 미리 넉넉한 네트워크 대역폭을 확보 및 실제 운영 환경에서 예상되는 peak 시간 대의 데이터를 발생시킨 뒤 모니터링 툴에 나오는 대역폭으로 설정을 하면 되긴 하지만 이런 인프라적인 요소가 갖춰지지 않았을 경우 직접 계산해보는 것도 좋은 방법이다. 30개의 운영 서버에서 하루에 총 1TB의 데이터가 생성되고, 모든 데이터는 서버마다 설치된 수집 agent를 통해 Kafka cluster로 유입이 된다고 가정하자. 1TB / 24(시간) / 60(분) / 60(초) = 약 11MB가 나온다. 즉, 평균 1초에 11MB의 데이터가 전송되는 것이며 이를 bit 단위로 변환하면 88Mbps가 된다. 최근에는 가정용..
[ElasticSearch] Replica에 관하여 ElasticSearch Cluster를 검토해보고 사용할 때 정말 많은 사람들이 아무 생각 없이 Replica를 사용하고 있는데, 이는 굉장히 중요한 개념이므로 사용 목적에 대해 깊게 고민해보아야 한다. Replica는 말 그대로 데이터의 복제본이다. 이를 사용하는 근본적인 이유는 당연히 하드디스크 즉, 물리장치의 장애가 발생했을때 데이터가 유실되는 것을 방지하기 위해 같은 내용의 데이터를 복사하여 다른 물리장치에 저장해두는 것이다. 이 목적이 Replica라는 개념이 나오게 된 이유이자 가장 근본적인 목적이기 때문에 elasticsearch cluster에서도 yellow라는 status를 따로 만들어 primary shard와 replica shard를 클러스터에 노드가 단 하나가 있더라도 절대 같..
[Kubernetes] ConfigMap 사용 이유 컨테이너에 사용되는 이미지는 dev부터 prd까지 동일한 형상을 가져야하며 이를 위해 컨테이너에서 필요한 환경 설정 내용을 컨테이너와 분리하여 사용해야 한다. 위 설명은 configmap을 사용하는 이유에 대해 검색하면 나오는 가장 흔한 답변인데, 내용 자체는 틀리지 않았지만 configmap을 사용하는 이유에 대한 답변은 될 수 없다. configmap을 사용하는 가장 핵심 이유는 의존성 제거이다. configmap을 사용하지 않을 경우 도커파일안에 설정파일을 COPY하는 과정이 필요하다. COPY를 하더라도 서비스가 동작하는데 아무런 문제가 없고, 무엇보다 dev에서부터 prd까지 하나의 컨테이너 형상으로 동작하는 것이 가능하다.(deployment에서 cmd 동작 값을 변경시켜주면서 실행) 그런데 ..