본문 바로가기

개발/Concept

[ Concept ] HA( High Availability )란?

반응형

소개

고가용성(High Availability, HA)은 시스템이나 서비스가 일정 시간 동안 항상 사용 가능하고 작동할 수 있는 능력을 나타냅니다. 고가용성은 주로 정보 기술 (IT) 및 컴퓨터 시스템 분야에서 중요하게 다뤄지며, 업무 연속성과 신뢰성을 향상시키는 데 중점을 둡니다.

A가 동작 못할시 B 서버로
B가 동작 못할시 A 서버로
이런식으로 구성을 하는것이 일반적인 예제이다.

고가용성을 구현하려면 몇가지 일반적인 방법은 다음과 같습니다:

  1. 여러 서버 및 데이터 센터 사용: 서비스를 여러 서버에 분산하고, 여러 지리적 위치에 데이터 센터를 구축하여 단일 장애 지점을 방지하고 전체적인 신뢰성을 높입니다.
  2. 로드 밸런싱: 트래픽을 여러 서버로 균등하게 분산하여 각 서버에 걸리는 부하를 분산시킴으로써 시스템의 성능을 최적화하고 신뢰성을 높입니다.
  3. 자동화된 장애 복구: 시스템이나 애플리케이션에서 장애가 발생한 경우 자동으로 대체 서버로 전환되거나 복구되는 기능을 구현하여 시스템의 지속적인 가용성을 보장합니다.
  4. 데이터 복제와 백업: 중요한 데이터는 여러 복제본으로 저장하고 정기적으로 백업하여 데이터 손실을 방지하고, 필요한 경우에 빠르게 시스템을 복구할 수 있도록 합니다.
  5. 감시 및 경보 시스템: 시스템의 상태를 지속적으로 모니터링하고, 잠재적인 문제를 사전에 감지하여 예방 조치를 취하고, 필요한 경우에 관리자에게 경고를 보내는 감시 및 경보 시스템을 도입합니다.

예제 S/W

  1. 로드 밸런서 (Load Balancer):
    • NGINX: 웹 서버 및 로드 밸런서로 널리 사용되며, HTTP, HTTPS 트래픽을 효과적으로 분산합니다.
    • HAProxy: TCP 및 HTTP 기반 로드 밸런서로 사용되며, 성능과 안정성을 갖춘 오픈 소스 솔루션입니다.
  2. 데이터베이스 복제:
    • MySQL Replication: MySQL 데이터베이스의 복제 기능을 통해 데이터를 여러 서버에 동기식 또는 비동기식으로 복제할 수 있습니다.
    • PostgreSQL Streaming Replication: PostgreSQL 데이터베이스에서 제공되는 스트리밍 복제 기능을 사용하여 데이터를 복제할 수 있습니다.
  3. 클라우드 플랫폼:
    • Amazon Web Services (AWS) Elastic Load Balancer (ELB): AWS에서 제공하는 로드 밸런싱 서비스로, 여러 가용 영역에서 트래픽을 분산합니다.
    • Google Cloud Platform (GCP) Load Balancing: GCP에서 제공하는 로드 밸런싱 서비스로, 전역적으로 트래픽을 관리합니다.
  4. 컨테이너 오케스트레이션:
    • Kubernetes: 컨테이너 오케스트레이션 플랫폼으로, 다중 노드에서 컨테이너화된 응용 프로그램을 관리하고 배포하는 데 사용됩니다.
  5. 자동화 및 관리 도구:
    • Ansible: 구성 관리 및 자동화 도구로, 서버 구성 및 배포를 자동화하여 일관된 환경을 유지합니다.
    • Puppet: IT 자동화 및 구성 관리 도구로, 다양한 환경에서 서버 구성을 자동으로 관리합니다.
  6. 분산 데이터 스토리지:
    • Apache Cassandra: 고가용성과 확장성이 있는 분산형 NoSQL 데이터베이스로, 여러 노드에 데이터를 분산 저장합니다.
    • Amazon S3 (Simple Storage Service): AWS에서 제공하는 고가용성 및 내구성이 높은 분산형 객체 스토리지 서비스입니다.

고가용성은 비즈니스 연속성과 사용자 만족도를 높이며, 장애나 문제가 발생했을 때도 서비스 중단을 최소화합니다. 이는 기업이 안정적으로 운영되고 고객이 항상 안정적인 서비스를 받을 수 있도록 보장하는 데 도움이 됩니다.

반응형

'개발 > Concept' 카테고리의 다른 글

[Concept] Spring과 Spring Boot의 차이점?  (0) 2023.12.27
[Concept] ERD란?  (0) 2023.11.24
[Concept] Tomcat이란?  (0) 2023.11.23
[Concept] WAS란?  (0) 2023.11.22
[ Concept ] 서버에서 디스크 파티션을 나누는 이유  (0) 2023.11.06