Forest Gump?

SSL,SNI, Connection Draining 이란? 본문

네트워크

SSL,SNI, Connection Draining 이란?

code1010 2023. 8. 8. 13:02

 

SSL/TLS 이란?

 

 

 

SSL 인증서를 이용하면 데이터를 전송할 때 전송 중 암호화(in-flight encryption)가 가능합니다.
SSL은 보안 socket 계층(Secure Sockets Layer)을 의미하며 연결을 암호화 하는 데 사용되고, 만료 일자(expiration Date)이 존재하며 주기적으로 갱신이 필요합니다. 

 

TLS는 SSL의 최신 버전으로, 전송 계층 보안(Transport Layer Security)을 의미하고, 듣던 강의해서는 거의 같은 의미로

쓰인다고 했습니다. 


임의의 도메인 ex) A.com 으로 접속할때, SSL 설정 여부로 브라우저가 자물쇠로 연결이 안전한지 알려주기도 합니다. 

 

 

 

AWS ELB에 SSL 설정시 진행 과정 

 

 

 

 

유저가 HTTPS를 통해 설정한 로드 밸런서와 연결 되면, 내부적으로, 로드 밸런서는 SSL 인증서 종료(termination)라는 작업을 수행합니다. 

그리고 로드 밸런서와 타겟 그룹간의 통신은, 암호화 되지 않은 HTTP 프로토콜 방식을 통해 통신이 되어, 안정성을 보장하기 위해 private VPC를 통해 전송됩니다. 

 

 

이때, SSL 인증서 AWS 가 제공하는 ACM (AWS Certificate Manager) 을 통해 관리되며, 유저가 직접 발급받은 SSL에 있다면 직접 AWS에 업로드하여 사용할 수 있습니다. 

 

 

 

 

 

SNI (Server Name Indication)란?

 

 

 

SNI를 이용하면 여러개의 SSL인증서를 발급해서 단일 웹 서버가 여러 개의 웹 사이트를 제공하도록 할 수 있습니다. SNI는 최신 프로토콜로, 클라이언트가 대상 서버의 호스트명을 초기 SSL handshake 때 지정하도록 해야 합니다.

이는 클라이언트가 연결 하고자 하는 사이트 이름을 써놓으면 서버가 어떤 인증서를 불러와야 하는지 알 수 있게 합니다.

SNI 는 ALB 또는 NLB 그리고 CLoudFront에서만 사용할 수 있는데, 여러개의 인증서를 호스트명마다 가질 수 있습니다. 

 

 

 

클라이언트의 요청이 mycorp.com으로 오면 ,ALB 내부적으로 해당 호스트명에 매핑되는 도메인을 찾아 타겟 그룹으로 보내 정상적으로 작동 시킬 수 있습니다. 

 

 

 

 

 Connection Draining 이란? 

 

 

 

 

ELB 마다 부르는 이름이 다른데, CLB의 경우 Connection Draining이라 칭하며, 그 이외의 많이 쓰이는 ALB나 NLB의 경우

Deregistration Delay 이라고 합니다.


연결이 draining 상태가 되면, 그 인스턴스로는 더 이상 요청을 보내지 않게 됩니다. 

 

이 요청에 관한 설정은, 주로 서버에 요청 소요 시간에 따라 다른데, 최소 0초 에서 3600초까지 조정 가능합니다.

예를 들어, 간단한 HTTP 요청일 경우에는 connection Draining 시간을 짧게 줄 수 있지만, 큰 파일을 업로드 하는 케이스에는 connection Draining 시간을 길게 주어 중간에 요청이 끊어 지지 않게 설정 할 수 있습니다. 

 

위와 같은 화면처럼 설정 가능하며, 설정 안했을 시에 Default connection Draining 시간은 300초입니다. 

 

 

'네트워크' 카테고리의 다른 글

Route53 특성과 정책 정리  (0) 2023.08.10
DNS 정리  (0) 2023.08.09
AWS Sticky Session 과 Cross-Zone Load Balancing 정리  (0) 2023.08.08