웹사이트 검색

고가용성이란 무엇입니까?


소개

중요한 시스템에 서비스를 제공하도록 설계된 안정적이고 성능이 뛰어난 인프라에 대한 수요가 증가함에 따라 확장성 및 고가용성이라는 용어가 인기를 끌었습니다. 증가된 시스템 부하를 처리하는 것이 일반적인 관심사인 반면 가동 중지 시간을 줄이고 단일 장애 지점을 제거하는 것도 마찬가지로 중요합니다. 고가용성은 이러한 후자의 고려 사항을 해결하는 대규모 인프라 설계 품질입니다.

이 가이드에서는 고가용성이 정확히 무엇을 의미하고 인프라의 안정성을 향상시킬 수 있는 방법에 대해 설명합니다.

고가용성이란 무엇입니까?

컴퓨팅에서 가용성이라는 용어는 시스템이 사용자의 요청에 응답하는 데 필요한 시간뿐만 아니라 서비스를 사용할 수 있는 기간을 설명하는 데 사용됩니다. 고가용성은 주어진 기간 동안 높은 수준의 운영 성능을 보장하는 시스템 또는 구성 요소의 품질입니다.

가용성 측정

가용성은 주어진 기간 동안 특정 시스템이나 구성 요소에서 얼마나 많은 가동 시간이 예상되는지 나타내는 백분율로 표시되는 경우가 많습니다. 여기서 100% 값은 시스템이 절대 실패하지 않는다는 것을 나타냅니다. 예를 들어, 1년 동안 99%의 가용성을 보장하는 시스템은 최대 3.65일의 다운타임(1%)을 가질 수 있습니다.

이러한 값은 예정된 유지 관리 기간과 예정되지 않은 유지 관리 기간, 가능한 시스템 오류로부터 복구하는 시간을 포함한 여러 요소를 기반으로 계산됩니다.

고가용성은 어떻게 작동합니까?

고가용성은 인프라에 대한 장애 대응 메커니즘으로 작동합니다. 작동 방식은 개념적으로 매우 간단하지만 일반적으로 일부 특수 소프트웨어 및 구성이 필요합니다.

고가용성은 언제 중요합니까?

강력한 생산 시스템을 설정할 때 다운타임과 서비스 중단을 최소화하는 것이 종종 최우선 순위입니다. 시스템과 소프트웨어의 안정성에 관계없이 응용 프로그램이나 서버를 중단시킬 수 있는 문제가 발생할 수 있습니다.

시스템을 고가용성으로 만드는 것은 무엇입니까?

고가용성의 목표 중 하나는 인프라에서 단일 실패 지점을 제거하는 것입니다. 단일 장애 지점은 서비스를 사용할 수 없게 되면 서비스를 중단시키는 기술 스택의 구성 요소입니다. 따라서 중복성이 없는 애플리케이션의 적절한 기능에 필요한 모든 구성 요소는 단일 실패 지점으로 간주됩니다.

이 시나리오의 웹 서버 계층은 다음과 같은 이유로 단일 실패 지점이 아닙니다.

  • 동일한 작업에 대한 중복 구성 요소가 배치됨
  • 이 계층(로드 밸런서) 위에 있는 메커니즘은 구성 요소의 장애를 감지하고 시기 적절한 복구를 위해 해당 동작을 조정할 수 있습니다.

하지만 로드 밸런서가 오프라인 상태가 되면 어떻게 될까요?

실생활에서 드물지 않은 설명된 시나리오에서 로드 밸런싱 계층 자체는 단일 실패 지점으로 남아 있습니다. 그러나이 남아있는 단일 실패 지점을 제거하는 것은 어려울 수 있습니다. 중복성을 달성하기 위해 추가 로드 밸런서를 쉽게 구성할 수 있지만 로드 밸런서 위에 장애 감지 및 복구를 구현하기 위한 명확한 지점이 없습니다.

중복성만으로는 고가용성을 보장할 수 없습니다. 장애를 감지하고 스택의 구성 요소 중 하나를 사용할 수 없게 되면 조치를 취할 수 있는 메커니즘이 있어야 합니다.

중복 시스템에 대한 오류 감지 및 복구는 하향식 접근 방식을 사용하여 구현할 수 있습니다. 즉, 상위 계층이 바로 아래 계층의 오류를 모니터링하는 책임을 지게 됩니다. 이전 예제 시나리오에서 로드 밸런서는 최상위 계층입니다. 웹 서버(최하위 계층) 중 하나를 사용할 수 없게 되면 로드 밸런서는 해당 특정 서버에 대한 요청 리디렉션을 중지합니다.

이 접근 방식은 더 간단한 경향이 있지만 한계가 있습니다. 즉, 로드 밸런서 계층의 경우와 같이 인프라에 최상위 계층이 존재하지 않거나 도달할 수 없는 지점이 있습니다. 외부 서버의 로드 밸런서에 대한 장애 감지 서비스를 생성하면 단순히 새로운 단일 장애 지점이 생성됩니다.

이러한 시나리오에서는 분산 접근 방식이 필요합니다. 여러 중복 노드는 각 노드가 동일하게 장애 감지 및 복구 기능을 수행할 수 있는 클러스터로 함께 연결되어야 합니다.

그러나 로드 밸런서의 경우 네임서버 작동 방식으로 인해 추가적인 복잡성이 있습니다. 로드 밸런서 장애 복구는 일반적으로 중복 로드 밸런서로의 장애 조치를 의미하며 도메인 이름이 중복 로드 밸런서의 IP 주소를 가리키도록 DNS를 변경해야 함을 의미합니다. 이와 같은 변경 사항은 인터넷에 전파되는 데 상당한 시간이 걸릴 수 있으며, 이로 인해 이 시스템에 심각한 다운타임이 발생할 수 있습니다.

가능한 해결책은 DNS 라운드 로빈 로드 밸런싱을 사용하는 것입니다. 그러나 이 접근 방식은 장애 조치를 클라이언트 측 애플리케이션에 맡기므로 신뢰할 수 없습니다.

보다 강력하고 안정적인 솔루션은 예약된 IP와 같은 유연한 IP 주소 재매핑을 허용하는 시스템을 사용하는 것입니다. 주문형 IP 주소 재매핑은 필요할 때 쉽게 재매핑할 수 있는 정적 IP 주소를 제공함으로써 DNS 변경에 내재된 전파 및 캐싱 문제를 제거합니다. 도메인 이름은 동일한 IP 주소와 연결된 상태로 유지될 수 있지만 IP 주소 자체는 서버 간에 이동됩니다.

예약된 IP를 사용하는 고가용성 인프라는 다음과 같습니다.

고가용성을 위해 어떤 시스템 구성 요소가 필요합니까?

실제로 고가용성을 구현하기 위해 신중하게 고려해야 하는 몇 가지 구성 요소가 있습니다. 소프트웨어 구현 이상으로 고가용성은 다음과 같은 요인에 따라 달라집니다.

  • 환경: 모든 서버가 동일한 지리적 영역에 있는 경우 지진이나 홍수와 같은 환경 조건으로 인해 전체 시스템이 다운될 수 있습니다. 서로 다른 데이터 센터 및 지리적 영역에 중복 서버가 있으면 안정성이 높아집니다.
  • 하드웨어: 고가용성 서버는 하드 디스크 및 네트워크 인터페이스를 포함하여 정전 및 하드웨어 오류에 대한 복원력이 있어야 합니다.
  • 소프트웨어: 예를 들어 시스템을 다시 시작해야 할 수 있는 예기치 않은 오류를 처리할 수 있도록 운영 체제와 애플리케이션 자체를 포함한 전체 소프트웨어 스택을 준비해야 합니다.
  • 데이터: 데이터 손실 및 불일치는 여러 가지 요인으로 인해 발생할 수 있으며 하드 디스크 장애에만 국한되지 않습니다. 고가용성 시스템은 장애 발생 시 데이터 안전을 고려해야 합니다.
  • 네트워크: 계획되지 않은 네트워크 중단은 고가용성 시스템의 또 다른 실패 지점을 나타냅니다. 가능한 장애에 대비하여 중복 네트워크 전략을 수립하는 것이 중요합니다.

고가용성을 구성하는 데 사용할 수 있는 소프트웨어는 무엇입니까?

고가용성 시스템의 각 계층은 소프트웨어 및 구성 측면에서 서로 다른 요구 사항을 갖습니다. 그러나 애플리케이션 수준에서 로드 밸런서는 고가용성 설정을 만드는 데 필수적인 소프트웨어를 나타냅니다.

데이터베이스 서버.

시스템 스택에서 위로 이동하면 애플리케이션 진입점(일반적으로 로드 밸런서)을 위한 안정적인 중복 솔루션을 구현하는 것이 중요합니다. 이 단일 실패 지점을 제거하려면 앞에서 언급한 대로 예약된 IP 뒤에 로드 밸런서 클러스터를 구현해야 합니다. Corosync 및 Pacemaker는 두 CentOS 서버 모두에서 이러한 설정을 만드는 데 널리 사용되는 선택입니다.

결론

고가용성은 시스템 또는 구성 요소가 주어진 기간 동안 높은 수준의 운영 성능을 갖도록 보장하는 데 중점을 둔 신뢰성 엔지니어링의 중요한 하위 집합입니다. 언뜻 보기에 구현이 상당히 복잡해 보일 수 있습니다. 그러나 향상된 안정성이 필요한 시스템에는 엄청난 이점을 가져올 수 있습니다.