분류 전체보기

    Reverse Proxy, Forward Proxy

    Reverse Proxy, Forward Proxy

    회사에서 외부 서버에 접속할 때 매번 프록시를 태워서 접근해야 했다. 프록시에 대해 정확하게 알고있지 않아서 찾아본 내용을 정리해보았다. Proxy란? 프록시(Proxy)란 ‘대리’라는 의미를 가지고 있으며, 서버와 서버사이의 중계역할을 한다. 예를들면 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있도록 한다. 프록시를 쓰는 이유는 보안상의 이유로 직접 통신할 수 없는 두 서버 사이에서 통신을 가능하게 하며, 보안성, 성능, 안정성을 향상시킨다. 일반적으로 클라이언트와 서버사이에 통신을 할 때 중복된 정보를 전달하는 상황이 발생하기도 한다. 이렇게 동일한 요청을 매번 처리하는 것은 리소스 낭비와 서버의 부하로 이어지게된다. 따라서 실제 서버에 도달하기 전 새로운 서버(proxy..

    [Elasticsearch] "Limit of total fields has been exceeded" 해결

    [Elasticsearch] "Limit of total fields has been exceeded" 해결

    API를 수정하고나서부터 Elasticsearch에 Document가 쌓이지 않는 문제가 발생했다. Logstash 로그 내역을 까보니 다음과 같은 이유로 데이터가 들어오지 않고 있었다. ES에서 field 개수를 기본적으로 1000개로 설정해두고 있어서 error가 떨어지고 있었다. API를 수정하면서 field개수가 1000개를 넘어가서 위와 같이 발생하고 있었다. 내가 생각해본 해결 방법은 3가지였다. 1. API의 데이터를 수정 2. ES의 field 최대 개수를 늘려주는 것 3. Logstash에서 remove field를 통해 불필요한 정보 제거 먼저 1번의 경우, API 데이터는 나만 사용하는 데이터가 아니기 때문에 건들기가 어렵다고 판단하였다. 나는 필요없는 정보일지라도 다른 부서에서는 해..

    [ElasticSearch] Split Brain (마스터노드 구성)

    [ElasticSearch] Split Brain (마스터노드 구성)

    엘라스틱 서치 클러스터를 구축할 때 마스터후보 노드는 최소 3개 이상의 홀수개로 설정하는 것을 권장한다...! 그 이유는 Split Brain때문인데, 해당 개념을 알아보자. (틀린 내용이 있을 경우 댓글로 알려주시면 감사하겠습니다) 먼저 마스터후보 노드를 1개만 두면, 해당 마스터 노드가 유실되었을 때 클러스터 전체가 멈춰버리기 때문에 1개만 두지는 않는다. 그렇다면 홀수개로 설정해야하는 이유는 무엇일까? 위 사진과 같이 만일 네트워크가 단절되는 경우, 하나의 ES 클러스터였던 것이 각각 다른 클러스터로 분리되어 동작하게 되는 경우가 발생할 수 있다. 이때, 각각의 클러스터로 동작할 때 데이터가 추가되거나 변경되면, 나중에 네트워크가 복구되고 다시 하나의 클러스터로 합쳐지면서 데이터 정합성 문제가 발생..

    [Elasticsearch] ELK스럽게 데이터 수정하기 (역색인구조)

    [Elasticsearch] ELK스럽게 데이터 수정하기 (역색인구조)

    이번 포스팅은 Elasticsearch와 Kibana를 처음 사용하면서 공부했던 부분들에 대해 남겨보고자 한다. (공부중인 부분이라 용어가 적절하지 않거나 틀린부분이 있을 수 있습니다! 알려주시면 감사하겠습니다 :)) ElasticSearch에 metic 정보를 넣어 Kibana로 시각화하려고 했을 때, 뭔가 잘 되지않는 문제가 있었다. 예를 들어 host의 cpu 사용개수를 표현하려고 했다고 하자. 내가 ES에 적재하는 정보는 다음과 같았다. Field Value host1_name 2 host2_name 3 host3_name 4 host4_name 1 이런 방식으로 적재하면 Kibana에서 시각화를 할 때 Field(host)별로 view를 추가해줘야했다. 이 말인즉슨 host가 추가되거나 삭제되는..

    TCP 프로토콜의 기능과 특징

    TCP 프로토콜의 기능과 특징

    TCP 프로토콜의 기능과 특징 전송 계층의 대표적인 프로토콜인 TCP는 신뢰할 수 있고 정확한 데이터를 전달하기 위해 연결형 통신을 사용하는 프로토콜이다. TCP 프로토콜은 데이터를 패킷이라는 작은 조각으로 분할하고, 모든 패킷이 수신지에 제대로 도착했는지 확인하고(연결형 통신 방식), 수신한 데이터의 순서를 송신한 순서대로 패킷들을 재조립 함으로써 전체 데이터가 올바르게 전송되도록 한다. TCP 프로토콜의 데이터 단위 - 패킷 분할과 조립 TCP 프로토콜에 따라 데이터를 분할한 후, TCP 헤더를 붙여 캡슐화 한 전송 계층의 패킷을 세그먼트라고 한다. TCP에서 데이터를 분할하는 단위를 MSS(Maximum Segment Size, 최대 세그먼트 길이)라고 하며 일반적으로 사용하는 MSS의 표준 크기는..

    IP주소의 종류와 할당 방법 및 NAT

    IP주소의 종류와 할당 방법 및 NAT

    공인 IP 주소와 사설 IP 주소 인터넷에서 사용하는 IP 주소를 공인 IP 주소라고 한다. 반면 인터넷과 독립적인 사설 네트워크에서 사용하는 IP 주소를 사설 IP주소라고 한다. 공인 IP 주소는 인터넷에 접속하는 호스트에 유일하게 할당되어야하기 때문에 사설 IP 주소와 명확히 구별되어야 한다. 그래서 사설 IP 주소로 사용 가능한 번호는 그림 2와 같이 클래스 별로 따로 정해져 있다. 인터넷에 연결되지 않는 사설 네트워크를 만들 때는 사설 IP 주소로 사용 가능한 번호의 범위 내에서 IP주소를 자유롭게 선택할 수 있다. 인터넷에 연결되지 않으면 다른 네트워크의 사설 IP 주소와 겹치더라도 사설 네트워크 안에서의 통신에는 전혀 문제가 없기 때문이다. 초기 사설 IP 주소는 인터넷과의 연결을 고려하지 않..

    IP주소와 서브넷 마스크

    IP주소와 서브넷 마스크

    IP주소의 구성 - 네트워크 부, 호스트 부 IP 주소는 네트워크 부와 호스트부로 구성된다. 네트워크 부(Network Part 또는 Network ID) 호스트가 어떤 네트워크 대역에 속해 있는지를 나타낸다 호스트 부(Host Part 또는 Host ID) 해당 네트워크의 어느 호스트인지를 나타낸다 같은 네트워크 대역 안에있는 컴퓨터는 네트워크 부가 동일하고 호스트 부만 다르다. 즉 네트워크 부가 다르다는 것은 서로 다른 네트워크 대역에 있다는 의미이고, 라우터를 통하지 않고는 서로 통신이 불가능하다는 뜻이다. 서로 다른 네트워크가 라우터를 통해 통신이 가능한 것은, 라우터가 IP 주소의 네트워크 부를 보고 라우팅을 하여 데이터를 전송하기 때문이다. 인터넷 접속이 가능한 네트워크를 만들기 위해 IP 주..

    [OSI 7-Layer] 응용 계층

    [OSI 7-Layer] 응용 계층

    응용계층이란? 응용계층은 사용자 계층을 의미한다. 표현계층에서 만들어진 데이터 타입을 응용계층에서 사용자에게 보여준다. 예를 들어 이미지 데이터를 JPEG로 변환한 데이터를 뷰어를 통해 인터페이스화하여 모니터에 띄워주는 역할을 한다. 응용계층의 대표적인 프로토콜 HTTP (인터넷 상에서 정보를 주고받는 프로토콜. 주로 HTML문서를 주고받는데 쓰인다) FTP (서버와 클라이언트 사이의 파일을 전송하기 위한 파일 전송 프로토콜) SMTP (인터넷에서 이메일을 보내고 받기 위한 우편 전송 프로토콜) Telnet (원격 접속을 위해 원격지 서버의 실행창을 얻어내는 프로토콜) DNS (도메인 이름을 IP 주소로 변환시켜주는 프로토콜) (참고: https://gocoder.tistory.com/1865)