일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ccw 알고리즘
- PROJECT
- 백준 32029번
- 게임 서버 아키텍처
- 백준 32028번
- 지금 자면 꿈을 꾸지만
- localstorage
- string
- ucpc 2024 예선 e번
- Express.js
- html5
- JavaScript
- MySQL
- map
- branch
- ERD
- 더 흔한 색칠 타일 문제
- pm2
- ucpc 2023 예선 d번
- router
- Github
- Prisma
- Next
- 그리디
- 백준 28303번
- MongoDB
- insomnia
- 자바스크립트
- ucpc 2023 예선 i번
- HTTP
Archives
- Today
- Total
dh_0e
[특강] 로드 밸런싱, 대칭 키 암호화 방식, 공개 키 암호화 방식 본문
가용성
- 컴퓨터 시스템이 특정 기능을 실제로 수행할 수 있는 시간의 비율
- 전체 사용 시간 중에서 정상적인 사용 시간을 의미
- Uptime: 정상적인 사용 시간
- Downtime: 시스템을 이용할 수 없는 시간
- 가용성을 높이기 위해 Downtime을 줄여야만 함
이중화
- 무언가를 이중으로 두는 기술
- 서버 컴퓨터, 네트워크 인터페이스, 스위치와 같은 물리적 장비 뿐만 아니라 DB, 서버 프로그램 등도 이중화의 대상
- 이중화할 수 있는 대상은 대부분 문제가 발생할 경우 시스템 전체가 중단될 수 있는 대상임
- 이를 단일 장애점(SPOF)이라 부르며 이를 없애야 가용성이 높아짐
액티브/스탠바이
- 액티브 상태인 시스템에 문제가 발생할 경우 스탠바이 시스템이 자동으로 액티브 시스템을 대신하여 동작
- 안전한 구성 방식이지만 두 장비가 동시에 가동되지 않고, 한 번에 하나만 가동되므로 성능상 비효율적임
- 페일오버(failover): 액티브 시스템에 문제가 생겼을 경우 예비된 스탠바이 시스템으로 자동 전환되는 기능
액티브/액티브
- 두 시스템 모두를 가동 상태로 두는 방식
- 부하를 분산시킬 수 있고, 두 시스템이 함께 가동되므로 성능상의 이점도 있음
- 한 시스템에 문제가 발생하면 순간적으로 다른 시스템에 부하가 급증하고, 추가적인 문제가 발생할 수 있음
Vertical Scale-up
- 서버 자체의 성능을 올림
- 서버의 수가 적기 때문에 관리가 편함
- 단일 서버에서 이뤄져 지연이 거의 없음
- 확장의 한계가 있음
- 서비스 마비가 오기 쉬움
Horizontal Scale-out
- 서버의 개수를 늘림
- 이론적으로 무한히 확장 가능
- 분산처리의 장점 서버 몇 개가 다운되도 전체 서버에 영향을 크게 주지 않음
- 설계, 관리가 어려움
- 로드밸런싱, 데이터분산, 동기화를 처리해야함
로드 밸런싱 (Load Balancing)
- 네트워크나 애플리케이션 서버에서 작업 부하를 여러 서버로 분산하여 처리하는 기술
- 이를 통해 시스템의 효율성과 성능을 최적화하고, 단일 서버에 과부하가 걸리는 것을 방지
- 고가용성을 요구하는 호스트는 일반적으로 클라이언트보다 서버임
- 서버를 다중화했더라도 트래픽을 고르게 분산해야 가용성이 높아짐
- 이를 위해 사용되는 기술으로 L4 스위치, L7 스위치라 불리는 네트워크 장비로도 수행할 수 있지만, 로드 밸런싱 기능을 제공하는 소프트웨어를 설치하면 일반 호스트도 로드 밸러서로 사용 가능
- L4( Layer4): 패킷 레벨에서의 빠르고 효율적인 처리, 대용량 처리에 주로 사용됨
- L7(Layer7): HTTP, HTTPS, FTP 별도의 요청을 각각 다른 서버에 라우팅할 수 있음 (세션관리역할)
로드 밸런서 (Load Balancer)
- 트래픽의 흐름을 분배해주는 장치
- 일반적으로 이중화나 다중화된 서버와 클라이언트 사이에 위치
- 클라이언트들은 로드 밸런서에 요청을 보내고, 로드 밸런서가 해당 요청을 각 서버에 균등하게 분배함
특징
- 헬스체크: 서버의 상태를 주기적으로 확인, 트래픽 할당 관리
- 알고리즘 분석처리
- NAT: IP를 바꿔 서버를 호출하여 프록시 역할을 함
- DSR: 서버가 로드밸런서를 거치지 않고 클라이언트에게 직접 데이터를 줌, 보안상 가상 IP를 부여
- 세션 관리: 게임이 진행중인 올바른 서버로 요청을 보내줌
- 자동 확장: 서버에 과부하가 예상되면 자동으로 서버를 추가, 유저가 줄어들면 자동으로 서버를 줄임
- 성능 모니터링: 각 서버의 성능을 체크하여 최적의 트래픽을 할당함
로드 밸런싱 알고리즘
- 라운드로빈 방식: 각 서버에 차례대로 트래픽을 할당해줌
- 가중 라운드로빈 방식: 성능이 다른 서버에 중요도에 기반하여 가중치를 매겨 분할
- IP 해시 방식: 해시된 값을 기준으로 한 클라이언트는 항상 같은 서버에 연결해줌
- 최소 연결 방식(Least Connections): 서버에 연결된 수가 가장 적은 서버로 연결해줌
- 가중치가 없으므로 서버의 성능에 따라 분할이 불가
- 불필요한 분할이 생길 수 있음
- Random 알고리즘: 상남자 알고리즘
- 보안 취약점 부분에서 강점을 나타냄
대칭 키 암호화 방식
- 데이터의 암호화 및 복호화에 동일한 키를 쓰는 방식
- 키를 보유한 사용자만 데이터 내용을 확인할 수 있음
- 공개 키(비대칭 키) 암호화 방식보다 속도가 빠름
- 송수신자 간의 키 교환이 반드시 필요함
- 키가 탈취되는 경우 매우 취약해짐
비대칭 키 암호화 방식 (공개 키 암호화 방식)
- 데이터의 암호화 및 복호화에 다른 키를 쓰는 방식
- 모든 사용자가 접근 가능한 키인 공개 키와 각 사용자만 접근 가능한 개인 키 쌍으로 구성됨
- 해당 사용자만 개인 키로 데이터를 복호화하여 그 내용을 확인할 수 있음
- 송수신자 간의 키 교환이 필요 없음
- 개인 키의 공유가 필요 없기에 키 탈취에 안전함
- 대표적으로 RSA 알고리즘이 있음
- 대칭 키 암호화 방식보다 속도가 느림 (CPU 리소스 소모가 큼)
이 두 암호화 방식의 장점만을 합친 것이 TLS 암호화 방식
'내일배움캠프 > 특강' 카테고리의 다른 글
[특강] CI/CD (0) | 2024.07.08 |
---|---|
[과제] 삼각함수, 역삼각함수 (+티스토리 수식 넣는 법) (0) | 2024.07.01 |
[특강] 응용 계층? DNS? HTTP? (0) | 2024.06.21 |
[과제] 전송 계층, TCP/UDP, TCP 오류, 흐름, 혼잡 제어 (0) | 2024.06.18 |
[특강] 샤딩(Sharding) (0) | 2024.06.11 |