FinOps·회복성·보안·주권
한빛도서관은 클라우드 청구액을 줄이려고 평소 사용하지 않는 예비 자원과 오래된 백업을 정리하려 한다. 실제로 불필요한 자원일 수 있지만, 장애 때 예약을 다시 시작하는 데 필요한 자원일 수도 있다. 비용이 낮아졌다는 사실만으로 도서관의 목적을 더 잘 달성했다고 할 수 없다.
비용을 줄였는데 장애가 길어졌다면 성공일까
한빛도서관은 클라우드 청구액을 줄이려고 평소 사용하지 않는 예비 자원과 오래된 백업을 정리하려 한다. 실제로 불필요한 자원일 수 있지만, 장애 때 예약을 다시 시작하는 데 필요한 자원일 수도 있다. 비용이 낮아졌다는 사실만으로 도서관의 목적을 더 잘 달성했다고 할 수 없다.
앞 서비스 모델과 공유책임, 실행과 실제 상태는 자원·책임과 실제 실행을 구별했다. 인프라 회복성의 장애 범위·허용 시간·데이터 손실을 여기에 연결해 비용과 회복성을 함께 판단한다.
1. FinOps는 재무팀만의 청구서 절감 활동이 아니다
FinOps는 기술·재무·업무 담당자가 사용과 비용의 근거를 공유하고 기술이 만드는 가치와 재정적 책임을 함께 판단하는 운영 실천이다. 이 절에서 확인한 FinOps Foundation의 프레임워크는 사용·비용 이해, 사업가치의 정량화, 사용·비용 최적화, 실천의 관리라는 영역을 제시한다.1 기술 지출 전반으로 적용 범위를 정할 수 있지만 이 절은 도서관 서비스에 한정한다.
개발자는 비용이 어디에서 생기는지 알아야 하고 재무 담당자는 이용량·품질·운영 조건을 알아야 한다. 업무 책임자는 어떤 결과를 위해 얼마를 쓸 것인지 정한다. 비용표를 만들어도 누구도 자원·계약·설계를 바꾸지 않으면 관찰 자료만 있고 의사결정은 없는 상태다.
목표는 ‘가장 싼 서버’가 아니라 정상 예약·안내·권리 대응을 정한 시간과 보호조건 안에서 제공하는 것이다. 이용이 줄었는데 지출이 늘었는지, 이용이 늘어 단위 비용이 낮아졌는지, 실패 재시도나 불필요한 로그가 늘었는지 구별한다.
자원에 서비스·환경·담당·목적을 연결하는 태그나 계정 구분을 둘 수 있다. 이는 정보의 연결 수단이지 태그 존재만으로 정확한 청구·책임이 확정되는 것은 아니다. 분류되지 않은 비용과 공통 자원도 포함해 실제 청구액과 합계를 맞춘다.
2. 따라 계산 FO-A1: 공통 비용을 지우지 않고 배분한다
예약 서비스 A와 안내 서비스 B의 직접 비용이 각각 3백만 원이고 공통 관찰·지원 비용이 2백만 원이라고 가정한다. 전체는 8백만 원이다. 공통 비용은 합의한 사용 지표에 따라 A에 60%, B에 40%를 배분한다. 실제 회계 규정이나 보편적으로 올바른 배분율이 아니다.
| 대상 | 직접 비용 | 공통 비용의 배분 | 합계 |
|---|---|---|---|
| A | 3백만 원 | 2×0.6=1.2백만 원 | 4.2백만 원 |
| B | 3백만 원 | 2×0.4=0.8백만 원 | 3.8백만 원 |
| 전체 | 6백만 원 | 2백만 원 | 8백만 원 |
각 팀이 직접 비용만 보고하면 2백만 원의 책임과 가치가 사라진다. 반대로 두 팀에 각각 공통비 전액을 더하면 총 10백만 원으로 이중계상한다. 배분은 비용을 새로 만드는 것이 아니라 같은 8백만 원을 어떻게 설명할지 정하는 일이다.
showback은 사용 조직에 비용을 보여 주는 방식이고 chargeback은 정한 규칙에 따라 실제 비용 책임을 부과하는 방식이다. 공통 비용을 중앙 예산에 남길 수도 있지만 의도적으로 중앙이 부담한다는 결정과 아무도 모르게 누락한 비용은 다르다. 공식 Allocation 설명도 직접·공유 비용과 여러 배분 방법을 구별한다.2
호출 수로 배분한다면 큰 파일 처리와 작은 조회의 비용이 같은지 확인한다. 단순 지표는 이해하기 쉽지만 실제 비용 유발 요인과 다를 수 있고, 지나치게 세밀한 계측은 비용이 커질 수 있다. 필요한 정밀도·변경 절차·미분류 항목을 함께 관리한다.
3. 따라 계산 FO-U1: 총액과 단위당 비용이 반대로 움직인다
FO-U1은 같은 기능·품질·비용 포함범위의 두 달이다. 첫 달에는 1.2백만 원으로 예약 6,000건을 정상 완료했고, 다음 달에는 1.5백만 원으로 10,000건을 정상 완료했다고 가정한다. 실패 요청의 재처리 비용도 해당 월 비용에 포함한다.
첫 달 건당 비용은 1,200,000/6,000=200원, 다음 달은 1,500,000/10,000=150원이다. 총비용은 25% 늘었지만 정상 완료 한 건의 평균 비용은 25% 줄었다. 지출 증가만으로 실패라고 하거나 건당 감소만으로 예산 문제가 없다고 결론 내리지 않는다.
단위경제성은 지출을 처리량·이용자·가치 단위와 연결해 해석한다. 자원 한 시간의 단가와 업무 한 건의 비용은 다른 지표다. FinOps Foundation도 자원 효율 단위와 업무 결과 단위를 구별한다.3 계산자원만 싸졌는데 오류·사서 정정 시간이 늘면 전체 개선이 아닐 수 있다.
150원은 해당 월의 평균 비용이다. 다음 예약 한 건을 추가할 때의 비용 증가인 한계비용과 같다고 단정하지 않는다. 고정비와 사용량 구간에 따라 추가 비용이 달라질 수 있다. 다른 품질·지원 범위의 서비스를 이 값으로 바로 순위화하지 않는다.
접수만 된 요청이나 같은 예약의 반복 조회를 완료 건수에 넣으면 분모를 키워 단가를 낮출 수 있다. 처음 정한 업무 단위·고유 식별·품질·기간을 유지하고 바뀌면 이유를 남긴다. 비용·호출량·확정된 예약·이용자가 받은 결과는 같은 수가 아니다.
4. 사용량 최적화와 가격 최적화는 다르다
사용량 최적화는 불필요한 자원을 없애거나 적정 크기·수명·배치로 바꾸는 일이다. 가격 최적화는 필요한 사용량을 어떤 계약·약정·할인 방식으로 구매할지 판단하는 일이다. 같은 소비를 싸게 산 것과 필요 없는 소비를 줄인 것은 다른 개선이다.4
CPU가 낮다고 자원을 즉시 삭제하지 않는다. 저장·네트워크 병목 때문에 CPU만 낮거나 장애·피크의 예비분일 수 있다. 역할·사용·복구 시나리오를 확인한 뒤 바꾸며, 실행을 중지해도 디스크·주소·로그 비용이 남는지 본다.
중단 가능한 저가 자원은 재실행할 분석에 유리할 수 있으나 상태·마감·재처리 비용을 따져야 한다. 할인율만 보고 예약 원장을 같은 자원으로 옮기지 않는다. 약정 할인도 불필요한 계산 자체를 없애 주지는 않는다.
FO-K1: 전체 기간 묶음이라는 가정의 비용 경계
자체 계약 모형에서 여러 자원에 합산해 사용할 1,000자원·시간 묶음을 60,000원에 미리 사고, 남는 시간은 환불·이월되지 않는다고 하자. 같은 범위를 필요할 때 사면 시간당 100원이다. 시간대별 사용 제한이 없는 가상 묶음이며 실제 Savings Plans나 예약 인스턴스의 청구 규칙을 복제한 것이 아니다.
500시간만 쓰면 필요구매 50,000원보다 약정 60,000원이 비싸다. 사용한 시간 기준 약정 실효단가는 120원이다. 800시간이면 필요구매 80,000원 대비 60,000원이며 실효단가는 75원이다. 표시 단가 60원을 실제 사용 단가로 무조건 쓰지 않는다.
동등 비용은 60,000/100=600시간이다. 이 묶음의 허용 범위 안에서 600시간보다 많이 써야 약정이 더 싸다. 이는 두 구매안의 비용 경계이지 전체 사업의 흑자 전환점이 아니다. 범위·만료·미사용 위험과 자원 변경 계획을 함께 본다.
FO-K2: 같은 총량이라도 시간대가 다르면 비용이 달라진다
실제 서비스의 약정은 시간별로 적용될 수 있다. AWS Savings Plans는 시간별 약정에 해당 시간의 적격 사용을 적용하고, 그 시간에 쓰지 못한 약정을 이후 시간으로 넘기지 않는다고 설명한다.5 따라서 월간 합계 사용량만으로 할인 적용을 계산하면 틀릴 수 있다.
이를 연습할 별도 가상 계약은 두 시간 동안 매시간 60원을 내고 그 시간의 1자원·시간까지 충당한다고 정한다. 남는 몫은 다음 시간으로 넘기지 않으며 초과량은 자원·시간당 100원이다. 할인 없는 필요구매도 100원이다. 실제 제품의 단가·통화·약정 기간을 나타내지 않는다.
| 두 시간의 사용 | 총사용량 | 약정비 | 초과비 | 최종 비용 |
|---|---|---|---|---|
| 첫 시간 1, 둘째 시간 1 | 2자원·시간 | 120원 | 0원 | 120원 |
| 첫 시간 0, 둘째 시간 2 | 2자원·시간 | 120원 | 100원 | 220원 |
두 경우 필요구매는 모두 200원이다. 고른 사용에서는 80원이 절약되지만 몰린 사용에서는 20원이 더 든다. 첫 시간의 빈 몫이 둘째 시간의 초과를 상쇄하지 않는다는 조건 때문이다. 전체 기간의 사용 비율이 같아도 약정 활용과 절감은 다를 수 있다. 실제 구매에서는 시간별 수요·적격 서비스·공유·약정 적용순서와 범위를 확인한다.
5. 서비스의 목표와 계약, 실제 측정의 경계를 맞춘다
SLI는 서비스 품질을 관측하는 지표, SLO는 그 지표의 목표다. SLA는 약속과 책임을 정한 계약으로 실제 보상·제외 조건을 따로 확인한다. Google SRE의 설명도 사용자 결과·측정 구현·목표·계약을 구별한다.6
자체 CR-S1은 30일 내내 운영하는 예약 API의 시간 기준 가용성 목표를 99.9%로 정한다. 전체 43,200분에서 불가용 예산은 43.2분이다. 관측된 장애 60분이고 나머지가 정한 정상 조건을 만족한다고 확인됐다면 가용률은 (43,200−60)/43,200×100≈99.8611%로 미달이다.
오류예산은 허용 오류·불가용량에 따라 무엇을 우선 개선하고 언제 위험한 변경을 줄일지 판단하는 도구다. 예산 안이라고 이용자 피해가 없거나 법정 통지까지 면제되는 것은 아니다. 마감시간 중단의 영향과 클라우드 사고의 통지를 별도로 확인한다.
시간 기준 99.9%와 요청 기준 99.9%는 분모가 다르다. 요청이 적은 구간의 긴 중단, 백엔드에 도달하지 못한 요청, 오류인데 성공 코드가 반환된 요청을 어떻게 관측할지 정한다. 로그가 없다는 사실만으로 정상 또는 장애 어느 쪽도 자동 확정하지 않는다.
CR-S2: 관측 공백을 빼면 목표가 좋아 보일 수 있다
CR-S2는 동일 비중의 1분 구간 1,000개를 각각 성공·실패로 평가하는 별도 표본 지표다. 970구간은 성공, 10구간은 실패, 20구간은 관측 공백으로 상태를 모른다고 하자. 관측된 집단의 성공률은 970/980≈98.98%지만 전체 1,000구간의 비율은 아직 하나로 확정할 수 없다.
미확인 20구간이 모두 실패라면 97%, 모두 성공이라면 99%다. 이것은 해당 조건의 가능한 범위이며 통계적 신뢰구간이 아니다. 목표가 98%라면 관측 집단의 98.98%만으로 전체 통과를 선언할 수 없다. 보수적으로 공백을 실패 처리하는 운영 규칙을 택할 수 있지만, 그 정책상 값과 실제 장애가 확인됐다는 사실은 구분한다.
관측 복구·외부 측정·접점 기록으로 공백을 좁히고 측정 장치의 신뢰성도 함께 본다. 같은 원리로 비용·사용량이 빠진 구간을 0원·0건으로 자동 채워 단위경제성을 좋게 만들지 않는다.
6. 복제 수보다 함께 실패할 수 있는 범위를 본다
서버가 여러 개여도 전원·네트워크·관리 계정·원장·잘못된 배포를 공유하면 함께 실패할 수 있다. 가용영역과 리전은 장애 범위를 나누는 수단이지만 서비스·계정·설정·자료의 모든 의존성이 자동으로 독립되지는 않는다.7
CR-A1은 한 시점에 두 필수 구성 A·B가 각각 확률 0.999로 정상이고 서로 독립이라는 인위적 모형이다. 둘 다 필요하면 전체는 0.999×0.999=0.998001, 99.8001%다. 각 구성의 수치만큼 전체도 정상이라고 쓰지 않는다.
반대로 완전히 독립된 동일 서비스 두 개 중 하나만 정상이어도 되고, 충분한 용량·즉시 전환·다른 실패가 없다면 모두 실패할 확률은 0.001×0.001이다. 전체 정상확률은 99.9999%다. 이 값은 강한 가정의 결과이지 실제 서비스나 계약의 보장값이 아니다.
CR-A2: 두 복제본 앞의 공통 인증이 멈추면
공통 인증 C가 정상일 확률을 0.99라고 하자. C가 정상일 때에만 뒤의 두 실행계통이 각각 0.999 확률로 정상이며 서로 조건부 독립이라고 정한다. C가 실패하면 서비스를 사용할 수 없다. 다른 실패·전환 지연은 없다는 가정이다.
전체 정상확률은 0.99×(1−0.001²)=0.98999901, 약 98.999901%다. 실행계통만 계산한 99.9999%가 전체에 그대로 적용되지 않는다. 전체가 필수 공통 구성 C의 99%보다 좋을 수 없는 이 모형의 관계도 확인한다.
독립 가정이 근거 없이 주어졌다면 숫자부터 곱하지 않는다. 도식에 공통 인증·DNS·키·원장·배포와 장애 후 잔존 용량을 표시하고 실제 시나리오로 확인한다. 이 예는 의존성의 영향을 읽는 산술이지 실제 장애 확률을 추정한 결과가 아니다.
7. 복제·백업·재해복구의 목적을 나눈다
앞 인프라 절은 RTO를 서비스 복구시간 목표, RPO를 되살릴 자료 시점에 대한 허용 손실의 시간상 경계로 설명했다. 둘을 더해 전체 중단시간으로 만들지 않는다. 여기서는 자료·권한·실제 업무를 함께 복구하는 기준에 적용한다.
복제는 다른 곳에 상태를 유지하지만 잘못된 삭제·변조도 전파할 수 있다. 시점별 백업과 복구 검증은 별도다. AWS의 재해복구 설명도 전략 선택을 중단·손실 허용, 비용·복잡성과 연결한다.7
| 준비 방식 | 평소 준비와 재개할 일 | 남는 검토 |
|---|---|---|
| 백업에서 재구축 | 자료를 보존하고 실행·연결·설정을 재구축 | 복원시간·계정·키·외부 의존 |
| 핵심 기반만 대기: pilot light | 데이터 등 핵심 유지, 추가 구성을 기동·배치 | 추가 자원·배포·전환의 시간과 용량 |
| 축소된 전체 서비스 대기: warm standby | 작은 용량의 전체 흐름을 운영하며 필요시 확장 | 실제 수용량·원장 전환·정합성 |
| 여러 곳에서 동시 서비스: active/active | 평소 여러 위치에서 요청을 실제 처리 | 쓰기 충돌·공통 실패·비용·운영 복잡성 |
이 구분에서 pilot light는 추가 행동 전에는 완전한 요청 경로가 준비되지 않고 warm standby는 축소된 수준에서 동작한다. 어느 이름도 특정 RTO·RPO를 보장하지 않는다.7 자료 크기·복제 지연·권한·외부 서비스와 준비된 처리량을 확인해야 한다.
복구 절차가 장애 난 관리 기능이나 원래 지역의 키에 의존하면 대체 환경이 있어도 막힐 수 있다. 복구에 필요한 자원 생성·인증·해독·연결을 장애 시나리오에 넣는다. 이미 충분히 배치한 자원과 복구 중 확보할 예정인 자원을 같은 준비 상태로 세지 않는다.
따라 판단 CR-R1: 데이터 목표는 맞지만 시간 목표는 틀린다
자체 목표가 RPO 15분·RTO 30분이고 10:00에 중단됐다고 하자. 복원 가능한 마지막 일관된 자료가 09:50이라고 확인된 가정이다. 서버는 10:20에 켜졌지만 예약·권한·알림을 대사하고 정한 업무를 할 수 있게 된 때는 10:35다.
자료점 간격 10분은 RPO 안이지만 업무 재개 35분은 RTO를 5분 초과한다. 서버 기동 20분만 쓰면 목표를 지킨 것처럼 보인다. 10분의 간격을 예약 10건 유실로 해석하지 않으며 실제 손실·중복·외부 발송을 대사해야 한다.
침해·손상이 의심되면 가장 최근의 백업 시각만으로 복구점을 고르지 않는다. CR-R1은 09:50 자료의 사용 가능성을 이미 확인한 예다. 그 전제가 깨지면 원래 판정을 그대로 유지하지 말고 안전하게 쓸 수 있는 자료점·후속 보정·시간 목표를 다시 판단한다. 빠른 재개를 위해 검증을 생략한 결과를 목표 달성으로 쓰지 않는다.
8. 주권 요구는 서버 주소 한 칸보다 넓다
데이터 레지던시는 저장·처리 위치의 조건이고, 디지털 주권의 요구는 누가 어떤 권한·의존성·규범 아래 자료·기술·운영을 통제하는지까지 묻는다. Microsoft의 공개 설명도 데이터 통제·운영 통제·기술적 독립을 구별한다.8 해당 기업 제품의 보증이나 모든 국가의 법적 정의를 대신하지 않는다.
도서관은 실제 적용법과 기관 정책에서 필요한 범위를 먼저 정한다. 특정 국가에 원본이 있어도 백업·로그·지원 자료·관리자 접근은 다른 경로를 쓸 수 있다. ‘국내 데이터센터’라는 표시만으로 국외 접근·이전 문제가 끝났다고 하지 않는다. 개인정보 처리 흐름과 클라우드 법규를 함께 대조한다.
| 질문 | 확인할 대상 |
|---|---|
| 어디에 남는가 | 원장·백업·로그·캐시·지원 자료와 처리 위치 |
| 누가 접근하는가 | 이용자·운영자·공급자·재수탁자의 권한·승인·기록 |
| 누가 키를 관리하는가 | 생성·사용·회수·복구 권한과 키 서비스 의존 |
| 무엇을 독립적으로 할 수 있는가 | 중단·복구·이관·감사 시 실제 운영권과 준비 |
| 어떤 규범·계약을 따르는가 | 관할·자료 종류·행위·기간·예외·제공 범위 |
| 나갈 때 무엇을 받는가 | 반환 자료·관계·판본·이력과 별도 재구성할 자원 |
키 관리권, 키 사용, 키 반출은 다르다
‘고객 관리 키’는 고객이 정책·수명 등을 관리하는 범위를 뜻할 수 있지만, 비밀 키 자료를 원하는 곳으로 내려받을 수 있다는 뜻은 아니다. AWS KMS의 고객 관리 키와 HSM의 키 자료, 별도로 생성되는 데이터 키도 다른 대상을 가리킨다. 원문은 키 식별값이 실제 키 자료와 무관하며, HSM의 해당 기반 키는 평문으로 반출하지 않도록 설계됐다고 설명한다.9
따라서 키의 이름이나 식별자만 복사해 다른 서비스에 같은 이름을 만들면 기존 암호문을 읽을 수 있다는 가정은 틀리다. 복구·이관 시 원래 서비스에서 허용된 키 사용이 가능한지, 목적지에서 읽을 수 있게 재암호화하거나 제공되는 이관 기능을 사용할 수 있는지 확인한다. 모든 종류의 키가 반출 가능하거나 반대로 전부 반출 불가능하다고 일반화하지 않는다.
암호화는 비인가 열람 위험을 낮추지만 잘못된 업무권한·키 상실·서비스 중단을 해결하지 않는다. 고객이 정책을 관리해도 실제 복호화를 호출할 역할·키 서비스·리전·감사 경로가 필요하다. 키 삭제·회수는 필요한 자료의 복구와 보존을 확인한 뒤 수행하고, 그 행위를 모든 평문·로그·사본의 삭제 완료로 대신하지 않는다.
공급자 연결이 끊겨도 계속 운영할 필요가 있는지 요구를 명시한다. 모든 업무가 완전한 독립 운영을 필요로 하지는 않으며 비용·기능·위험을 비교한다. 클라우드 서비스 종료안처럼 법정 반환 정보, 계약한 전환 지원, 실제 재개 자원을 나누어 통제 가능성을 확인한다.
9. 완성 운영안 FO-G1
FO-G1은 예약·안내·권리 대응을 유지하면서 비용과 위험을 설명하는 운영안이다. 업무 책임자는 정상 완료 기준·SLO·RPO·RTO, 기술 담당은 사용·확장·장애, 재무 담당은 청구·배분·약정, 보안·개인정보 담당은 접근·자료 경로·보존·이전을 맡는다. 실제 구매·법률 승인을 수행한 사례가 아니다.
FO-A1처럼 직접·공통 비용을 대사하고 정상 예약당 비용과 자원 단가를 나누어 FO-U1의 총액 증가·단위 개선을 설명한다. FO-K1의 기간 묶음과 FO-K2의 시간별 약정을 구별하여 수요·만료·적격 범위를 검토한다. 필요한 예비 자원·백업을 지우거나 쓰지 않은 시간 몫을 임의로 이월해 절감을 꾸미지 않는다.
서비스 측정에는 성공·실패·미관측과 실제 수신·처리 경계를 둔다. CR-S2의 97~99% 범위처럼 미확인이 목표 판정을 바꿀 수 있으면 근거를 보완한다. 관측된 집단의 좋은 비율을 전체 결과로 표시하지 않으며, 장애와 법정 통지·주민 업무 영향을 별도로 추적한다.
공통 인증·데이터·키·배포의 실패범위를 그리고 잔존 용량을 확인한다. RPO 15분·RTO 30분을 충족할 전략 후보는 명칭이 아니라 대체 환경에서의 자료·권한·접속·거래·외부 결과 대사로 판단한다. CR-R1의 35분이 반복되면 단계별 원인과 준비·대안을 검토하고, 완료 기준을 기동으로 바꿔 통과시키지 않는다.
주권·종료는 위치뿐 아니라 접근·키 사용·관할·반환·재구성의 조건을 맞춘다. 보안·보존 요구를 위반하며 복구 위치만 바꾸는 안은 채택하지 않는다. 격리된 새 환경에서 반환할 원장·관계·판본을 읽고 필요한 업무를 수행할 수 있는지 검증한다. 실제 개통 전에는 옛 원장의 독립 쓰기 권한 회수를 확인한 뒤 새 쓰기를 연다. 옛 키·사본·계약 등 잔여는 보존·복구 조건을 충족한 뒤 정리한다. 미확인 기능은 확대하지 않고 담당·추가 확인·잔여를 남긴다.
10. 자체 10점 문제와 완성 답안
FO-U1의 비용 변화와 CR-R1의 복구 결과를 해석하고 클라우드 비용 최소화의 한계를 설명하시오.
목차: 비용·가치의 단위 → 두 복구 목표 → 필요한 보호·준비와 선택.
같은 비용·품질 포함범위에서 월 총액과 정상 완료당 비용을 계산한다. 복구에서는 사용 가능한 자료점과 업무 재개 시각을 각각 목표와 비교한다.
10점 자체 연습의 구성과 완성 답안
목차: 비용 총액·단위비용 → 복구 목표·실제 → 공통 실패범위 → 최적화 한계
넓은 화면에서는 가로 시간축을, 좁은 화면에서는 세로 시간축을 읽습니다. 각 시각과 10·20·10·5분의 간격은 같습니다.
CR-R1: 자료점과 업무 재개의 다른 목표
사용 가능한 마지막 일관된 자료점이 확인된 교육용 사례다. 아래 기록은 같은 날의 시간 순서이며, 각 간격을 숫자로 읽는다.
- 09:50 — 자료점
복원하여 사용할 수 있는 마지막 일관된 자료다.
- 10:00 — 중단
자료점에서 10분 뒤 중단됐다. 여기서 업무 복구시간을 세기 시작한다.
- 10:20 — 서버 기동
중단에서 20분 뒤 서버는 켜졌다. 예약·권한·알림을 대사하여 업무를 재개한 상태는 아직 아니다.
- 10:30 — RTO 시한
중단에서 30분 뒤다. 목표는 이 시각까지 정한 업무를 다시 수행하는 것이다.
- 10:35 — 실제 업무 재개
예약·권한·알림을 대사하고 정한 업무를 재개했다. RTO 시한보다 5분 늦다.
자료점 경계: RPO 충족
09:50 자료점 → 10:00 중단은 10분 ≤ 목표 15분이다. 사용 가능한 자료라는 전제에서 RPO 안이다.
업무 재개 경계: RTO 초과
10:00 중단 → 10:35 업무 재개는 35분 > 목표 30분으로 5분 초과다. 10:20 서버 기동을 업무 완료로 대신 세지 않는다.
자료 손실 건수·중복·외부 발송은 이 시간 간격만으로 알 수 없어 실제 결과를 대사한다. 낮은 비용과 RPO 충족이 RTO 초과를 상쇄하지 않는다.
FO-U1의 같은 품질·비용 범위에서는 총액 1.2→1.5백만 원(+25%)과 정상 완료당 200→150원(−25%)을 각각 보고한다. 원래 단위 비용 계산과 복구 시각을 공동 판단의 근거로 사용한다.
완성 답안
FinOps는 기술·재무·업무가 사용·비용 근거를 공유해 가치와 재정적 책임을 판단하는 실천이다. FO-U1의 1.2백만 원·6,000건은 건당 200원, 1.5백만 원·10,000건은 150원이다. 동일 범위에서 총액은 25% 늘고 정상 완료당 평균 비용은 25% 줄었다. 평균비용을 다음 한 건의 한계비용으로 쓰거나 실패·정정 비용을 빼서 비교하지 않는다.
CR-R1은 중단 10:00과 사용 가능한 자료점 09:50의 간격 10분으로 RPO 15분 안이다. 서버는 10:20에 켜졌지만 업무 재개는 10:35여서 RTO 30분을 5분 초과한다. 서버 기동·자료 복원·업무 정상화를 나누고 실제 손실·중복·외부 결과를 대사한다.
예비 자원·백업·키·이력의 비용은 필요한 회복과 보호에 쓰일 수 있다. 공통 실패·실제 복원·키 사용·반출 조건과 비용을 함께 비교한다. 약정도 전체 기간 합계인지 시간별 적용인지 확인하며, 낮은 청구액이나 인증·위치 표시로 서비스·권리·복구 책임의 완료를 선언하지 않는다.
11. 자체 25점 문제와 완성 설계 답안
클라우드 예약 서비스의 FinOps·회복성·보안·주권을 연결한 FO-G1을 설계하시오.
구성 과정: 동일 업무의 비용·성과·장애·자료 경로를 연결하고, 미확인과 변경·확대 보류의 조건까지 쓴다.
비용 배분과 청구 합계를 맞추고 시간별 약정의 빈 몫을 뒤 시간으로 넘기지 않는다. 관측 공백·공통 인증·키 의존이 승인과 복구에 주는 영향을 별도로 설명한다.
25점 자체 연습의 설계 과정과 완성 답안
목차: 가치·비용 → SLO·실패영역 → 백업·복구 → 보안·주권 → 운영 의사결정
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
FO-G1은 같은 품질의 정상 예약·안내·권리 대응을 기준으로 판단한다. 낮은 비용으로 필수 보호·복구·업무 조건을 상쇄하지 않는다. 예시의 RPO 충족과 RTO 초과, 총액 증가와 단위비 감소는 각각의 범위로 보고한다. SLO·복구와 보안·키·지역·계약의 상호 제약을 대조하고, 미확인 또는 조건 미달 범위는 확대를 보류해 담당·추가 확인·중단·종료 결정을 남긴다.
완성 설계 답안
FO-G1은 정한 품질의 예약·안내·권리 대응을 지속하면서 비용과 책임을 설명한다. 업무 책임자는 정상 완료 단위·SLO·RTO·RPO, 기술 담당은 자원·상태·장애, 재무 담당은 청구·배분·약정, 보안 담당은 권한·자료·키·이관을 맡는다. 비용 하나로 필수 의무와 운영 요구를 상쇄하지 않는다.
FO-A1의 직접비 3+3과 공통비 2, 총 8백만 원을 합의한 60:40에 따라 4.2·3.8로 대사한다. FO-U1의 총액 25% 증가와 건당 200→150원의 감소를 함께 본다. FO-K1의 600시간 비용 경계는 기간 묶음의 가정이고, FO-K2는 같은 총 2자원·시간도 고른 사용 120원·몰린 사용 220원이다. 실제 약정의 시간·범위·미사용 조건을 확인하고 필요한 여유를 무조건 삭제하지 않는다.
SLI는 사용자 결과와 관측 경로를 정한다. CR-S1의 30일 99.9%는 불가용 예산 43.2분이며 확인된 장애 60분이면 약 99.8611%로 미달이다. CR-S2의 관측집단 98.98%는 전체 97~99%의 가능한 범위와 다르므로 미관측을 정상으로 채워 승인하지 않는다. 오류예산·위험한 변경 제한·원인 개선과 사건 통지의 책임을 구별한다.
회복은 공통 인증·키·자료·배포와 잔존 용량을 분석한다. CR-A2에서는 실행계통 이중화만으로 필수 공통 인증의 실패를 없애지 못한다. pilot light의 추가 준비와 warm standby의 축소된 요청 처리를 구별하고 실제 자료점·접속·권한·거래·외부 결과를 검증한다. CR-R1의 RPO 충족·RTO 5분 초과를 별도로 보고하며 더 빠른 시각만 고르거나 검증을 생략하지 않는다.
주권은 원장·백업·로그·지원 자료의 위치, 접근자·관할·키 사용·독립 운영·반출을 확인한다. 키 관리권을 키 자료의 반출권으로 바꾸지 않고 허용된 재암호화·이관 경로를 정한다. 반환 정보와 별도 재구성할 환경·설정을 구별해 격리된 새 환경에서 업무 수행을 검증한다. 개통 전 옛 원장의 독립 쓰기 권한 회수를 확인하고 새 쓰기를 연다. 옛 키·사본·계약 등 잔여는 보존·복구 조건을 충족한 뒤 정리한다. 남은 미확인과 담당을 기록하고 해당 범위 확대를 보류한다.
12. 자기교정
| 오답 | 부족한 이유 | 수정 예 | 복습 |
|---|---|---|---|
| FinOps는 재무팀이 싼 서버만 고르는 것이다 | 기술·품질·가치·책임 누락 | 업무·기술·재무가 같은 근거로 선택 | 정의 |
| 각 팀 직접비만 더하면 전체비용이다 | 공통비 2백만 원 누락 | 4.2+3.8=8백만 원으로 대사 | 배분 |
| 총액 25% 증가면 효율도 25% 나빠졌다 | 업무량·단위를 무시 | 건당 200→150원과 총액을 함께 판단 | 단위 |
| 월 총량이 같으면 시간별 약정 절감도 같다 | 사용 시간대·미사용 이월 조건 누락 | FO-K2의 120원과 220원 구별 | 약정 |
| 관측된 980구간만으로 전체 성공률을 확정한다 | 미관측 20구간을 삭제 | CR-S2의 전체 97~99%와 정책값 분리 | 측정 |
| 두 서버가 독립이면 공통 인증도 영향 없다 | 필수 공통 의존을 계산 밖으로 뺌 | CR-A2의 조건부 구조를 곱해 확인 | 실패범위 |
| 서버 기동 20분이므로 RTO 30분 통과다 | 업무 재개 35분 누락 | 5분 초과와 실제 재개 기준을 보고 | 복구 |
| 고객 관리 키는 항상 내려받을 수 있고 국내 저장이면 모든 조건이 끝난다 | 키·접근·위치·관할·반출의 다른 축 혼합 | 키 사용 경로·자료 관계·규범을 각각 확인 | 주권 |
조건 변경과 해설
다음 달 같은 1.5백만 원으로 7,500건을 정상 완료하면? 건당 200원으로 첫 달과 같다. 총액과 정상 업무량이 각각 25% 늘었다. 오류·지원·비용 범위가 같은지 확인한 뒤 해석한다.
FO-K1의 800시간과 FO-K2의 두 시간 합계 2를 같은 방식으로 합산해도 될까? FO-K1은 기간 내 자유 합산이 가능한 가상 묶음이므로 60,000/800=75원이다. FO-K2는 시간별 몫을 넘기지 않아 사용이 몰리면 220원이 된다. 어느 계약을 적용하는지 확인하지 않고 전체 합계식만 복사하지 않는다.
CR-R1의 자료점이 09:40이고 업무 재개가 10:25라면? 사용 가능한 자료라는 전제에서 RPO는 간격 20분으로 5분 초과, RTO는 25분으로 충족한다. 키 서비스가 없어 실제로 자료를 읽지 못하면 이 ‘사용 가능’ 전제부터 성립하지 않으므로 재개와 복구점을 확정할 수 없다.
독립 확인: 일부 관측 공백을 복원한 뒤에도 목표가 미확정일까
CR-S2의 공백 20구간 중 12구간을 복구하여 성공 7·실패 5로 확인했고 8구간은 여전히 미확인이다. 원래 성공 970·실패 10과 목표 98%는 같다. 새 관측 집단 비율과 전체 가능한 범위를 계산하여 통과 여부를 판단한다. 전체 공백을 정책상 실패로 처리하는 값과 실제 장애가 확인된 값도 구별한다.
변경 조건의 완전한 풀이와 오답 교정
새 성공 977, 실패 15, 미확인 8로 합계 1000이다. 관측 992구간의 성공률은 977/992≈98.49%다. 전체는 미확인 구간이 모두 실패일 때 977/1000=97.7%, 모두 성공일 때 985/1000=98.5%이므로 98% 통과는 아직 미확정이다. 최소 3개의 미확인 구간이 성공이어야 전체 성공 980으로 98%에 도달한다. 정책상 미확인을 실패로 세면 97.7%지만 실제 확인 실패는 15구간이며 8구간을 실제 장애라 단정한 기록과는 다르다. 관측 집단의 98.49%만으로 목표 충족을 선언하거나 공백을 분모에서 없애는 답은 승인에 필요한 전체 상태를 숨긴다. 이 범위는 통계적 신뢰구간이 아니라 주어진 8구간의 가능한 상태 범위다.
풀이를 닫고 120원·220원의 같은 총량/다른 시간대, 공통 인증 99%가 복제본 99.9999%를 제한하는 이유, 키 관리권·사용권·자료 반출을 각각 설명한다.
2026-10-05 Savings Plans 적용 공식 문서와 AWS KMS 개념 문서를 다시 열람했다. 실제 구매 단가·계약·모든 키 유형이나 국내 법률 적용을 확인한 것으로 확대하지 않는다.
근거·판본·적용 범위
본문의 가격·시각·확률·지표·계획·문제·답안은 자체 교육 자료다. 실제 청구 분석·구매·법률 적용·장애/복구 시험·독립 감수는 수행하지 않았다.
회독의 핵심
지출과 같은 품질의 결과를 연결하되 시간대·분모·관측 공백을 숨기지 않는다. 공통 의존과 사용 가능한 자료점, 실제 키·권한·복구 경로를 확인한다. 낮은 비용이 아니라 필요한 가치·보호·회복 조건을 만족하는 선택을 근거와 결과로 관리한다.
보강 연습 1: 컴퓨트 비용 감소가 업무 단가 감소를 뜻하는가
두 기간은 길이와 서비스 품질 기준이 같고 아래 비용을 모두 포함한다. 첫 기간의 컴퓨트·공유·오류 수정 비용은 각각 900,000원·300,000원·200,000원, 정상 완료한 서로 다른 업무는 7,000건이다. 다음 기간은 720,000원·300,000원·480,000원, 정상 완료 업무는 6,000건이다. 다음 기간의 실행 시도는 재시도를 포함해 12,000회다. 수치는 실제 요금제가 아닌 교재 계산용이다.
총비용과 정상 완료 업무당 평균 비용을 비교하라. “컴퓨트 비용이 20% 줄었고 720,000/12,000=60원이므로 최적화에 성공했다”는 보고를 평가하라.
포함 비용과 완료 단위를 맞추는 완결 풀이
첫 기간 총비용은 900,000+300,000+200,000=1,400,000원, 업무당 평균 비용은 1,400,000/7,000=200원이다. 다음 기간은 720,000+300,000+480,000=1,500,000원, 평균 비용은 1,500,000/6,000=250원이다. 컴퓨트 비용은 20% 줄었지만 총비용은 약 7.14% 증가, 업무당 비용은 25% 증가했다.
periods = [(900_000, 300_000, 200_000, 7_000),
(720_000, 300_000, 480_000, 6_000)]
for compute, shared, correction, completed in periods:
total = compute + shared + correction
assert completed > 0
print(f"총비용={total}, 업무당비용={total / completed:.0f}")Python 3 출력은 총비용=1400000, 업무당비용=200, 총비용=1500000, 업무당비용=250이다. 이 코드는 산술을 확인하며 실제 청구서·원가 배부를 조회하지 않는다.
60원은 공유·오류 수정 비용을 빠뜨리고, 완료 업무 대신 재시도 포함 시도를 분모에 쓴 값이다. 실패와 중복 시도가 늘면 이 지표만 좋아질 수도 있다. FinOps 단위 경제성 설명에 따라 비용 범위와 업무 단위를 함께 정하고, 업무 ID로 중복 제거한 완료 수와 품질 충족 여부를 확인한다. 실제 배부 규칙이 바뀌었다면 같은 규칙으로 두 기간을 다시 비교한다.
이번 평균 비용만으로 추가 업무 한 건의 한계비용을 결정할 수는 없다. 추가 수요가 공유비·인력·용량을 어떻게 바꾸는지 따로 분석한다. 또한 산술 결과만으로 원인이나 특정 자원의 제거를 결정하지 않고, 오류 수정 비용과 완료 수가 달라진 이유를 조사한다.
보강 연습 2: 높은 관측 성공률로 누락 구간까지 통과시킬 수 있는가
동일 가중치의 1분 구간 1,000개 중 성공 980개·실패 5개·상태 미확인 15개다. 전체 구간의 성공 비율 목표는 99% 이상이며, 관측 누락을 실제 실패로 정의한다는 별도 정책은 없다. 관측된 구간만의 성공률과 전체 기간의 가능한 성공률 범위를 구하라.
나중에 미확인 구간 중 성공 8개·실패 3개가 확인되어 미확인 4개가 남았다. 지금 목표 달성을 확정할 수 있는가? 남은 구간 중 몇 개가 성공해야 하는가?
분모와 미확인 상태를 끝까지 보존하는 완결 풀이
처음 관측 성공률은 980/(980+5)≈99.49%다. 전체 기간은 미확인 15개가 모두 실패이면 980/1,000=98%, 모두 성공이면 995/1,000=99.5%다. 목표는 성공 990개 이상이므로 미확인 중 10개 이상이 성공해야 한다. 관측 성공률이 99%를 넘었다는 이유로 전체 목표 달성을 확정할 수 없다.
추가 확인 뒤에는 성공 988개, 실패 8개, 미확인 4개다. 전체 가능한 범위는 98.8%~99.2%이고, 남은 네 구간 중 두 개 이상이 성공해야 한다. 확인된 구간만의 성공률은 988/996≈99.20%이지만 전체 기간 판정은 여전히 미확정이다. 이 범위는 미확인 상태의 가능한 값으로 계산한 경계이며 통계적 신뢰구간이 아니다.
SRE의 SLI 설명처럼 성공 이벤트와 전체 이벤트를 먼저 정의하고, 측정 방식의 포괄 범위를 확인한다. 이 문제의 시간 구간 지표를 요청 건수 지표로 바꾸려면 요청 수와 결과가 별도로 필요하다. 미확인 구간을 분모에서 빼고 전체 성공률로 이름 붙이지 않는다.
운영 보고에는 관측 성공률·미확인 수·전체 가능 범위·목표 판정을 함께 적고 누락 원인을 조사한다. 조직이 누락을 실패로 간주하는 보수적 정책을 별도로 정하면 해당 정책 지표를 계산할 수 있지만, 그 정책 판정과 실제 상태가 확인되었다는 주장을 구별한다. SLO 계산만으로 계약상의 SLA 보상 조건을 추정하지 않는다.
보강 연습 3: 최신 백업 파일이 있어도 복구 가능한 시점은 더 과거일 수 있다
10:00 장애에 대해 RPO 목표 15분·RTO 목표 30분이다. 09:50 백업은 손상 여부와 복호화가 확인되지 않았고, 09:35 백업만 일관성과 복호화·복원이 확인되었다. 추가 저널로 더 최신 상태를 재구성할 수 있다는 증거는 없다. 09:35 백업을 사용해 10:25에 합의된 업무 흐름이 정상화되었다. 두 목표의 충족 여부를 각각 판단하라.
별도 이전 계획은 암호문을 새 환경으로 복사하고 같은 문자열의 KMS 별칭을 만들었으므로 기존 키를 즉시 폐기해도 된다고 한다. 실제 키·권한·복원 경로 검증은 아직 없다. 계획에서 필요한 검증을 설명하라.
사용 가능한 데이터 시점과 업무 정상화 시점을 구별하는 완결 풀이
검증된 복구 시점은 09:35이므로 실제 복구 지점 간격은 25분이다. RPO 목표 15분보다 10분 초과한다. 09:50 파일의 존재만으로 RPO를 10분으로 보고하지 않는다. 한편 업무 정상화는 10:25이므로 RTO는 25분, 목표 30분을 충족한다. RTO 통과가 RPO 미달을 지우지 않는다. 25분 동안 손실된 실제 레코드 수는 쓰기 기록 없이는 알 수 없다.
09:50 백업은 격리된 복원 경로에서 무결성·일관성·복호화·업무 데이터까지 검증한다. 이후 사용 가능함이 확인되면 그 증거로 복구 지점 평가를 갱신한다. 최신 복제를 유지했다는 사실만으로 손상 전 시점의 복원을 보장할 수 없다는 점은 AWS 복구 전략 설명의 데이터 손상 조건과도 맞는다.
같은 별칭 문자열은 같은 암호학적 키 재료나 기존 암호문의 복호화 가능성을 보장하지 않는다. AWS KMS 식별자 설명에 따라 식별자·별칭과 키 재료를 구별하고, 실제 원본 키·키 버전·암호화 문맥·허용 권한·대상 환경의 복호화 경로를 확인한다. 모든 KMS 키를 평문으로 내보낼 수 있다고 가정하지 않는다.
기존 키 폐기는 승인된 키 사용·재암호화 경로, 필요한 보관·복원 범위, 대상 환경의 실제 읽기·복원 성공을 확인한 뒤 판단한다. 원본 데이터만 읽어 보고 백업도 읽을 수 있다고 추정하지 않는다. 전환에는 이전 작성자의 쓰기 권한 차단, 대상 쓰기 개방 순서, 실패 시 되돌림 조건도 필요하다. 이는 문제의 운영 조건이며 특정 법률이나 계약의 충족 판정은 아니다.
Footnotes
-
FinOps Foundation, FinOps Framework Overview와 Principles. https://www.finops.org/framework/ ; https://www.finops.org/framework/principles/ . 2026-09-20 보완에서 Overview의 사업가치·협업·책임과 네 영역을 재대조했다. 한국어 표현은 요약·적용이며 원문 도식·조직 사례를 복제하지 않았다. 원문 CC BY4.0 출처를 명시한다. ↩
-
FinOps Foundation, Allocation. https://www.finops.org/framework/capabilities/allocation/ . 직접·공유·중앙 부담의 초고 근거를 유지한다. FO-A1은 공식 권고율이 아닌 자체 가정이다. ↩
-
FinOps Foundation, Unit Economics, Define Unit Metrics·Definition. https://www.finops.org/framework/capabilities/unit-economics/ . 보완에서 자원 효율·업무 단위·기준범위와 성과 해석을 재확인했다. FO-U1과 한계·평균비용의 수치는 자체 설명이다. ↩
-
FinOps Foundation, Rate Optimization. https://www.finops.org/framework/capabilities/rate-optimization/ . 약정·사용과 구매 선택의 공개 설명을 재대조했다. 개별 상품의 적용 조건은 따로 확인한다. ↩
-
AWS, What are Savings Plans? 및 Understanding how Savings Plans apply to your usage, Calculating bills·Scenario1의 주의 문구. https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html ; https://docs.aws.amazon.com/savingsplans/latest/userguide/sp-applying.html . 이번 보완에서 시간별 약정·적격 사용·초과분과 시간 간 이월 불가를 직접 읽었다. FO-K2의 60/100원과 두 시간은 별도의 가상 계약이며 제품 가격·원문 예제 복제가 아니다. ↩
-
Google SRE Workbook, Implementing SLOs와 Example Error Budget Policy. https://sre.google/workbook/implementing-slos/ ; https://sre.google/workbook/error-budget-policy/ . 보완에서 SLI specification/implementation의 관측 범위와 좋은 사건/전체 사건을 재대조했다. CR-S2는 자체 미확인 범위 계산이며 통계적 구간·공식 판정 방식이 아니다. ↩
-
AWS Well-Architected, REL13-BP01·REL13-BP02. https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_planning_for_recovery_objective_defined_recovery.html ; https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_planning_for_recovery_disaster_recovery.html . 이번에는 BP02의 pilot light/warm standby 차이와 복제·자료 손상·시점복구를 다시 확인했다. 원문 전략의 예시 성능·도식은 복제하지 않았다. CR-A1/A2의 확률은 자체 가정이다. ↩ ↩2 ↩3
-
Microsoft Learn, Digital sovereignty. https://learn.microsoft.com/en-us/azure/azure-sovereign-clouds/digital-sovereignty . 보완에서 데이터·운영 통제와 기술적 독립의 공개 본문을 재확인했다. 특정 제품의 보증이나 국내 법률 정의를 대체하지 않는다. ↩
-
AWS KMS, AWS KMS keys, Customer managed keys·AWS KMS key hierarchy·Key identifiers, 및 Generate data keys. https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html ; https://docs.aws.amazon.com/kms/latest/developerguide/data-keys.html . 이번 보완에서 정책 관리·식별값·HSM 기반 키와 데이터 키를 구별해 읽었다. 공급자마다 다른 키 종류·반출·계약을 이 사례로 전수 승인하지 않는다. ↩