forDevLife
[TIL]11/12 - Forward Proxy, Reverse Proxy, Load Balancer 본문
10분 테코톡 + 추가 정리입니다.
아파치 웹서버는 mod_proxy라는 모듈에서 foward / reverse proxy 두 가지 기능을 제공하며, nginx는 필요한 기능만 제공하는 고성능 웹 서버에 맞게 reverse proxy만 제공한다. 이 차이에 대해서 알아보자.
1. Proxy Server
- 대신 처리하는 서버
- Proxy는 클라이언트, 서버 사이에 있는 중계 서버로, 통신을 대리 수행한다.
- 캐시 / 보안 / 트래픽 분산 등의 장점을 갖는다.
- Forward / Reverse Proxy가 있다.
2. Forward Proxy
- 일반적인 Proxy
- Client와 Internet 사이에 존재한다.
- 회사 내부 인트라넷에서 인터넷 상에 있는 서버에 요청할 때, 먼저 Forward Proxy 서버를 호출하게 된다.
- 특징 1 : 캐싱
- 클라이언트가 요청한 내용을 캐싱
- 다음 클라이언트가 동일 내용 요청 시, Forward Proxy에서 응답해준다.
- 전송 시간 절약, 외부 요청 감소하여 네트워크 병목현상 방지 가능 - 특징 2 : 익명성
- 클라이언트가 보낸 요청을 감춘다.
- Server는 응답 받은 요청을 누가 보냈는지 알지 못하게 한다.
- Server가 받은 요청 IP = Proxy IP
3. Reverse Proxy
- Internet과 Server 사이에 위치한다.
- 내부 인트라넷에 있는 서버를 호출하기 위해서 인터넷 망에 있는 클라이언트가 리버스 프록시 서버에 요청하여 응답을 받는다.
- 특징 1 : 캐싱 (Forward와 동일)
- 특징 2 : 보안
- 서버 정보를 클라이언트로부터 숨김
- 클라이언트는 Reverse Proxy를 실제 서버라고 생각하고 요청한다. 따라서 Server의 IP가 노출되지 않는다. - 특징 3 : Load Balancing
- 하는 경우도 있고, 하지 않는 경우도 있으므로, 뒤에서 설명한다.
- 내부 네트워크와 인터넷 사이를 DMZ(Demilitarized Zone)이라고 하며, 이 구간에는 메일 서버, 웹 서버, FTP 서버와 같은 외부 서비스를 제공하는 서버가 위치하게 된다.
- WAS를 DMZ에 놓게 되면, WAS가 해킹당할 경우 이와 연결되어 있는 DB서버도 해킹당할 우려가 있다.
- 따라서 리버스 프록시 서버를 DMZ에 두고, 실제 서비스는 내부에 위치시킨다.
- WEB(Apache, nginx) - WAS(Tomcat) 분리 형태로 구성하게 되며, WEB 부분이 reverse Proxy가 된다.
4. Load Balancer
- Load Balancing
- 부하 분산 역할 (해야 할 일을 나눠서 서버에 요청을 분산시킴) - 나타난 배경?
1. 사용자가 늘어나면서 서버 하나에 부담이 생기게 된다.
2. Scale Up(하드웨어 성능 높이기)로 해결
3. 사용자가 더욱 늘어남
4. 여러 대의 Server가 나누어 일을 하도록 하자.
5. 중간에 LB를 두고, Server로 분산시켜준다. - Load Balancer 종류
- L2 : Mac 주소를 바탕으로 Load Balancing
- L3 : IP 주소를 바탕으로 Load Balancing
- L4 : Transport Layer(IP & Port) Level에서 Load Balancing(TCP / UDP)
예를 들어, https://new-age-jh.tistory.com으로 접근 시 서버 A, 서버 B로 로드밸런싱(나눠줌)
- L7 : Application Layer(User Request) Level에서 Load Balancing(Https/Http/FTP)
예를 들어, https://new-age-jh.tistory.com으로 접근 시
/category와 /serch를 담당 서버들로 로드밸런싱(나눠줌) : End Point(URL)마다 호출하는 서버 설정 가능
5. 장점
- HTTPS의 인증서 관리를 하나의 프록시 서버가 담당하고, 뒤에 동작하는 서버는 HTTP로 서비스 할 수 있다.
- 이를 통해 서버를 실행할 때마다 인증서를 관리하지 않아도 되는 장점이 있다.
6. 추가 : 네트워크 스위치 종류
- 패킷을 어느 쪽으로 보내야 하는 역할을 해야하는데, 어떠한 정보를 보고 판단하는지에 따라 Layer가 구분된다.
- 1. L1 기능(허브, 더미 허브)
: 허브는 모든 랜선에 꽂힌 포트에 동일한 정보를 보내는 장비이다. OSI 7계층 중 1계층이 물리 계층이므로 L1 스위치라고 부른다.
: 패킷 충돌 가능성이 있어 네트워크 통신이 잘 되지 않는다. 구시대 장비이다. - 2. L2 기능(스위칭 허브, 스위치) - MAC 정보를 기반으로 스위칭한다.
: 각 포트 별 bandwidth가 부여되고, 디바이스의 mac 주소를 알고 있다. - 3. L3 기능(라우터, 공유기) - MAC + IP(Routing Table) 정보를 보고 스위칭한다.
: Layer 3인 TCP/IP를 이용한다. 즉 L2 스위치에 L3 라우팅 기능이 같이 있는 스위치이다.
: 집에서 사용하는 공유기는 해당 기능을 가지고 있다.
: 추가로 wifi(무선 AP-Access Point)기능이 있다.
: L3 스위치는 기업용, 공유기는 가정용이라고 생각하자. - 4. L4 기능(로드 밸런싱) - IP+Port(Session or Connection)를 보고 스위칭한다.
: 네트워크 패킷을 지정해둔 포트들로 분산하여 나누어준다.
: 실제 온라인 서비스는 대부분 최소 2개 이상의 같은 서버들로 분산처리되게끔 구성되어 있다. - 5. L7(네트워크 보안 장비) - Application data(Contents)를 보고 스위칭한다.
: L5, L6가 여기에 포함된다.
: 패킷을 분석해서 어떤 데이터인지 알 수 있다. (http 프로토콜을 파싱해서 어느 url에 접속하는 지 알아낼 수 있다.)
: 해커의 공격을 잡아내는 웹 방화벽, 보안 스위치에 해당한다.
: L4와 비교해서 더 정교한 로드밸런싱이 가능하다. (Traffic filter, Security, VPN) - 기본적으로 상위 레이어 스위치는 하위 레이어 스위치의 기능을 모두 할 수 있다.
다만 실제 서비스 시에 자신의 주력 기능만 수행하도록 한다.
6. 출처
- 유튜브 : https://www.youtube.com/watch?v=YxwYhenZ3BE
- https://www.imperva.com/learn/performance/reverse-proxy
- 네트워크 스위치 종류 : https://nhj12311.tistory.com/75
'각종 회고' 카테고리의 다른 글
[WIL] 2022년 2주차 회고 (0) | 2022.01.16 |
---|---|
[WIL] 2022년 1주차 회고 (1) | 2022.01.09 |
[TIL]11/10 - 웹소켓 & 스프링 (0) | 2021.11.10 |
[TIL]9/15 - AOP (0) | 2021.09.29 |
[TIL]9/15(5일차) - WEB2 : OAuth 2.0 (0) | 2021.09.15 |
Comments