Offload
서버나 호스트가 처리하던 무거운 작업을, 별도의 전용 장비나 하드웨어가 대신 떠안아 처리하게 하는 것이다. 네트워크에서 가장 자주 쓰이는 것은 로드밸런서가 암호화를 대신 처리하는 SSL Offload, 그리고 NIC이 패킷 처리를 대신하는 TCP Offload 등이다. 공통 목적은 본래 일을 해야 할 주체(서버 CPU)의 부담을 덜어 서비스 처리에 자원을 집중시키는 것이다.
SSL Offload
가장 대표적인 오프로딩이다. TLS 암호화/복호화는 CPU 사용량이 큰 작업인데, 이걸 각 웹서버가 직접 하면 서버 자원이 암호 연산에 많이 쓰인다. SSL Offload는 로드밸런서(LB)가 클라이언트와의 TLS를 종단(terminate) 하고, 복호화된 평문을 서버로 전달하는 방식이다.
[Client] ──HTTPS(암호화)──> [LB] ──HTTP(평문)──> [Server]
└ 여기서 복호화(종단)
이로 인한 이점은 다음과 같다.
- 서버 CPU 절약: 서버는 암호 연산 없이 서비스 로직에만 집중
- 인증서 중앙 관리: 인증서를 LB 한 곳에만 두면 됨 (서버마다 배포 불필요)
- 트래픽 검사 가능: LB가 평문을 보므로 WAF·L7 라우팅·로깅 등 적용 가능
다만 LB↔서버 구간은 평문이 되므로, 보안이 필요하면 그 구간을 다시 암호화하는 TLS Re-encryption(SSL Bridging) 을 쓰기도 한다.
네트워크의 다른 Offload들
SSL 외에도 "무거운 일을 전용 하드웨어에 넘긴다"는 같은 개념이 여러 곳에 쓰인다. 아래 항목들은 모두 패킷 처리 부담을 줄이는 기술이다. 보통은 NIC 하드웨어가 처리하지만, GRO/GSO처럼 커널에서 처리 부담을 줄이는 방식도 있다.
| 종류 | 무엇을 넘기나 | 어디에서 처리하나 |
|---|---|---|
| SSL/TLS Offload | TLS 암복호화 | 로드밸런서 / 전용 카드 |
| TCP Offload (TOE) | TCP 연결 상태 관리와 프로토콜 스택 처리 | NIC 하드웨어 |
| LRO / GRO | 수신 패킷 병합 | NIC 하드웨어 / 커널 |
| LSO / TSO / GSO | 송신 데이터의 세그먼트 분할 | NIC 하드웨어 / 커널 |
| Checksum Offload | 체크섬 계산 | NIC 하드웨어 |
| RDMA | 메모리 복사·전송 자체 | NIC (커널/CPU 우회) |
RDMA는 가장 극단적인 형태로, 커널과 CPU를 아예 우회해 NIC이 원격 메모리에 직접 데이터를 쓰고 읽는다. HPC·AI 클러스터에서 핵심적으로 쓰인다.
고려할 점
오프로딩은 서버의 부담을 줄여주지만, 그 부담은 로드밸런서나 NIC 같은 다른 장비로 옮겨간다.
- 전용 자원 필요: 일을 떠안는 장비(LB, 전용 NIC)의 성능·용량이 충분해야 한다. 부족하면 그쪽이 새 병목이 된다.
- 단일 지점 집중: SSL Offload는 LB에 부하·인증서·장애가 집중되므로 이중화가 중요하다.
- 구간 평문화: SSL Offload 시 내부 구간이 평문이 될 수 있어, 신뢰 경계 설계가 필요하다.