ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 가용성과 신뢰성의 개념 정확히 이해하기
    개발지식 아카이브/ETC 2025. 8. 25. 15:51

    가용성과 신뢰성, Reliability와 Availability의 개념이 헷갈릴 때가 많았다.

    그래서 복습을 하고, 구체적인 예시로 적어두려고 한다.

     

    신뢰성이 낮다는 것은 결함이 많다는 것이다. 그러나 결함 != 장애이다.

    결함은 사양에서 벗어나서 동작하는 것이고, 장애는 시스템 전체가 멈춘 것이다. 결함이 장애로 이어지지 않도록 설계할 수 있다.

     

    요약하면 신뢰성은 결함과 연결되고, 가용성은 장애와 연결된다.

    신뢰성이 낮더라도(결함이 많더라도) 가용성이 높게 설계된 시스템은 사용자가 이상을 인지하지 못한다.

     

     

    다음은 가용성과 신뢰성의 차이에 대한 실제적이고 구체적인 예시들이다. GPT의 도움을 받았다. (고마워... 이해가 쏙쏙..)

     

     

     

    ✅ 1. Kafka 클러스터

    • Reliability (신뢰성)
      • Kafka 브로커가 장애 없이 몇 달간 안정적으로 운영된다면 → 높은 reliability.
      • 예: 브로커 자체가 잘 죽지 않고, Zookeeper/Controller failover가 거의 발생하지 않음.
    • Availability (가용성)
      • 특정 브로커가 다운되더라도 파티션 리더가 다른 브로커로 빠르게 승격되어, 메시지 생산/소비가 끊기지 않음 → 높은 availability.
      • 즉, 브로커가 장애 나도 유저는 서비스 중단을 체감하지 않음.

    ✅ 2. HDFS (분산 스토리지)

    • Reliability
      • DataNode에 저장된 블록이 디스크 손상 없이 오래 유지된다면 → 높은 reliability.
      • 예: replication factor=3으로 복제되는데, 동시에 여러 노드가 디스크 에러를 내면 reliability가 낮아짐.
    • Availability
      • NameNode 장애 시 standby NameNode가 즉시 takeover → 클라이언트가 계속 파일을 읽고 쓸 수 있음.
      • 즉, 일부 노드가 죽더라도 읽기/쓰기에 영향 없으면 availability는 유지.

    ✅ 3. Airflow (워크플로우 오케스트레이션)

    • Reliability
      • 스케줄러가 항상 제때 DAG을 트리거하고, task retry가 정상 동작한다면 reliability가 높음.
      • 예: 매일 새벽 1시에 돌던 배치 파이프라인이 100일 동안 한 번도 실패 없이 동작.
    • Availability
      • Airflow 웹서버가 잠깐 죽더라도, 사용자가 UI에 다시 접속할 수 있게 빠르게 복구된다면 availability가 높음.
      • 심지어 DAG task는 백그라운드에서 계속 실행 중일 수 있음.

    ✅ 4. 일상적인 비유

    • Reliability: “내 차가 고장 없이 10년 동안 잘 달린다.”
    • Availability: “고장 나더라도 긴급출동 서비스가 10분 안에 와서 바로 다시 달릴 수 있다.”

    👉 핵심 요약

    • Reliability = 얼마나 자주 고장 나는가
    • Availability = 고장 나도 서비스 이용 가능하게 유지되는가

    댓글

Copyright in 2020 (And Beyond)