프록시는 '대리'의 개념으로 알아두자.
클라이언트와 서버간의 중계 서버로, 통신을 대리 수행하는 서버이다.
프록시 서버는 캐시/보안/트래픽 분산 등의 장점을 가진다.
일반적인 프록시를 의미한다.
가령 인터넷 속도를 향상시키기 위해 프록시 설정을 한다던지..
해커가 개인정보를 빼돌리고 IP추적 방지를 위해 프록시를 설정했다던지 등등.. 이 모두 포워드 프록시를 의미한다.
포워드 프록시는 클라이언트와 인터넷 사이에 위치한다.
포워드 프록시의 특징의 첫 번째로 캐싱이 있다.
클라이언트가 요청한 내용을 캐싱해두어 여러가지 부가적인 효과를 나타내게 된다.
예를 들어 위의 사진에서 하나의 컴퓨터가 서버에 오늘 날씨가 어떤지 요청을 하면 서버는 비가온다고 응답을 했다고 하자.
그럼 포워드 프록시는 이러한 내용들을 캐싱해둔다.
이후 또 다른 컴퓨터가 오늘 날씨가 어떤지 요청을 하면 서버로 거치지 않고 포워드 프록시가 즉시 응답을 해준다.
이는 전송 시간을 절약하며 외부 요청이 감소하여 네트워크 병목 현상을 방지할 수 있다.
포워드 프록시의 두 번째 특징인 익명성이 있다.
익명성은 클라이언트의 요청을 감추는 역할을 한다.
클라이언트 측에서 서버에 요청을 할 때 포워드 프록시를 거치면 서버는 프록시가 요청을 보낸 것으로 인식하게 된다.
즉, 서버가 받은 요청 IP는 클라이언트의 IP가 아니라 프록시 IP가 되는 것이다.
리버스 프록시는 포워드 프록시와 다르게 인터넷과 서버 사이에 위치한다.
포워드 프록시와 동일하므로 생략한다.
리버스 프록시의 특징인 보안은 서버 정보를 클라이언트로부터 숨길 수 있다.
클라이언트는 리버스 프록시를 실제 서버라고 생각하여 요청을 하므로 실제 서버의 IP가 노출되지 않는다.
로드 밸런싱은 해야 할 작업을 나누어 서버의 부하를 분산시키는 것을 의미한다.
이를 행하는 주체가 로드 밸런서이다.
로드 밸런서는 수많은 요청을 서버에 나눠 준다.
사용자가 적은 서비스는 하나의 서버로도 운영이 가능하다.
하지만 이 서비스가 인기가 많아져 사용자 수가 엄청나게 증가했다고 가정을 하자.
그럼 하나의 서버로 운영하기엔 과부하가 걸릴 것이다.
그래서 스케일 업을 통해 운영하고 있던 서버의 성능을 올렸다고 가정하자.
하지만 이러한 스케일 업은 한계가 있다.
이럴 때는 여러 대의 서버가 나누어서 일을 할 수 있도록 해야 한다.
이러한 역할을 위해 로드 밸런서를 사용한다.
로드 밸런서의 종류로는 L2, L3, L4, L7이 있다.
L2는 MAC 주소를 바탕으로 로드 밸런싱을 한다.
L3는 IP 주소를 바탕으로 로드 밸런싱을 한다.
L4는 전송 계층에서 로드 밸런싱을 한다.
L7는 응용 계층에서 로드 밸런싱을 한다.
https://www.youtube.com/watch?v=YxwYhenZ3BE
위 내용을 정리했습니다.