2025-12-02

오늘 배운 것

07-1 안정성을 위한 기술

가용성

  • 가용성 : 컴퓨터 시스템이 특정 기능을 실제로 수행할 수 있는 시간의 비율
    • 전체 사용 시간 중에서 정상적인 사용 시간을 의미
  • 업 타임 : 정상적인 사용 시간
  • 다운 타임 : 정상적인 사용이 불가능한 시간
  • 고가용성 : 가용성이 높은 성질
  • 파이브 나인스(99.999%)
    • 가용성(업타입 / (업타입 + 다운타임))을 백분율로 표기했을때의 안정적인 수준
    • 안정적이라고 평가받는 시스템은 99.999% 이상을 목표로 함
  • 결함 감내 : 문제가 발생하더라도 기능할 수 있는 으력

이중화

  • 이중화 : 무언가를 이중으로 두는 기술
    • 예비(백업)를 마련하는 방법
    • 이중화 대상
      • 서버 컴퓨터, 네트워크 인터페이스, 스위치, 데이터베이스, 웹서버 프로그램 등
      • 문제가 발생한 경우 시스템 전체가 중단될 수 있는 대상
  • 단일 장애점(Single Point Of Failure)
    • 문제가 발생한 경우 시스템 전체가 중단될 수 있는 대상
    • 가용성을 높이기 위해서 SPOF를 이중화 하는 것이 좋음
  • 액티브 : 가동상태
  • 스탠바이 : 액티브의 백업으로서 대기하는 상태
  • 이중화 구성 방법
    • 액티브/스탠바이 : 한 시스템은 가동하고, 다른 시스템은 백업 용도로 대기 상태로 두는 것
      • 액티브 상태인 시스템에 문제가 발생시 스탠바이 시스템이 자동으로 액티브 시스템을 대신하여 동작
      • 두 장비가 동시에 가동되지 않고 한번에 하나만 가동되기 때문에 하나의 장비를 사용할 때에 비해 성능상의 큰 변화를 기대하기는 어려움
    • 액티브/액티브 : 두 시스템 모두를 가동상태로 두는 구성 방식
      • 장점
        • 부하를 분산시킬 수 있음
        • 두 시스템이 함께 가동되므로 성능상의 이점도 있음
      • 단점
        • 한 시스템에 문제가 발생하면 순간적으로 다른 시스템에 부하가 급증하고 이로인해 추가적인 문제가 발생할 수 있음
  • 다중화 : 무언가를 여러개 두는 기술
    • 티밍(윈도우)과 본딩(리눅스)
      • 여러개의 네트워크 인터페이스를 이중화/다중화하여 마치 더 뛰어나고 안정적인 성능을 보유한 하나의 인터페이스 처럼 보이게 하는 기술

로드 밸런싱

  • 트래픽 : 주어진 시점에 네트워크를 경유한 데이터 양
    • 주어진 시점에 특정 노드를 경유한 패킷의 양
  • 과도한 트래픽의 문제점 ⇒ 가용성을 떨어뜨림
    • 높은 부하로 CPU 발열
    • 수많은 트래픽 내용을 저장하기에 메모리 공간이 부족
    • 제한된 대역폭과 병목 현상으로 응답이 누려지거나 누락
    • 프로그램의 일관성 손상
  • 다중화를 하더라도 트래픽을 고르게 분산해야 가용성이 높아짐
  • 로드 밸런싱 : 트래픽의 고른 분배를 위해 사용되는 기술
    • 로드 밸런서에 의해 수행
      • L4, L7 스위치
      • 로드 밸런싱 기능을 제공하는 소프트웨어(HAProxy, Envoy)
        • Nginx
  • 로드 밸런싱 알고리즘
    • 라운드 로빈 알고리즘
      • 단순히 서버를 돌아가며 부하를 전달
      • 서버 마다 가중치 부여 가능 → 가중치 라운드 로빈 알고리즘
        • 가중치가 더 높은 서버가 더 많이 선택되어 더 많은 부하를 받도록 함
        • 서버 간 성능이 다른 경우에 활용
    • 최소 연결 알고리즘
      • 연결이 적은 서버부터 우선적으로 부하를 전달
      • 서버마다 가중치 부여가능 → 가중치 최소 연결 알고리즘
        • 가중치가 더 높은 서버가 더 많이 선택되어 더 많은 부하를 받도록 함
        • 서버 간 성능이 다른 경우에 활용
    • 해시 자료구조이용
      • 단순히 무작위 고르기
    • 응답 시간이 가장 짧은 서버 선택하기

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
          1. ClientHello(클라이언트 전송)
            1. 암호화된 통신을 위해 서로 맞춰봐야 할 정보들을 제시하는 메시지
            2. 지원되는 TLS 버전, 사용 가능한 암호화 방식과 해시 함수(암호 스위트), 키를 만들기 위해 사용할 클라이언트의 난수 등
            3. 암호 스위트 예시
              1. TLS_AES_128_GCM_SHA256
          2. ServerHello(서버 전송)
            1. 제시된 정보들을 선택하는 메시지
            2. 선택된 TLS 버전, 암호 스위트 등의 정보, 키를 만들기 위해 사용할 서버의 난수 등
            3. 이렇게 결정된 정보를 토대로 서버와 클라이언트는 암호화에 사용할 키를 만들어낼 수 있음
            4. 이 단계 이후부터 클라이언트와 서버는 키로 암호화된 암호문을 주고받을 수 있게 됨
          3. Certificate와 CertificateVerify(서버 전송)
            1. 각각 인증서와 검증을 위한 디지털 서명
            2. 클라이언트는 이 메시지를 토대로 서버의 공개키 검증
          4. Finished(클라이언트, 서버 각각 전송)
            1. TLS 핸드 셰이크의 마지막을 의미
            2. TLS 1.3 Finished 메시지와 함께 암호화된 메시지 전송 가능
        • 암호화된 메시지 송수신

07-3 무선 네트워크

전파와 주파수

  • 전파
    • 눈에 보이지 않는 전자기파의 일종
    • 수많은 무선 통신 기기가 전파를 이용하여 통신
    • 서로 다른 공간에 혼재하는 전파를 구분할 수 있는 방법 → 통신에 사용되는 전파의 주파수 대역 정해져 있음
    • 전파는 자연적으로 발생할 수 있기 때문에 우연히 주파수 대역과 겹치면 잡음 발생 가능

와이파이와 802.11

  • LAN 환경에서의 무선 통신은 IEEE 802.11로 표준화되어 있음
    • 2.4GHz, 5GHz 대역을 대부분 사용
  • 와이파이
    • 오늘날 IEEE 802.11 표준을 따르는 무선 LAN 기술
    • 원래 와이파이 얼라이언스라는 비영리단체의 트레이드마크 이름
    • 일종의 IEEE 802.11 표준 규격을 준수한다는 인증 마크 역할을 함
  • 채널
    • 2.4GHz, 5GHz 주파수 대역이 하위 주파수 대역으로 또한번 세분화 된것
    • 같은 대역에서 별개의 무선 네트워크들이 서로의 신호에 간서하지 않고 통신이 이루어질 수 있음

AP와 서비스 셋

  • AP : 무선 통신 기기들을 연결하여 무선 네트워크를 구성하는 장치
    • 일반적으로 AP에는 유선 연결 매체를 연결할 수 있는 지점이 함께 제공되어 유선 네트워크와 무선 네트워크의 연결을 담당하는 역할도 수행
  • 인프라스트럭처 모드
    • AP를 경유하여 통신이 이루어지는 무선 네트워크 통신 방식
  • 서비스 셋
    • 무선 네트워크를 이루는 AP와 여러 장치들의 집합
  • 서비스 셋 식별자(SSID: Service Set Identifier)
    • 각기 다른 서비스 셋을 구별하는 수단이자 지칭하는 고유한 이름
  • 비컨 프레임
    • AP가 불특정 다수 모두에게 자신을 알리는 브로드캐스트 메시지를 주기적으로 전송하는데 이때 그 메시지
    • 호스트가 연결 가능한 무선네트워크가 존재한다는 것을 알림
    • SSID와 AP의 MAC 주소 등이 포함되어있음
    • 연결가능한 와이파이 목록이 확인가능한 이유

results matching ""

    No results matching ""