Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
실시간 채팅 서비스를 만든다고 가정해 보자.이런 서비스에서 HTTP를 기반으로 메시지를 주고받는다면 어떻게 될까? HTTP(7계층)HTTP의 경우 stateless 서비스이다. (연결성의 보장은 4계층인 TCP의 역할)따라서 HTTP는 상대의 요청에 의한 Response만 가능하기 때문에 아래와 같이 클라이언트가 주기적으로 서버에 새로운 메시지의 여부를 물어보게 된다.이러한 과정을 폴링이라고 한다. 이런 과정은 당연히 폴링의 주기에 따라 서버의 부하가 달라진다.실시간 채팅이라면 연결과 해제가 수도 없이 발생하여 비효율적이다. 이런 문제를 해결하기 위해 롱 폴링 기법 사용된다. 롱 폴링은 연결 후 응답이 오거나 time out까지 연결을 유지할 수 있다.하지만 채팅이 적다면 time out마다 재연..
저번 게시글에서는 AWS IPv6 전용의 Egress only IGW를 다뤄보았다.EC2에서는 IPv4와 IPv6가 모두 사용가능한데, 실제 통신에 사용되는 것은 어떤 것일까? 일단 변하지 않는 원리는 하나다.IPv4 주소는 IPv4로, IPv6 주소는 IPv6로 통신한다.IPv4와 IPv6는 엄연히 구조가 다른 주소 체계이므로 하나를 안다고 다른 하나를 유추할 수는 없다. 두 가지 주소를 모두 지원한다면 어떤 주소 방식으로 통신할지는 아래의 과정을 따른다. 1. DNS 조회서버의 IP를 DNS 서버로부터 쿼리한다.이때 해당 서버가 IPv4 주소만 가진다면 IPv4로, IPv6 주소만 가진다면 IPv6로 통신하게 된다.(다른 IP 주소를 유추할 수 없으므로 방법이 없다. )하지만 서버가 IPv4와..
정말 빠르면 1~2초 안에 시청자에게 도달하는 라이브 스트리밍 방송들은 어떻게 이뤄지는 걸까?이를 네트워크 프로토콜을 중심으로 알아보자. 1. 카메라 데이터의 인코딩 카메라로 촬영한 영상이 해당 플랫폼이 지원하는 코덱으로 변환되어한다. 코덱(codec)은 어떠한 데이터 스트림이나 신호에 대해, 인코딩이나 디코딩, 혹은 둘 다를 할 수 있는 하드웨어나 소프트웨어를 일컫는다. 또, 이를 위한 알고리즘을 가리키는 용어로도 쓰인다.일반적으로 코덱이라고 하면 영상, 음향 등 미디어 정보를 압축하는 기술을 가리킨다.- 위키피디아- 코덱을 통해 영상의 데이터 스트림을 디코딩이 가능하게 압축한다.이때 비손실 코덱의 경우 원본의 정보를 그대로 살려 압축하기 때문에 압축률이 높지 않다.데이터가 커질수록 네트워..
인증서를 사용하는 목적 암호화가 없는 패킷은 그 내용이 외부에 모두 드러날 수 있다.VPN은 암호화 통신의 방식 중 하나이지만, 모든 클라이언트에게 VPN을 연결하는 서비스는 말이 안 된다. 따라서 인증서를 통한 암호화가 서비스 오픈에는 필수적이다.HTTPS를 위한 CA를 구현해 보자. 구현에 집중하기 위해 모두 같은 네트워크를 사용하여 통신하게 하자.CA: 100.1.2.6Server: 100.1.2.4Window client: 100.1.2.7 SSL과 TSL를 제공하는 OpenSSL 지금까지 ssh 접속을 위해 사용하던 openssl에 대해서 알아보자. OpenSSL은 암호화와 보안 프로토콜을 구현하는 오픈 소스 라이브러리이다. TLS(Transport Layer Security) 프로..
* 정적으로 디스크 크기를 세팅한 경우에만 해당한다. * VM을 사용하다보면 용량이 부족해질 때가 있다. 특히 도커를 사용하면 용량이 순식간에 부족해진다. 현재 최상위 디렉토리의 용량이 100%로 사용 중이다. 100%가 사용되면 명령어 조차 먹지 않을 때가 있으므로 VM의 저장소 용량을 늘려보자. 도구 -> 가상 미디어 관리자 해당 VM에 장착된 vdi의 용량을 늘린다. 이처럼 정적으로 세팅된 경우 용량을 늘려줄 수 있다. 하지만 적용을 누른다고 VM에서 용량이 바로 증가하진 않기 때문에 free 용량을 사용하는 명령어를 넣어 어야 한다. sudo lvextend -r -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv 논리 볼륨의 크기를 확장하려면 lvextend 명령..
HSRP 실습하기 GNS3 구성 일단 모두 OSPF로 라우팅 경로를 전달하자. 지금 R1이 R5로 가는 길은 ISP1로 가게 되어, 하나로 수렴되어 보인다. 즉, 경로상으로 베스트 페스로 잡혀있음. Client PC의 문제 상황 client인 PC는 GW를 하나만 가질 수 있다. 일단 PC의 GW를 R1으로 잡자. 가는 경로를 trace로 파악해 볼 수 있다. 경로를 파악해보면 베스트 path로 진행되고 있다. 장애 강제 유발 시키기 지금은 PC의 게이트웨이(GW1)가 끊기면 통신 장애가 발생할까? 일단 R1 S1/0 인터페이스를 down 시켜도, OSPF에 의해 대체경로인 R2로 트래픽을 보내서 R5의 Loop back과 통신이 된다. 이는 라우팅의 동적 이중화였기 때문에 가능했다. 하지만 반대로 PC..
SLA(Service Level Agreement) 헬스 체크는 로컬 장비를 넘어갈 수 없다. ISP가 관리하는 저 너머는 장애가 나더라도 알 방도가 없다. 따라서 저 너머의 상태확인에는 추가적인 서비스가 필요하다. 이때 사용하는 것이 SLA이다. SLA란, Service Level Agreement의 약자로, 서비스 제공자와 이용자 간에 합의된 서비스 수준을 명시한 계약이다. 기본적으로 SLA는 서비스 제공자가 제공할 서비스의 품질과 성능에 관한 규정을 정의한다. 이를 통해 이용자는 서비스 제공자에게 기대하는 수준을 명확히 알 수 있으며, 서비스 제공자는 이에 부응하여 고객에게 신뢰성 있는 서비스를 제공할 수 있게 된다. 요약하자면, SLA는 서비스 제공자와 이용자 간의 합의된 서비스 수준을 정의한 계..
이중화 네트워크의 경로를 2개 이상으로 만들어, 특정 경로 장애 발생 시 다른 경로를 사용하여 서비스에 지장이 없도록 하는 것을 말한다. 이중화의 목적 시스템의 장애로부터 가용성을 높이기 위하여 장비 및 연결을 다중화. 장애가 발생하면 준비된 장비를 서비스에 투입함으로써 짧은 시간 내에 서비스 복구가 가능하게 함. 서버 혹은 인프라 운영시 업데이트 및 설정 변경 등으로 시스템 서비스 사용 불가시 이중화를 통한 무중단 서비스 가능. 1. Fail over : 시스템 대체 기능 - 서버 또는 시스템의 장애가 발생하혀 서비스 중단이 발생할 경우 대체 장비(서비스)가 동잗하여 서비스를 지속성을 유지하게 하는 것. - 피해 최소화의 목적. 2. 로드밸런스 부하 분산 - 두 개 이상의 연결 또는 서비스 사용 시 특..
이중화 네트워크의 경로를 2개 이상으로 만들어, 특정 경로 장애 발생 시 다른 경로를 사용하여 서비스에 지장이 없도록 하는 것을 말한다. 예를 들어 아래에서 R1에서 R2로의 최단 경로에 장애가 발생시, 이중화가 없다면 R1에서 R2로의 트래픽이 전혀 전달될 수 없다. 만약 백업 경로를 R1 -> R3 -> R2 로 설정해 두었다면, 장애 발생 시에도 통신을 원활히 진행할 수 있다. 이중화 구현 종류 Link Aggregation (이더채널, 티밍 등) 을 사용한 링크의 이중화 Spanning-Tree 를 활용한 Layer2 경로의 이중화 듀얼포트 LAN 카드를 활용한 링크의 이중화(Client , Server) GATEWAY의 역할로 사용되는 장비를 이중화하는 Gateway 이중화 라우팅 프로토콜을 활..
VPN 본점과 지점을 연결하는 전용 회선망을 설치하는 것은 비용이 높을 뿐만 아니라 시간도 오래 걸린다. 공용망을 사설망처럼 사용하기 위해 사용하는 것이 바로 가상 사설망인 VPN(Virtual Private Network)이다. VPN은 공중망의 저렴한 비용과 사설망의 안정성을 동시에 갖는다. 단순히 말하면 공용 망에서 데이터 암호화로 주고받아서 마치 사설망처럼 사용하는 기술이다. 필요한 구성 요소 터널링 기술(ex: PPTP, IPSEC : 계층별로 터널링 프로토콜이 존재) 키 관리 기술(키 관리 프레임워크, ex: ISAKMP) VPN 기술 분류 방화벽 기반 라우터 기반 전용 하드웨어 기반 전용 소프트웨어 기반 터널링 터널링 프로토콜 종류 설명 터널링 되는 데이터를 페이로드(Payload) 라고 부..