일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 코드 계약
- 디버깅
- 레디스 동시성
- BFS
- 구현
- 수신자 대상 다르게
- 완전탐색
- piplining
- AWS
- 셀러리
- 좋은 코드 나쁜 코드
- spring event
- 결제서비스
- branch 전략
- 프로그래머스
- gRPC
- 카카오
- jwt 표준
- 백준
- 검색어 추천
- 쿠키
- 숫자 블록
- 이분탐색
- 트랜잭샨
- 알람 시스템
- 깊게 생각해보기
- 누적합
- docker
- prg 패턴
- 객체지향패러다임
- Today
- Total
코딩관계론
AWS - Cross-Zone Load Balancing & SSL / TLS & SNL 본문
Cross-Zone Load Balancing
목적
Cross-Zone Load Balancing의 목적은 로드 밸런서가 여러 가용 영역에 걸쳐있는 인스턴스에 대한 트래픽을 조절하고 분산시키기 위한 것입니다. 예를 들어, 로드 밸런서와 인스턴스가 서로 다른 가용 영역에 위치한 경우, Cross-Zone Load Balancing을 사용하면 로드 밸런서가 각 가용 영역의 인스턴스에 대한 트래픽을 균등하게 분산시킬 수 있습니다. 이를 통해 애플리케이션의 가용성을 향상시키고 지연 시간을 최소화할 수 있습니다.
아래 이미지를 보시면 Cross-Zone Load Balancing기능이 활성화 되면 가용영역이 달라도 각 인스턴스들에게 트레픽이 분산되고, Cross-Zone Load Balancing이 꺼져있다면 로드밸런서에게만 트레픽이 분산되어 인스턴스마다 감당하는 트레픽이 달라집니다.
SSL / TLS
목적
로드 밸런서에서 SSL/TLS를 사용하면 클라이언트와 로드 밸런서 간의 통신, 로드 밸런서와 백엔드 인스턴스 간의 통신을 모두 암호화할 수 있습니다. 이를 통해 데이터의 기밀성과 무결성을 보장할 수 있습니다. SSL/TLS를 사용하면 중간자 공격 등의 보안 위협으로부터 안전한 통신을 할 수 있습니다.
핸드쉐이크 방법
- 클라이언트가 서버에게 Client Hello 메시지를 보냅니다. 이 메시지에는 클라이언트가 사용 가능한 암호화 방식 및 클라이언트의 랜덤 데이터가 포함됩니다.
- 서버는 Client Hello 메시지를 받고 Server Hello 메시지를 클라이언트에게 보냅니다. 이 메시지에는 서버가 선택한 암호화 방식, 서버의 랜덤 데이터, 서버 인증서와 같은 정보가 포함됩니다.
- 서버는 클라이언트에게 자신의 인증서를 보내고, 클라이언트는 이 인증서가 신뢰할 수 있는지 확인합니다.
- 클라이언트는 서버에게 Pre-master Secret 메시지를 보냅니다. 이 메시지는 세션 중 사용할 대칭 암호화 키를 생성하기 위한 임시 데이터입니다. 클라이언트는 이 메시지를 서버의 공개 키로 암호화하여 전송합니다.
- 서버는 Pre-master Secret 메시지를 받아들이고 세션 중 사용할 대칭 암호화 키를 생성합니다.
- 클라이언트와 서버는 이제 핸드쉐이크 단계를 마쳤습니다. 이제 SSL/TLS 연결이 설정되었으며, 클라이언트와 서버 간의 모든 통신은 암호화되어 전송됩니다.
로드밸런서의 SNI(Server Name Indication) 기능은 클라이언트가 접속하는 도메인 이름을 기반으로 SSL/TLS 인증서를 선택하는 기능입니다.
기본적으로 로드밸런서는 하나의 SSL/TLS 인증서만을 사용하여 모든 도메인에 대한 암호화 통신을 수행합니다. 하지만 SNI 기능을 사용하면 로드밸런서가 클라이언트 요청에 따라 여러 개의 SSL/TLS 인증서를 사용할 수 있습니다. 이를 통해 하나의 로드밸런서에서 여러 개의 도메인을 처리할 수 있으며, 다수의 도메인을 처리할 경우 서버 비용을 절약할 수 있습니다.
단, SNI 기능은 클라이언트와 서버가 모두 SNI를 지원해야만 사용할 수 있습니다. SNI를 지원하지 않는 클라이언트는 로드밸런서에서 기본 SSL/TLS 인증서를 사용하게 됩니다. 또한, SNI를 사용할 경우 인증서를 선택하는 추가적인 과정이 필요하므로 약간의 성능 저하가 발생할 수 있습니다.
'AWS' 카테고리의 다른 글
AWS - Amazon Relational Database Service (RDS) (0) | 2023.04.03 |
---|---|
AWS - Auto Scaling Group (ASG) (0) | 2023.04.02 |
ELB - Session Persistence (0) | 2023.04.02 |
AWS - Elastic Load Balancer (0) | 2023.04.02 |
AWS - 고가용성과 확장성이란? (0) | 2023.03.29 |