Corgi 혼자 공부하는 네트워크 7-1 안전성을 위한 기술 공부 기록
본문 바로가기
개발자 일상/혼자 공부하는 네트워크

혼자 공부하는 네트워크 7-1 안전성을 위한 기술 공부 기록

by 짱아아빠 2024. 10. 13.
반응형

가용성의 개념

  • 안전성 (Safety)
    • 특정 기능을 언제든지 균일한 성능으로 수행할 수 있는 특성입니다.
  • 가용성 (Availability)
    • 컴퓨터 시스템이 특정 기능을 실제로 수행할 수 있는 시간의 비율을 의미합니다.
    • 가용성 공식:

  • 고가용성 (High Availability, HA)
    • 가용성이 높은 특성을 지니며, 시스템이 항상 동작할 수 있도록 설계된 상태를 말합니다.
  • 결함 감내 (Fault Tolerance)
    • 시스템에 문제가 발생하더라도 계속 작동할 수 있도록 설계하는 것입니다.

이중화와 다중화

이중화 (Redundancy)

  • 정의:
    • 시스템의 안정성을 높이기 위해 구성 요소를 두 개 이상으로 중복하여 설치하는 기술입니다.
  • 단일 장애점 (Single Point of Failure, SPOF)
    • 문제가 발생할 경우 시스템 전체가 중단될 수 있는 취약한 지점을 의미합니다.
  • 구성 방식:
    • 액티브/스탠바이 (Active/Standby)
      • 액티브: 주로 작동 중인 상태
      • 스탠바이: 액티브의 백업 상태로 대기
      • 페일오버 (Failover): 스탠바이 시스템이 자동으로 전환되는 기능
    • 액티브/액티브 (Active/Active)
      • 두 시스템 모두를 가동 상태로 유지하여 부하를 분산시키고, 한 시스템에 문제가 생겨도 다른 시스템이 계속 작동할 수 있도록 하는 구성 방식
반응형

다중화 (Multiplexing)

  • 정의:
    • 무언가를 여러 개 두어 시스템의 신뢰성과 성능을 향상시키는 기술입니다.
  • 티밍과 본딩 (Teaming and Bonding)
    • 티밍 (Teaming):
      • 주로 Windows 환경에서 사용되는 용어로, 여러 개의 네트워크 인터페이스 카드(NIC)를 하나의 논리적 인터페이스로 결합하여 네트워크 대역폭을 확장하고, 장애 시 자동으로 다른 NIC로 전환할 수 있도록 합니다.
    • 본딩 (Bonding):
      • 주로 Linux 환경에서 사용되는 용어로, 여러 NIC를 하나의 인터페이스로 묶어 네트워크 성능을 향상시키고, 장애 대비 기능을 제공합니다.
  • 장점:
    • 네트워크의 대역폭을 증가시키고, 단일 NIC의 장애 시에도 네트워크 연결을 유지할 수 있습니다.
  • 구성 방식:
    • 로드 밸런싱 (Load Balancing): 트래픽을 여러 NIC에 고르게 분산시켜 네트워크 성능을 최적화합니다.
    • 이중화 (Redundancy): 특정 NIC에 장애가 발생할 경우, 다른 NIC가 자동으로 대체하여 네트워크 연결을 유지합니다.

로드 밸런싱 (Load Balancing)

트래픽 (Traffic)

  • 정의:
    • 주어진 시점에 네트워크를 경유한 데이터의 양을 의미하며, 노드에서 특정 노드를 경유한 패킷의 양을 나타냅니다.

로드 밸런싱 (Load Balancing)

  • 정의:
    • 트래픽을 고르게 분배하여 시스템의 성능을 최적화하고, 과부하를 방지하는 기술입니다.

로드 밸런서 (Load Balancer)

  • 정의:
    • 로드 밸런싱을 수행하는 장치 또는 소프트웨어로, 트래픽을 여러 서버에 분산시킵니다.
  • 종류:
    • 하드웨어 로드 밸런서: L4 (전송 계층) 또는 L7 (애플리케이션 계층) 스위치를 사용하여 로드 밸런싱을 수행합니다.
    • 소프트웨어 로드 밸런서: HAProxy, Envoy, Nginx 등 소프트웨어를 통해 로드 밸런싱을 구현할 수 있습니다.

헬스 체크 (Health Check)

  • 정의:
    • 다중화된 서버 환경에서 각 서버의 상태를 주기적으로 검사하여 문제가 있는 서버를 로드 밸런싱 대상에서 제외하는 기능입니다.
  • 목적:
    • 안정적인 서비스 제공을 위해 정상 동작 중인 서버에만 트래픽을 분산시킵니다.

로드 밸런싱 알고리즘

  • 라운드 로빈 (Round Robin) 알고리즘:
    • 단순히 서버를 순차적으로 돌아가며 부하를 전달하는 방법입니다.
  • 최소 연결 (Least Connections) 알고리즘:
    • 현재 연결 수가 가장 적은 서버에 부하를 전달하는 방법으로, 서버 간 부하를 더 균등하게 분배할 수 있습니다.
  • 가중치 라운드 로빈 (Weighted Round Robin) 알고리즘:
    • 각 서버에 가중치를 부여하여 가중치가 높은 서버가 더 많이 선택되어 더 많은 부하를 받도록 하는 방법입니다.
  • 가중치 최소 연결 (Weighted Least Connections) 알고리즘:
    • 서버의 가중치와 현재 연결 수를 고려하여 부하를 분배하는 방법으로, 가중치가 높은 서버는 더 많은 연결을 처리할 수 있도록 합니다.

포워드 프록시와 리버스 프록시

오리진 서버 (Origin Server)

  • 정의:
    • 자원을 생성하고 클라이언트에게 권한 있는 응답을 보낼 수 있는 HTTP 서버로, 최종적으로 메시지를 주고받는 대상입니다.

프록시 (Proxy)

  • 정의:
    • 클라이언트가 요청한 메시지를 대신 전달하는 대리자 역할을 하는 서버입니다.
  • 기능:
    • 캐시 저장: 자주 요청되는 데이터를 캐시에 저장하여 응답 속도를 향상시킵니다.
    • 클라이언트 암호화: 클라이언트와 프록시 간의 통신을 암호화하여 보안을 강화합니다.
    • 접근 제한: 특정 클라이언트의 접근을 제한하거나 제어할 수 있습니다.

게이트웨이 (Gateway)

  • 정의:
    • 네트워크 간의 통신을 가능하게 하는 입구 역할을 하는 하드웨어 또는 소프트웨어입니다.
    • 역할:
      • 아웃바운드 연결에 대해 오리진 서버 역할을 하지만, 수신된 요청을 반환하여 다른 서버로 전달하는 중개자 역할을 합니다.

프록시의 종류

  • 포워드 프록시 (Forward Proxy):
    • 클라이언트가 직접 접근할 수 없는 서버에 접근할 수 있도록 중개해주는 역할을 합니다.
    • 주로 내부 네트워크의 클라이언트가 외부 인터넷에 접근할 때 사용됩니다.
  • 리버스 프록시 (Reverse Proxy):
    • 클라이언트의 요청을 받아 내부 서버로 전달하고, 내부 서버의 응답을 클라이언트에게 반환하는 역할을 합니다.
    • 주로 로드 밸런싱, 캐싱, 보안 강화 등의 목적으로 사용됩니다.
    • 예시: Nginx, HAProxy, Envoy 등

3. 종합적인 안전성 구현을 위한 통합

보안성과 가용성의 통합적 이해

  • 보안성 (Security):
    • 데이터의 기밀성, 무결성, 인증 및 부인 방지를 중심으로 합니다.
    • 암호화 기술, 인증서, 디지털 서명, HTTPS 등의 기술을 통해 구현됩니다.
  • 가용성 (Availability):
    • 시스템이 지속적으로 정상 동작하며, 서비스 중단을 최소화하는 것을 목표로 합니다.
    • 이중화, 다중화, 로드 밸런싱, 프록시 기술 등을 통해 구현됩니다.

안전한 데이터 통신과 높은 서비스 가용성의 중요성

  • 데이터 보호:
    • 암호화와 인증서를 통해 데이터의 기밀성과 무결성을 보장합니다.
  • 서비스 지속성:
    • 고가용성 시스템과 로드 밸런싱을 통해 서비스 중단 없이 지속적인 운영을 보장합니다.
  • 종합적 접근:
    • 보안성과 가용성을 동시에 고려하여 시스템을 설계함으로써, 외부 위협으로부터 안전하고 안정적인 서비스를 제공할 수 있습니다.
반응형

댓글