2025-12-02
오늘 배운 것
07-1 안정성을 위한 기술
가용성
- 가용성 : 컴퓨터 시스템이 특정 기능을 실제로 수행할 수 있는 시간의 비율
- 전체 사용 시간 중에서 정상적인 사용 시간을 의미
- 업 타임 : 정상적인 사용 시간
- 다운 타임 : 정상적인 사용이 불가능한 시간
- 고가용성 : 가용성이 높은 성질
- 파이브 나인스(99.999%)
- 가용성(업타입 / (업타입 + 다운타임))을 백분율로 표기했을때의 안정적인 수준
- 안정적이라고 평가받는 시스템은 99.999% 이상을 목표로 함
- 결함 감내 : 문제가 발생하더라도 기능할 수 있는 으력
이중화
- 이중화 : 무언가를 이중으로 두는 기술
- 예비(백업)를 마련하는 방법
- 이중화 대상
- 서버 컴퓨터, 네트워크 인터페이스, 스위치, 데이터베이스, 웹서버 프로그램 등
- 문제가 발생한 경우 시스템 전체가 중단될 수 있는 대상
- 단일 장애점(Single Point Of Failure)
- 문제가 발생한 경우 시스템 전체가 중단될 수 있는 대상
- 가용성을 높이기 위해서 SPOF를 이중화 하는 것이 좋음
- 액티브 : 가동상태
- 스탠바이 : 액티브의 백업으로서 대기하는 상태
- 이중화 구성 방법
- 액티브/스탠바이 : 한 시스템은 가동하고, 다른 시스템은 백업 용도로 대기 상태로 두는 것
- 액티브 상태인 시스템에 문제가 발생시 스탠바이 시스템이 자동으로 액티브 시스템을 대신하여 동작
- 두 장비가 동시에 가동되지 않고 한번에 하나만 가동되기 때문에 하나의 장비를 사용할 때에 비해 성능상의 큰 변화를 기대하기는 어려움
- 액티브/액티브 : 두 시스템 모두를 가동상태로 두는 구성 방식
- 장점
- 부하를 분산시킬 수 있음
- 두 시스템이 함께 가동되므로 성능상의 이점도 있음
- 단점
- 한 시스템에 문제가 발생하면 순간적으로 다른 시스템에 부하가 급증하고 이로인해 추가적인 문제가 발생할 수 있음
- 다중화 : 무언가를 여러개 두는 기술
- 티밍(윈도우)과 본딩(리눅스)
- 여러개의 네트워크 인터페이스를 이중화/다중화하여 마치 더 뛰어나고 안정적인 성능을 보유한 하나의 인터페이스 처럼 보이게 하는 기술
로드 밸런싱
- 트래픽 : 주어진 시점에 네트워크를 경유한 데이터 양
- 과도한 트래픽의 문제점 ⇒ 가용성을 떨어뜨림
- 높은 부하로 CPU 발열
- 수많은 트래픽 내용을 저장하기에 메모리 공간이 부족
- 제한된 대역폭과 병목 현상으로 응답이 누려지거나 누락
- 프로그램의 일관성 손상
- 다중화를 하더라도 트래픽을 고르게 분산해야 가용성이 높아짐
- 로드 밸런싱 : 트래픽의 고른 분배를 위해 사용되는 기술
- 로드 밸런서에 의해 수행
- L4, L7 스위치
- 로드 밸런싱 기능을 제공하는 소프트웨어(HAProxy, Envoy)
- 로드 밸런싱 알고리즘
- 라운드 로빈 알고리즘
- 단순히 서버를 돌아가며 부하를 전달
- 서버 마다 가중치 부여 가능 → 가중치 라운드 로빈 알고리즘
- 가중치가 더 높은 서버가 더 많이 선택되어 더 많은 부하를 받도록 함
- 서버 간 성능이 다른 경우에 활용
- 최소 연결 알고리즘
- 연결이 적은 서버부터 우선적으로 부하를 전달
- 서버마다 가중치 부여가능 → 가중치 최소 연결 알고리즘
- 가중치가 더 높은 서버가 더 많이 선택되어 더 많은 부하를 받도록 함
- 서버 간 성능이 다른 경우에 활용
- 해시 자료구조이용
- 응답 시간이 가장 짧은 서버 선택하기
07-2 안정성을 위한 기술
- 암호화 : 원문 데이터를 알아볼 수 없는 형태로 변경하는 것 의미
- 복호화 : 암호화된 데이터를 원문 데이터로 되돌리는 과정
암호와 인증서
대칭 키 암호화 방식과 공개 키 암호화 방식
- 대칭키 암호화
- 암호화와 복호화에 동일한 키를 사용
- 장점
- 단점
- 공개키 암호화(비대칭 키 암호화)
- 암호화를 위한 키와 복호화를 위한 키가 다름
- 공개키, 개인키라고 부름
- 공개키로 개인키를 유추하거나 개인키로 공개키를 유추 할 수 없음
- 과정
- A가 B의 공개키 요청
- B는 A에게 공개 키 전달
- A는 전달받은 B의 공개키로 메시지 암호화하여 그 암호문 B에게 전송
- B는 개인키로 암호문을 복호화
- 장점
- 키를 안전하게 공유 가능
- 암호화 및 복호화에 시간과 부하가 상대적으로 많이 소요
- 대칭키 암호화 + 공개키 암호화
- 대칭 키(세션 키)를 안전하게 전달하기 위해 공개키로 대칭키 암호화
- 개인키로 암호화된 대칭키 복호화
- 대칭키를 안전하게 공유하고, 대칭키를 이용해 빠르게 암호화/복호화 가능
인증서와 디지털 서명
- 네트워크에서 사용되는 인증서라는 용어는 일반적으로 공개 키 인증서를 일컫음
- 공개키 인증서
- 공개키와 공개키의 유효성을 입증하기 위한 전자 문서
- 단순히 공개키 하나만 전달받으면 해당 공개키를 신뢰할 수 없기 때문에 인증서를 같이 전송
- 공개키 + 누가 생성 + 조작 여부 + 유효기간이 포함된 정보 전송
- 인증 기관(CA: Certification Authority)
- 인증서의 발급, 검증, 저장과 같은 역할을 수행할 수 있는 공인 기관
- CA가 발급한 인증서에는 공개키 인증서가 진짜라는 보장을 해주는 서명값이 있음
- 서명 값
- 인증서 내용에 대한 해시 값을 ⇒ 지문 이라고 함
- CA의 개인키로 암호화 하는 방식으로 생성
- 디지털 서명(인증서 검증 과정)
- 서명 값과 인증서를 분리
- 서명 값은 인증서 내용에 대한 해시 값을 CA의 개인키로 암호화 한것
- 서명 값을 CA의 공개키로 복호화
- CA의 공개키는 공개되어 있어 서명값을 공개키로 복호화 가능
- RSA 같은 비대칭키는 공개키/개인키가 서로 반대방향으로 연산 가능한 구조
- 인증서 데이터에 대한 해시 값을 해시 함수를 활용해 해시값 얻기
- 복호화한 해시값과 해시함수를 활용해 얻은 해시값을 비교
- 값이 일치하면 전달바은 인증서는 CA의 개인키로 만들어졌다고 보장 가능
HTTPS: SSL과 TLS
- SSL(Secure Sockets Layer)/TLS(Transport Layer Security)
- 인증과 암호화를 수행하는 프로토콜
- SSL/TLS를 사용하는 대표적인 프로토콜은 HTTPS(HTTP over TLS)
- HTTP 메시지의 안전한 송수신을 위해 개발된 프로토콜
- 동작과정
- TCP 3-way handshake
- TLS handshake
- ClientHello(클라이언트 전송)
- 암호화된 통신을 위해 서로 맞춰봐야 할 정보들을 제시하는 메시지
- 지원되는 TLS 버전, 사용 가능한 암호화 방식과 해시 함수(암호 스위트), 키를 만들기 위해 사용할 클라이언트의 난수 등
- 암호 스위트 예시
- TLS_AES_128_GCM_SHA256
- ServerHello(서버 전송)
- 제시된 정보들을 선택하는 메시지
- 선택된 TLS 버전, 암호 스위트 등의 정보, 키를 만들기 위해 사용할 서버의 난수 등
- 이렇게 결정된 정보를 토대로 서버와 클라이언트는 암호화에 사용할 키를 만들어낼 수 있음
- 이 단계 이후부터 클라이언트와 서버는 키로 암호화된 암호문을 주고받을 수 있게 됨
- Certificate와 CertificateVerify(서버 전송)
- 각각 인증서와 검증을 위한 디지털 서명
- 클라이언트는 이 메시지를 토대로 서버의 공개키 검증
- Finished(클라이언트, 서버 각각 전송)
- TLS 핸드 셰이크의 마지막을 의미
- TLS 1.3 Finished 메시지와 함께 암호화된 메시지 전송 가능
- 암호화된 메시지 송수신
07-3 무선 네트워크
전파와 주파수
- 전파
- 눈에 보이지 않는 전자기파의 일종
- 수많은 무선 통신 기기가 전파를 이용하여 통신
- 서로 다른 공간에 혼재하는 전파를 구분할 수 있는 방법 → 통신에 사용되는 전파의 주파수 대역 정해져 있음
- 전파는 자연적으로 발생할 수 있기 때문에 우연히 주파수 대역과 겹치면 잡음 발생 가능
와이파이와 802.11
- LAN 환경에서의 무선 통신은 IEEE 802.11로 표준화되어 있음
- 와이파이
- 오늘날 IEEE 802.11 표준을 따르는 무선 LAN 기술
- 원래 와이파이 얼라이언스라는 비영리단체의 트레이드마크 이름
- 일종의 IEEE 802.11 표준 규격을 준수한다는 인증 마크 역할을 함
- 채널
- 2.4GHz, 5GHz 주파수 대역이 하위 주파수 대역으로 또한번 세분화 된것
- 같은 대역에서 별개의 무선 네트워크들이 서로의 신호에 간서하지 않고 통신이 이루어질 수 있음
AP와 서비스 셋
- AP : 무선 통신 기기들을 연결하여 무선 네트워크를 구성하는 장치
- 일반적으로 AP에는 유선 연결 매체를 연결할 수 있는 지점이 함께 제공되어 유선 네트워크와 무선 네트워크의 연결을 담당하는 역할도 수행
- 인프라스트럭처 모드
- AP를 경유하여 통신이 이루어지는 무선 네트워크 통신 방식
- 서비스 셋
- 무선 네트워크를 이루는 AP와 여러 장치들의 집합
- 서비스 셋 식별자(SSID: Service Set Identifier)
- 각기 다른 서비스 셋을 구별하는 수단이자 지칭하는 고유한 이름
- 비컨 프레임
- AP가 불특정 다수 모두에게 자신을 알리는 브로드캐스트 메시지를 주기적으로 전송하는데 이때 그 메시지
- 호스트가 연결 가능한 무선네트워크가 존재한다는 것을 알림
- SSID와 AP의 MAC 주소 등이 포함되어있음
- 연결가능한 와이파이 목록이 확인가능한 이유