siklog
[NCP/Network] NCP Classic Load Balancer 에서 SSL Offloading 구성 본문
일반적인 상황에서 SSL (Secure socket layer) 인증은 3-way Handshake의 과정을 거친다. ex)HTTPS
1. Client > Server : TCP SYN
2. Server > Client : TCP SYN ACK
3. Client > Server : TCP ACK
3-way Handshake를 통해 안전하게 통신이 가능하지만 이 작업은 생각보다 많은 resource를 사용하게된다.
때문에 성능을 향상시키기 위해 대부분의 서비스의 경우 API 서버군 앞에 Proxy 서버를 두고 해당 Proxy 서버에 SSL 관련 작업을 위임한다.
Proxy 서버를 거친 데이터는 decrpty 되어 HTTP 통신을 하게 되므로 HTTPS를 사용해 통신하는 것 보다 빠른 속도로 통신하게 되고, 이와 같은 전략을 일반적으로 SSL offloading 이라고 부르며, 이를 통한 이점은 다음과 같다.
1) 웹 서버가 더 이상 SSL encrpty/decrpty 에 신경쓰지 않게 되어 해당 resource 를 다른 작업에 사용할 수 있게 된다.
2) 웹 버의 속도를 높여줌으로써 사용중인 웹 서버의 수를 늘리지 않고 웹사이트가 클라이언트의 요청을 더욱 잘 처리할 수 있게 된다.
- 따라서 Load Balancer 에 SSL Offloading 기능을 사용하면,
- 80 포트로 LB에 붙지만 그 이후로는 https로 통신이 이루어짐.
- 인증서가 각각의 서버에는 없다. (LB에 있음)
- 443 포트 설정이 안되어 있다. 즉, 인증서가 바인딩 되어 있지 않다.
- 인증서를 일괄 관리할 수 있어 효율적이다.
- 위와 같은 이유로 NCP Classic Load Balancer 에서 SSL 구성할 경우,
Load Balancer 포트와 서버포트를 동일하게 '443'으로 설정하지 않고, 서버포트는 '80' 포트로 설정하는 것을 권장하고 있다. (아래 형식으로 전달됨)
* SSL Offloading 방식으로 SSL 인증을 처리하고 있기에 Load Balancer와 연결된 서버에는 중복으로 SSL 설정을 할 필요가 없기 때문.
X-Forwarded-Proto : http|https
X-Forwarded-Port : Load Balancer Port
- 직접 설정 후 간단히 테스트해본 결과 아래와 같이 redirect 된 것을 확인할 수 있다.
- 만약, 443 포트로만 redirect 되어 Too many redirects 발생이 우려될 때는 아래 형식대로 각자 포트 끼리 redirect 설정을 하여도 사용에는 문제없다.
* 단, 웹 서버에서 리스너 설정은 따로 해주어야한다.
Load Balancer 80 -> 웹서버 80
Load Balancer 443 -> 웹서버 443
'클라우드 > NCP' 카테고리의 다른 글
[NCP/Security] NCP CDN Security Token 발급 및 사용 방법 (0) | 2022.05.09 |
---|---|
[NCP/Certificate Manager] 외부 SSL 인증서 등록 방법(feat. Let's Encrypt) (0) | 2022.04.24 |
[NCP/콘솔 사용법] Object Storage 특정 버킷에 대한 서브 계정 권한 설정방법 (0) | 2022.04.06 |
[NCP/Network] IPsec VPN을 이용한 NCP to AWS MultiCloud 구성 방법 (0) | 2022.04.03 |
[NCP/Network] PCS를 활용한 Active-Stanby 구조 HA cluster 구성 방법 (4) | 2022.03.26 |