요약: 중복성이란 인프라의 모든 계층에 백업 구성 요소를 갖추어, 문제가 발생했을 때 중복된 구성 요소가 자동으로 기능을 대신 수행하도록 하는 것을 의미합니다. 블록체인에서 노드, 지역, 클라우드 제공업체, 클라이언트 구현 전반에 걸친 중복성은 생산 환경급 시스템과 취약한 시스템을 구분 짓는 핵심 요소입니다.
‘중복’이 실제로 의미하는 것
이중화란 정상적인 운영 시 엄밀히 말해 필요한 양보다 더 많은 자원을 가동하는 관행을 말합니다. 이 여분의 용량은 낭비되는 것이 아닙니다. 일종의 안전장치입니다.
비행기를 예로 들어 생각해 보세요. 상업용 항공기에는 중복 엔진, 중복 유압 시스템, 중복 항법 장비가 장착되어 있습니다. 이 모든 장치가 한꺼번에 고장 날 것을 예상해서가 아니라, 어느 하나라도 언제든 고장 날 수 있기 때문입니다. 이러한 중복 시스템 덕분에 어떤 부품이 고장 나더라도 비행기는 계속 비행할 수 있습니다.
인프라 중복 구성도 같은 원리를 따릅니다. 추가 리전이나 다른 클라우드 제공업체에 여분의 노드를 운영하는 것은 당장 그 모든 노드가 필요해서가 아니라, 나머지 노드가 다운되더라도 그중 일부라도 계속 작동해야 하기 때문입니다.
중복의 여러 단계
생산용 블록체인 인프라에는 여러 단계에 걸친 중복성이 필요합니다. 각 계층은 서로 다른 유형의 장애를 처리합니다.
노드 중복 구성은 가장 기본적인 방식입니다. 특정 블록체인을 단일 노드에만 의존하는 대신, 여러 노드로 구성된 풀을 운영합니다. 만약 한 노드가 다운되거나 동기화가 뒤처지거나 오류를 반환하기 시작하더라도, 풀에 남아 있는 나머지 노드들이 트래픽을 처리합니다. 이를 통해 개별 하드웨어 고장, 특정 노드 프로세스의 소프트웨어 버그, 또는 단일 머신의 리소스 고갈로부터 시스템을 보호할 수 있습니다.
지역적 중복성은 대규모 장애로부터 시스템을 보호합니다. 모든 노드가 단일 AWS 리전에서 실행되고 있는 상황에서 해당 리전에 장애가 발생하면(이는 대부분의 사람들이 생각하는 것보다 훨씬 자주 발생합니다), 모든 시스템이 동시에 중단됩니다. 노드를 여러 지리적 리전에 분산 배치하면 버지니아에서 발생한 국지적인 문제로 인해 프랑크푸르트나 싱가포르의 사용자들이 영향을 받지 않도록 할 수 있습니다.
클라우드 공급자 중복 구성은 이를 한 단계 더 발전시킨 것입니다. 만약 모든 인프라가 단일 클라우드 공급자에서 운영되고, 해당 공급자에 플랫폼 수준의 장애가 발생한다면, 지역적 중복 구성만으로는 문제를 해결할 수 없습니다. 여러 공급자(AWS, GCP, 베어 메탈 등)에 걸쳐 인프라를 운영하면, 특정 공급자의 서비스 중단이 귀사의 서비스 중단으로 이어지지 않습니다.
클라이언트 중복성은 블록체인 고유의 특성입니다. 대부분의 주요 블록체인에는 여러 노드 클라이언트 구현체가 존재합니다. 이더리움( Ethereum )에는 Geth, Erigon, Nethermind, Besu가 있습니다. 이오( Solana )에는 검증자 클라이언트와 Firedancer가 있습니다. 특정 클라이언트에 치명적인 버그가 발생하더라도, 대체 클라이언트를 실행 중인 노드들은 정상적으로 작동을 계속합니다. 다양한 클라이언트를 운영하는 제공업체는 소프트웨어 수준의 장애에 대해 더 높은 복원력을 갖습니다.
중복성이 없다면 어떤 일이 일어날까
부적절한 중복성 확보가 초래하는 결과는 예측 가능하며, 이에 대한 기록도 잘 남아 있습니다. 2022년 7월, Solana 네트워크는 부분적으로 검증자 문제와 관련된 대규모 서비스 중단을 겪었습니다. 단일 지역의 단일 RPC 제공업체에만 의존하던 프로젝트들은 대체 수단이 전혀 없었습니다. 해당 프로젝트의 애플리케이션은 완전히 마비되었습니다. 지갑 제공업체들은 잔액을 표시할 수 없었고, 트레이딩 봇은 실행을 중단했으며, 모니터링 대시보드에는 아무런 정보도 표시되지 않았습니다.
이를 여러 공급자와 여러 리전을 아우르는 구성의 프로젝트와 비교해 보자. 해당 프로젝트에서는 성능 저하가 발생했지만 완전한 장애까지는 이르지 않았다. 일부 요청 처리 속도는 느려졌지만, 애플리케이션은 계속 가동 상태를 유지했다. 이러한 차이는 운이 아니었다. 바로 중복성이 만들어낸 결과였다.
중복 구성 비용 대 가동 중단 비용
중복 구성에 대한 일반적인 반대 의견은 비용 문제입니다. 세 개의 리전에서 노드를 운영하는 데 드는 비용은 한 곳에서 운영하는 데 드는 비용보다 대략 세 배 정도 더 듭니다. 두 개의 클라우드 제공업체를 걸쳐 운영하면 운영상의 복잡성과 비용이 한층 더 가중됩니다.
하지만 서비스 중단으로 인한 비용을 고려해 보십시오. 일일 거래량이 1,000만 달러에 달하는 DeFi 프로토콜의 경우, 피크 시간대에 단 30분만 서비스가 중단되어도 수십만 달러 규모의 거래 기회 손실, 청산 실패, 그리고 사용자 신뢰 하락으로 이어질 수 있습니다. 또한, 가격이 급락하는 상황에서 NFT 마켓플레이스의 경우, 단 몇 분만 서비스가 중단되어도 서비스를 계속 유지한 경쟁사로 인해 전체 사용자층을 잃을 수 있습니다.
생산 환경의 경우, 수치상으로는 거의 항상 중복 구성이 유리합니다. 인프라 비용은 고정되어 있고 예측 가능하지만, 가동 중단으로 인한 비용은 가변적이며 종종 치명적인 결과를 초래합니다.
중복 구성과 장애 조치(failover)의 차이점은 무엇인가요?
중복성과 장애 전환은 서로 연계되어 작동하지만, 동일한 개념은 아닙니다. 중복성이란 여분의 용량, 즉 대기 중인 추가 노드, 리전 및 제공업체를 확보해 두는 것을 의미합니다. 장애 전환은 실제로 장애를 감지하고 트래픽을 해당 여분의 용량으로 전환하는 메커니즘입니다. 장애 전환이 없는 중복성은 아무도 전환하지 않는 백업을 보유한 것과 같고, 중복성이 없는 장애 전환은 전환할 대상이 없는 전환 장치를 보유한 것과 같습니다. 진정한 복원력을 확보하려면 이 두 가지가 모두 필요합니다.
양상
중복성
페일오버
이것이 무엇인지
여유 용량, 중복 용량
그것으로 전환하는 행위
이 질문이 다루는 내용
백업이 있나요?
이걸 얼마나 빨리 사용하나요?
다른 쪽이 없다면
아무도 경로를 설정하지 않는 백업
목표가 없는 스위치
다음 기준에 따라 측정했을 때
독립 사본 수
감지 및 전환 시간
요컨대, 중복성은 기반이 되고, 장애 조치 ( failover)는 그 위에 구축된 자동화 기능입니다. 이 두 가지가 결합되어 고가용성의 핵심 요소를 이룹니다.
중복 구성은 가동 시간을 어떻게 향상시키나요?
각 중복 계층은 서로 다른 단일 장애 지점을 제거하므로, 독립적인 계층을 더 많이 쌓을수록 특정 장애가 발생하더라도 시스템이 완전히 중단될 가능성이 줄어듭니다. 아래 표는 각 중복 계층이 방지하는 장애를 정리한 것입니다.
중복 계층
~로부터 보호합니다
오류 예시
노드 중복성
단일 노드 장애
충돌, 동기화 지연 또는 오류
지역적 중복성
한 지역 전체가 몰락하고 있다
클라우드 리전 서비스 중단
클라우드 제공업체의 중복성
전체 제공업체 차원의 사고
플랫폼 차원의 서비스 중단
클라이언트 중복 구성
한 노드 클라이언트의 버그
한 클라이언트에서 발견된 컨센서스 버그
서비스 제공업체들은 이러한 계층을 중첩함으로써 매우 높은 가동 시간 목표를 달성합니다. 이는 노드 안정성 확보 방안 및 일반적인 블록체인 장애 유형에 대한 이해와 자연스럽게 결합되어, 각 계층이 실제 위험 요소를 대상으로 삼도록 합니다.
얼마나 많은 중복성이 필요합니까?
정답은 하나만 있는 것이 아닙니다. 목표는 중복성을 다운타임으로 인한 비용에 맞춰 조정하는 것입니다. 취미 프로젝트의 경우 가끔 발생하는 다운타임을 감수할 수 있으며, 대체 방안 endpoint 만으로도 충분할 수 있지만, 실제 가치를 다루는 DeFi 프로토콜이나 거래소의 경우 자동화된 장애 전환 기능을 갖춘 다지역·다공급자 커버리지가 필요합니다. 중복 구성에 드는 고정적이고 예측 가능한 비용과, 중단 시 발생할 수 있는 가변적이며 잠재적으로 치명적인 비용을 비교·평가하여 결정하십시오. 이는 근본적으로 ‘자체 구축(build)’ 대 ‘구매(buy) ’의 선택 문제이며, 오류 발생을 미리 예측할 수 있을 때만 효과가 있으므로, 인프라에 대한 강력한 가시성과모니터링을 함께 구축해야 합니다.
자주 묻는 질문
인프라 중복성이란 무엇인가요?
인프라 중복성이란 정상 운영 시 엄밀히 말해 꼭 필요한 수보다 더 많은 구성 요소를 가동하여, 장애 발생 시 백업 시스템이 이를 대신 처리할 수 있도록 하는 것을 말합니다. 블록체인의 경우, 이는 여러 지역, 클라우드 제공업체 및 클라이언트 구현 환경에 걸쳐 중복된 노드를 배치하는 것을 의미합니다.
중복 구성은 백업과 같은 것인가요?
꼭 그렇지는 않습니다. 백업은 일반적으로 장애 발생 후 복원하는 데이터의 복사본인 반면, 중복성은 장애 발생 시에도 중단 없이 또는 거의 중단 없이 트래픽을 계속 처리할 수 있도록 하는 가동 중인 예비 용량입니다. 중복성은 사후 복구가 아니라 온라인 상태를 유지하는 데 목적이 있습니다.
왜 여러 노드 클라이언트를 실행해야 할까요?
클라이언트의 다양성은 소프트웨어 버그로부터 시스템을 보호합니다. 특정 클라이언트 구현에서 치명적인 버그가 발생하더라도, 다른 클라이언트를 실행 중인 노드들은 정상적으로 계속 작동하므로, 버그가 포함된 단일 릴리스로 인해 전체 시스템이 마비되는 일은 없습니다.
중복 구성으로 가동 중단 시간을 완전히 없앨 수 있나요?
어떤 시스템도 완벽한 가동 시간을 달성할 수는 없지만, 다층적인 중복 구조를 통해 대부분의 단일 장애는 완전한 서비스 중단이 아닌 성능 저하로만 이어지게 됩니다. 목표는 단일 장애 지점을 제거하여, 어떤 단일 사건으로도 전체 시스템이 중단되는 일이 없도록 하는 것입니다.
중복 구성에 드는 추가 비용이 그만한 가치가 있을까요?
운영 환경에서는 거의 항상 그렇습니다. 중복 구성에는 고정적이고 예측 가능한 비용이 발생하는 반면, 가동 중단 시에는 변동 비용이 발생하며, 단 한 번의 피크 시간대 정전만으로도 거래 기회 손실과 사용자 이탈로 인해 수십만 달러에 달하는 비용이 발생할 수 있습니다.
Quicknode 가 중복성을 구축하는 방법
Quicknode 여러 클라우드 및 베어 메탈 제공업체를 통해 14개 이상의 지역에서 블록체인 인프라를 운영합니다. 지원되는 모든 체인은 가능한 경우 다양한 클라이언트 구현을 갖춘 노드 풀에서 실행됩니다. 이 시스템은 단일 노드, 지역 또는 클라우드 제공업체가 단일 장애 지점이 되지 않도록 설계되었습니다.
즉, 개발자들은 직접 아키텍처를 설계하거나 운영할 필요 없이, 바로 사용할 수 있는 프로덕션급 중복성을 확보할 수 있습니다. 추가적인 격리가 필요한 팀을 위해, 전용 clusters 는 맞춤형 중복성 구성이 적용된 전용 인프라를 제공합니다.