01
장애는 반드시 난다: 가용성 숫자와 단일 장애점
가용성은 서비스가 쓸 수 있는 상태였던 시간의 비율입니다. 99.9%는 꽤 높아 보이지만 1년으로 바꾸면 약 8시간 45분 멈춘다는 뜻입니다. 9가 하나 늘 때마다 허용되는 멈춤은 10분의 1로 줄고, 그만큼 비용과 설계가 어려워집니다.
| 가용성 | 1년에 멈추는 시간 | 한 달에 멈추는 시간 |
|---|---|---|
| 99% | 약 3일 15시간 | 약 7시간 |
| 99.9% | 약 8시간 45분 | 약 43분 |
| 99.95% | 약 4시간 22분 | 약 22분 |
| 99.99% | 약 52분 | 약 4분 |
| 99.999% | 약 5분 | 약 26초 |
이어 붙이면 낮아지고, 나란히 두면 높아진다
서비스는 여러 구성 요소가 이어져 있습니다. 웹 서버, 앱 서버, DB를 차례로 거쳐야 응답이 나간다면 셋이 모두 살아 있어야 합니다. 그래서 전체 가용성은 각 구성 요소 가용성의 곱입니다. 99.9%짜리 셋을 이으면 약 99.7%로 떨어집니다. 반대로 같은 서버를 두 대 나란히 두면 둘 다 멈춰야 멈추니 그 계층은 99.9999%까지 올라갑니다(두 대의 장애가 서로 독립이라고 가정할 때). 아래 그림에서 계층마다 두 대로 늘려 보세요.
- 전체 가용성
- 99.7% (연 약 26.3시간)
웹 → 앱 → DB 를 거쳐야 서비스가 된다 · 왼쪽 위 = 계층별 가용성
각 구성 요소가 99.9%여도 셋을 이어 붙이면 셋 다 살아 있어야 하니 전체는 99.7%로 떨어집니다. 반대로 같은 서버를 두 대 나란히 두면 둘 다 멈춰야 멈추니 그 계층은 99.9999%가 됩니다. (장애가 서로 독립이라고 가정한 계산입니다.)
하나만 멈춰도 전체가 멈추는 지점을 단일 장애점이라고 합니다. 고가용성 설계는 단일 장애점을 찾아 하나씩 없애는 일입니다. 서버만이 아닙니다. DB, 로드 밸런서, 네트워크 경로, 심지어 "이 서버의 설정을 아는 사람 한 명"도 단일 장애점일 수 있습니다.
SLA는 보장이 아니라 보상 약속
클라우드 서비스마다 SLA(서비스 수준 협약)로 월 가동률을 약속합니다. 그런데 SLA는 "반드시 이만큼 돌아간다"는 보장이 아니라, "못 지키면 요금 일부를 크레딧으로 돌려준다"는 약속입니다. 멈춘 시간의 손실을 메워 주지는 않으니, 내 서비스의 가용성은 설계로 만들어야 합니다. 같은 서비스라도 서버 한 대일 때보다 여러 영역에 나눠 둘 때 SLA가 더 높습니다.
문제에 이런 표현이 나오면 → 이렇게 고른다
- “하나가 멈추면 전체가 멈추는 구성 요소”단일 장애점 (SPOF)
- “99.9% 구성 요소 세 개를 직렬로 연결한 전체 가용성”약 99.7% (곱하기)
- “같은 서버를 두 대 두면 가용성이”높아진다 — 둘 다 멈춰야 멈춤
- “SLA를 못 지켰을 때 받는 것”서비스 크레딧 (손실 보상 아님)
- “99.99% 가용성의 1년 다운타임”약 52분
단일 장애점을 없애려고 서버를 두 대로 늘렸습니다. 그런데 그 두 대가 같은 건물에 있다면 어떨까요?
02
장애의 크기: 서버, 영역, 리전
장애는 크기가 다릅니다. 서버 한 대의 디스크가 고장 나기도 하고, 데이터센터 한 곳이 정전·화재·네트워크 장애로 통째로 멈추기도 하며, 드물게 지역 전체가 자연재해나 대규모 장애로 멈추기도 합니다. 한 번의 장애가 영향을 미치는 범위를 장애 범위(blast radius)라고 합니다.
클라우드는 이 범위를 가용 영역과 리전으로 나눠 보여 줍니다. 리전은 서울·도쿄 같은 지역이고, 그 안에 전원·냉각·네트워크가 서로 독립된 데이터센터 묶음인 가용 영역이 여럿 있습니다. 영역끼리는 동기 복제가 될 만큼 가깝고(지연 몇 밀리초), 한 영역의 재해가 다른 영역에 번지지 않을 만큼은 떨어져 있습니다.
- 배치
- Zone 두 곳에 한 대씩
- 결과
- 서비스 유지
서버 두 대를 어디에 두느냐에 따라 버티는 장애의 크기가 달라진다
두 대를 서로 다른 Zone에 나눠 두었기 때문에, 한 Zone이 통째로 멈춰도 다른 쪽이 받습니다. 대부분의 서비스가 목표로 하는 기본 구성입니다. 네이버 클라우드 한국 리전은 KR-1·KR-2 두 Zone이고, DR은 멀티존 리전에서만 구성할 수 있습니다.
| 배치 | 서버 고장 | 영역 장애 | 리전 장애 | 비용·복잡도 |
|---|---|---|---|---|
| 한 영역에 여러 대 | 버틴다 | 멈춘다 | 멈춘다 | 낮음 |
| 여러 영역에 나눠서 | 버틴다 | 버틴다 | 멈춘다 | 보통 — 대부분의 기본값 |
| 여러 리전에 나눠서 | 버틴다 | 버틴다 | 버틴다 | 높음 — 복제 지연·비용 |
대부분의 운영 서비스는 여러 영역을 기본으로 합니다. 같은 리전 안이라 지연이 작아 DB를 동기 복제할 수 있고, 영역 장애까지 버팁니다. 리전 장애까지 버텨야 하는 경우(법·규제, 매우 큰 서비스)에만 여러 리전으로 넓히고, 그 방법이 7장의 재해 복구 전략입니다.
문제에 이런 표현이 나오면 → 이렇게 고른다
- “데이터센터 하나가 멈춰도 서비스 유지”여러 가용 영역에 나눠 배치
- “지역 전체 재해에도 서비스 유지”다른 리전에 사본 (재해 복구)
- “서버 두 대를 같은 영역에 둔 구성의 약점”영역 장애에 함께 멈춘다
- “영역 간 동기 복제가 가능한 이유”같은 리전 안이라 지연이 작다
- “한 번의 장애가 영향을 주는 범위”장애 범위 (blast radius)
어디까지 버틸지 정하려면 먼저 목표가 있어야 합니다. 멈춰도 되는 시간과 잃어도 되는 데이터는 얼마일까요?
광고
03
무엇을 얼마나 지킬지: RTO와 RPO
재해 복구를 설계할 때 가장 먼저 정하는 숫자가 둘 있습니다. RPO(복구 시점 목표)는 "장애가 났을 때 얼마만큼의 데이터를 잃어도 되는가"를 시간으로 적은 것이고, RTO(복구 시간 목표)는 "얼마나 오래 멈춰 있어도 되는가"입니다.
장애 시점을 가운데 두고 보면 쉽습니다. 뒤로 마지막으로 데이터를 지켜 둔 지점(마지막 백업이나 복제)까지가 잃는 데이터, 즉 RPO입니다. 앞으로 서비스를 다시 열 때까지가 멈춘 시간, 즉 RTO입니다. 아래 그림에서 데이터를 지키는 법과 되살리는 법을 바꿔 보세요.
- RPO
- 24시간
- RTO
- 8시간
장애 시점을 기준으로 뒤로 RPO, 앞으로 RTO · 시간 눈금은 로그, 숫자는 예시
RPO는 "장애가 났을 때 얼마만큼의 데이터를 잃어도 되는가"를 시간으로 적은 것입니다. 하루에 한 번 백업이면 장애 직전까지 쌓인 최대 24시간치를 잃을 수 있습니다. RTO는 "얼마나 오래 멈춰도 되는가"입니다. 새로 만들고 백업에서 복원는 약 8시간이 걸린다고 가정했습니다. 둘 다 짧을수록 비용이 큽니다.
| RPO | RTO | |
|---|---|---|
| 묻는 것 | 잃어도 되는 데이터는 몇 분·몇 시간치인가 | 멈춰도 되는 시간은 몇 분·몇 시간인가 |
| 정하는 것 | 백업 주기, 복제 방식 | 되살리는 방식, 대기 환경의 준비 정도 |
| 0에 가까우면 | 실시간(동기) 복제가 필요 | 이미 돌고 있는 대기 환경이 필요 |
두 목표는 기술이 아니라 사업이 정합니다. 주문 시스템은 1분만 멈춰도 손해가 크고 주문 하나도 잃으면 안 되지만, 사내 리포트 시스템은 하루 멈춰도 괜찮을 수 있습니다. 목표를 짧게 잡을수록 비용이 커지니, 시스템마다 손실과 비용을 따져 정합니다. 복구에 드는 비용이 장애로 잃는 것보다 크다면 그 목표는 너무 높게 잡은 것입니다.
문제에 이런 표현이 나오면 → 이렇게 고른다
- “장애 시 허용 가능한 최대 데이터 손실”RPO (복구 시점 목표)
- “장애 후 서비스를 재개해야 하는 최대 시간”RTO (복구 시간 목표)
- “하루 한 번 백업만 하는 시스템의 RPO”최대 24시간
- “RPO를 0에 가깝게”실시간(동기) 복제
- “RTO·RPO를 짧게 잡을수록”비용이 커진다
목표를 정했으니 이제 멈추지 않게 만들 차례입니다. 먼저, 요청이 갑자기 몰릴 때 서버가 버티게 하는 법부터 봅니다.
Pro 전용
여기까지 무료로 읽을 수 있어요
나머지 5개 장은 Pro 구독자에게 열려 있어요. 장마다 3D 그림과 "문제에 이런 표현이 나오면" 정리가 이어지고, 마지막 장에서는 직접 풀어 보며 확인합니다.
- 04확장과 오토스케일링
- 05복제와 DB 장애 조치
- 06백업과 복원
- 07재해 복구 전략 네 가지
- 08복원력 설계와 점검
PasslyExam
개념을 읽었다면, 이제 시험 문제로 확인할 차례
PasslyExam은 자격증 시험 범위에 맞춰 만든 오리지널 연습문제와 해설, 실전 모의고사를 제공합니다. 왜 그 보기가 정답이고 비슷한 보기는 왜 틀리는지까지 해설로 짚습니다. 가입하면 매일 무료로 연습문제를 풀 수 있습니다.
이 개념이 나오는 시험
- SAA-C03AWS 공인 솔루션스 아키텍트 - 어소시에이트
- CLF-C02AWS 공인 클라우드 프랙티셔너
- SOA-C03AWS 공인 CloudOps 엔지니어 - 어소시에이트
- SAP-C02AWS 공인 솔루션스 아키텍트 - 프로페셔널
- SY0-701CompTIA Security+
- AZ-900Microsoft Azure 기본 사항
- AZ-104Microsoft Azure 관리자
- NCA-100네이버 클라우드 플랫폼 어소시에이트 자격증
- NCP-202네이버 클라우드 플랫폼 전문가 자격증 (네트워크/미디어, 데이터베이스/관리/분석)
- NCP-207네이버 클라우드 플랫폼 전문가 자격증 (트러블슈팅)
- NCP-200네이버 클라우드 플랫폼 전문가 자격증 (개요, 컴퓨팅/스토리지)
- N10-009CompTIA Network+