[VPC/L4/L7 LoadBalancer] #1 VPC와 LB, Nginx 세팅

김진만·2023년 8월 9일
0

IPv4 대역 일부를 이용
사설망, Private Network
24비트 블록 10.0.0.0 ~ 10.255.255.255 -> 2^24개
00001010 00000000 00000000 00000000
20비트 블록 172.16.0.0
10101100 00010000 00000000 00000000
16비트 블록 192.168.0.0
11000000 10101000 00000000 00000000

VPN 2가지 종류

IPsec VPN Layer3 Site to Site (본사와 자사)

SSL VPN Layer4 Client to Site (사용자가 어느 장소에서든 접근 가능)

IPSec(Internet Protocol Security)

운용 모드

  • Transport Mode:단말 to 단말

  • Tunnel Mode: VPN to VPN

    Origin IP Header(사설 IP)를 캡슐화하고 IP 패킷 전체를 인증 혹은 보호하며, VPN 장비가 이를 도맡아 하므로 사설 네트워크와 사설 네트워크 간 통신을 가능케 합니다.

L2,L3, L4, L7

상위 계층을 활용할 수 있는 장비들은 모두 하위 계층 또한 이해하고 활용할 줄 알아야 한다.
"L4 Virtual Server는 TCP/UDP만을 다루는 로드밸런서이고, L7 Virtual Server는 주로 HTTP/HTTPS만을 다루는 로드밸런서 아닌가요?"

<Layer 4와 Layer 7(출처 : https://www.freeism.co.kr/wp/archives/698)>
상위 레벨의 프로토콜 이해 없이 TCP/UDP 로드밸런싱이 필요하면 L4 Virtual Server를 사용하면 됩니다. HTTP를 비롯한 Layer 7 헤더 해석이 필요하다면 L7 Virtual Server를 사용하면 되겠죠.

  • layer7 헤더해석이 필요없는 트래픽은 layer4에서 밸런싱 하고 끝
  • HTTP는 TCP 기반의 프로토콜입니다. 그렇기 때문에 HTTP 통신을 하기 위해서는 반드시 3-way handshake를 실시하여 신뢰성 있는 연결을 생성하여야 합니다. 그다음에 HTTP GET을 통해 리소스를 얻어오거나 POST를 통해 업데이트를 실시하는 것입니다.

L4 Load Balancing

  • IP와 Port를 활용하여 서버부하분산

L7 Load Balancing

  • IP와 Port를 사용하여 로드밸런싱을 하는 것은 같으나 Layer 7 프로토콜을 통해 사용자 정의 로드밸런싱을 실시하거나 Layer 7 프로토콜 헤더를 조작 / 활용할 수 있다는 특징이 있습니다.
  • DNS 는 TCP/ UDP 모두 사용. 기본적으로 UDP 이지만, 전달해야 하는 패킷의 크기가 512bit 를 넘는다면 TCP를 사용, DNS를 제대로 Load Balancing 하기 위해서는 TCP/UDP Virtual Server 모두 생성해야함.

Client - Web Server - BackEnd

  • Client와 Nginx 사이에는 https
  • Nginx와 django(web framework) 사이에는 http
  • 성능: HTTPS는 암호화와 인증 과정이 필요하기 때문에 CPU 사용량이 높을 수 있습니다. 클라이언트와 Nginx 사이에서만 HTTPS를 사용하면, 이 오버헤드를 한 번만 처리하면 되어 백엔드에서의 추가 부하를 피할 수 있습니다.
  • 단순화: HTTPS 인증서 관리와 SSL/TLS 설정은 복잡할 수 있습니다. 이러한 설정을 Nginx에서만 처리하면 백엔드 설정이 더 간단해집니다.
  • 보안: Nginx와 Django가 같은 호스트 또는 동일한 내부 네트워크 내에서 실행되고 있다면, 내부 트래픽은 이미 보안된 환경 내에 있으므로 HTTPS로 암호화할 필요가 없을 수 있습니다.
  • Nginx 설정에서 이런 구성을 사용할 때, proxy_pass 지시어는 http로 시작하는 URL을 대상으로 합니다. 예를 들면:
    nginx
    Copy code
    location / {
        proxy_pass http://127.0.0.1:8001;
        # ... (나머지 proxy_set_header 설정들)
    }
profile
충분한 전기와 컴퓨터 한 대와 내 이 몸만 남아 있다면 지구를 재건할 수 있습니다.

0개의 댓글