애플리케이션 가용성은 애플리케이션이 시작되어 실행되는 시간의 양입니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
애플리케이션 가용성은 애플리케이션이 작동하는 시간을 측정한 결과입니다. 애플리케이션은 예상대로 작동할 때 사용할 수 있으며 사용자의 요청을 이행합니다. 애플리케이션이 작동하지 않거나 최종 사용자가 연결할 수 없는 경우 애플리케이션을 사용할 수 없습니다.
웹 애플리케이션의 경우 가용성을 극대화하는 것은 개발의 중요한 부분입니다. 애플리케이션 가용성은 백엔드 인프라 최적화, 프런트엔드 최적화, 공격 완화를 조합하여 개선할 수 있습니다.
사용자는 웹 애플리케이션 가용성에 대한 기대치가 높습니다. 가동 중지 시간은 수익과 평판 모두에 큰 영향을 미칠 수 있습니다. 매장의 '영업' 시간을 생각해 보세요. 매장이 예기치 않은 시간에 문을 닫으면 고객은 다른 매장으로 가게 됩니다. 마찬가지로 소프트웨어 애플리케이션에서 필요한 서비스를 얻을 수 없는 사용자는 해당 애플리케이션 사용을 중단하므로 고객이 줄어들고 수익이 줄어듭니다.
기업 간(B2B) 애플리케이션의 경우 가용성은 일반적으로 서비스 수준 계약(SLA)의 일부로 포함되며, 애플리케이션이 가동될 것으로 예상되는 시간의 백분율로 표시됩니다. 그러한 경우 애플리케이션 개발자는 고객에게 특정 가용성 수준을 제공해야 하는 계약상 의무가 있습니다.
'가용성'은 서버, 애플리케이션, API 등 모든 종류의 시스템과 서비스에 적용되는 개념입니다. 가용성은 백분율로 측정됩니다. 매 시간마다 36초 동안 다운된 애플리케이션의 가용성은 99%입니다.
안정성은 시스템 또는 애플리케이션에서 일정 기간 동안 오류 없이 예상대로 서비스가 제공되는 능력을 말합니다. 애플리케이션이 느리게 작동하거나 예기치 않은 결과나 잘못된 결과를 내놓는다면, 여전히 신뢰할 수 없는 상태에서 사용될 수 있습니다. 이전 비유로 돌아가서, 이용 불가능한 상점은 문을 닫습니다. 신뢰할 수 없는 상점이 문을 열었지만, 엉뚱한 진열대에 상품이 있을 수 있습니다.
애플리케이션 가용성의 측정은 1년의 기간을 기준으로 계산되는 경우가 많습니다. 이 표에는 다양한 수준의 가용성을 보이는 애플리케이션의 경우에 365일의 기간 중 얼마나 긴 다운타임이 발생하는지가 나와 있습니다. (가동 중지 시간은 누적되며 여러 기간에 걸쳐 발생할 수도 있고 한 번에 발생할 수도 있습니다.)
가용성 | 연간 총 가동 중지 시간 |
---|---|
95% | 18일 6시간 |
99% | 3일 15시간 36분 |
99.9% | 8시간 45분 36초 |
99.99% | 52분 34초 |
99.999%('9 아홉 개') | 5분 15초 |
가동 시간은 애플리케이션이 예상대로 실행될 때를 말합니다. 가동 중지 시간은 장치나 서비스가 작동하지 않을 때 발생합니다. 많은 경우 가동 시간과 가용성은 동의어입니다.
인터넷은 복잡하며 웹 애플리케이션의 가용성과 성능에 영향을 미치는 요인은 다양합니다. 일부 요소는 애플리케이션 개발자가 제어할 수 있지만, 일부는 그렇지 않습니다. 하지만 개발자가 가용성에 영향을 미치는 요소를 고려하고 완화할 수 있는 몇 가지 단계가 있습니다.
고가용성은 백업을 통해 단일 장애 지점을 방지함으로써 달성할 수 있는 최고 수준의 일관된 가용성입니다. 고가용성 아키텍처에서는 하나의 서버, 게이트웨이, 서비스가 다운되더라도 가용성을 사용할 수 없게 되지 않습니다. 고가용성 아키텍처는 사이버 공격도 방지할 수 있어야 합니다.
부하 분산은 컴퓨팅 부하와 네트워크 트래픽을 서버 그룹에 균등하게 분산합니다. 따라서 하나의 서버 또는 서버 그룹이 자체에서 효율적으로 처리할 수 있는 트래픽보다 더 많은 트래픽에도 압도되지 않습니다.
다양한 부하 분산 알고리즘이 있습니다. 어떤 부하 분산 장치는 어떤 경우에도 작업 부하를 고르게 분산하는 반면, 다른 부하 분산 장치는 동적 알고리즘을 사용하여 실시간 네트워크 조건 및 서버 상태에 응답합니다.
웹 서버는 때때로 불가피하게 다운됩니다. 상태 검사는 원본 서버가 온라인 상태인지 여부를 모니터링하는 서비스입니다. 상태 검사를 사용하면 부하 분산 장치가 서버 상태에 응답할 수 있으므로 오프라인 상태가 된 서버로 요청이 전달되지 않습니다.
고가용성 애플리케이션을 사용하면 아키텍처에 이중화가 구축됩니다. 이러한 애플리케이션은 랜섬웨어 공격이 발생하거나 다른 이유로 데이터베이스를 사용할 수 없게 될 경우 애플리케이션 데이터의 백업 사본으로 되돌릴 수 있습니다. 이중화 서비스 및 서버 풀은 서버 또는 API의 충돌이 애플리케이션의 기능에 영향을 미치지 않도록 보장합니다.
웹 애플리케이션의 정적 요소는 기본 인프라가 중단되더라도 콘텐츠 전송 네트워크(CDN)를 통해 제공될 수 있습니다. 웹 애플리케이션의 캐시된 버전에서는 전체 기능이 제공되지 않을 수 있지만, 전체 서비스가 복원될 때까지는 기술적으로 사용할 수 있습니다. (Cloudflare Always Online 서비스에 대해 자세히 알아보세요.)
도메인 네임 시스템(DNS)을 통해 사용자는 네트워크를 통해 애플리케이션 서버에 연결할 수 있습니다. DNS가 다운되거나 올바른 IP 주소를 찾을 수 없게 되면 사용자는 애플리케이션을 로드할 수 없습니다. 전 세계에 걸쳐 도달하고 DNS 중심 DDoS 공격을 차단할 수 있는 신뢰할 수 있는 DNS 공급자를 이용하면 DNS 가용성에 영향이 미치지 않도록 할 수 있습니다.
외부 애플리케이션 가용성 모니터링 도구를 사용하면 서비스 공급자가 가용성을 추적하고 애플리케이션이 중단되었을 때 최대한 빨리 대응할 수 있습니다.
지속적인 가용성은 애플리케이션이나 시스템이 지속적으로 작동하도록 보장하는 컴퓨팅 인프라 설계에 대한 접근 방식입니다. 지속적인 가용성의 목표는 100% 가용성이며, 이는 현실적으로 불가능할 수도 있습니다. 인터넷은 핵전쟁을 견딜 수 있도록 설계되었지만, 여전히 사용자의 인터넷 서비스가 다운되는 경우가 있습니다. 그럼에도 불구하고 지속적인 가용성은 사용자에게 최상의 서비스를 제공하는 데 도움이 되는, 가치 있는 목표입니다.
사용 가능한 애플리케이션이 많을수록 애플리케이션을 지원하는 데 지출해야 하는 리소스도 많아집니다. 다시 말해, 99.999% 가용성을 달성하려면 비용이 많이 들 수 있습니다. 개발자는 자신이나 고객이 얼마나 많은 다운타임을 허용할지 결정하고 그에 따라 구축해야 합니다.
다행히 Cloudflare에서는 애플리케이션 개발자가 고가용성 아키텍처를 훨씬 더 실현 가능하게 만듭니다. Cloudflare의 서비스에는 부하 분산, 캐싱, Stream Delivery, DDoS 공격 완화, 봇 관리 등이 기본적으로 포함되어 있습니다. Cloudflare에서는 개발자가 전 세계 330개 도시를 잇는 전역 네트워크에서 실행되는 새로운 기능 또는 완전히 새로운 애플리케이션을 구축할 수 있는 개발자 플랫폼까지도 제공합니다.
Cloudflare에서 애플리케이션의 가용성을 유지하는 방법을 알아보세요.