요약

  • S3에 전송된 부분은 멀티파트 업로드를 완료하거나 중단할 때까지 저장 비용을 만든다. 업무 프로그램의 실패 처리는 그 보관을 끝내지 않는다.
  • 범용 버킷의 자동 정리에는 기한 설정이 필요하다. 문서의 7일은 예시이며, 디렉터리 버킷은 같은 수명 주기 설정을 지원하지 않는다.

실패한 프로젝트도 세입자가 될 수 있다. 사람은 회의에서 철수하고, 자료는 작업 목록에서 밀려나지만, 클라우드에 먼저 도착한 데이터 조각은 자리를 차지한다. Amazon S3에서는 완성된 파일을 얻지 못한 시도에도 보관료가 생긴다.

이를테면 제작사가 큰 영상을 올리다가 고객의 취소 통보를 받았다고 가정해 보자. 담당자는 전송 작업을 포기하고 다음 납품을 준비한다. 그런데 S3가 받아 둔 부분은 그 통보를 듣지 못했다. AWS 문서상 멀티파트 업로드는 부분별 전송 뒤 완료 요청으로 객체를 조립하며, 저장된 부분의 요금을 끝내려면 완료하거나 중단해야 한다. 시작된 업로드 자체에는 저절로 끝나는 유효기간이 없다. AWS 멀티파트 업로드 설명

기다림을 사는 계약

분할 전송의 이점은 분명하다. 연결이 흔들려도 성공한 부분은 남기고 실패한 부분만 다시 보낼 수 있다. 큰 파일을 매번 처음부터 옮기는 수고를 줄여 준다. 보관료가 사는 것은 이미 보낸 작업을 이어갈 기회다.

그 기회에 아직 주인이 있으면 기다리는 비용을 설명할 수 있다. 현장 장비가 돌아오기를 기다리는 일, 잠시 멈춘 납품, 다시 접속할 예정인 송신자는 보관의 이유가 된다. 반대로 고객 요구가 바뀌거나 작업을 새로 만들어 기존 시도를 이어갈 사람이 없어지면, 같은 데이터는 다른 경제적 의미를 갖는다.

기술 상태는 성실하게 남아 있는데 사업상의 이유만 퇴근한 셈이다. 이때 기업은 실패 여부보다 더 불편한 질문을 해야 한다. 이 시도를 끝까지 완성하려는 사람이 아직 있는가. 있다면 언제 돌아오는가. 없다면 누가 자리를 비울 권한을 갖는가.

완성된 결과물에는 대개 담당 부서와 고객이 붙는다. 미완성 조각은 그 사이에서 빠지기 쉽다. 새 전송은 납기표를 차지하고, 예전 시도는 설명 없는 저장 상태로 남는다. 비용 절감 회의가 완성품 목록만 훑으면 이 임차인은 출석조차 하지 않아도 된다.

문서의 7일은 청소 예약이 아니다

범용 버킷에서는 AbortIncompleteMultipartUpload 동작에 시작 후 경과 일수를 지정할 수 있다. 기한을 넘긴 업로드가 중단 대상이 되고, S3가 중단과 부분 삭제를 수행한다. 설정 범위 안의 기존 업로드와 나중에 생긴 업로드에 적용되며, 완성된 객체를 지우는 동작은 아니다. AWS의 미완료 업로드 정리 설정

예시에 등장하는 7일을 기본 제공 청소 서비스로 읽으면 곤란하다. 기업이 설정할 숫자다. 너무 짧으면 아직 재개할 가치가 있는 진행분을 잃고, 너무 길면 이미 접은 일의 보관료를 계속 낸다. 모든 작업에 똑같은 숫자를 주는 방식은 선택을 없애지 않는다. 서로 다른 업무에 같은 선택을 강제로 적용할 뿐이다.

AWS는 이런 미완료 부분의 삭제에 조기 삭제 요금을 부과하지 않는다고 밝힌다. 그러나 유용한 진행분을 일찍 버렸을 때의 재전송과 대기 비용은 기업에 남는다. 반대로 업로드를 완료하면 별도 부분 보관은 끝나지만, 생성된 객체의 저장 비용은 계속된다. 양쪽 모두 구체적인 자원 상태를 가진다.

중단을 눌렀어도 들어오는 짐이 있다

이미 진행 중인 부분 전송은 중단 이후에도 성공하거나 실패할 수 있다. AWS는 저장 공간을 모두 비우기 위해 중단 호출을 여러 번 해야 할 수 있다고 설명하고, ListParts로 목록이 비었는지 확인하도록 안내한다. AbortMultipartUpload API

이 대목은 버튼 사용법보다 조직 문제에 가깝다. 업무 담당자는 종료했고 전송 프로세스는 아직 움직인다면, 둘을 연결해 마지막 상태를 확인할 사람이 필요하다. 각자가 자신의 절차를 끝냈다는 보고만으로 전체 보관이 끝났다고 결론내리면, 그 사이에 도착한 짐을 놓친다.

버킷 종류도 비용 종료 방식에 영향을 준다. 디렉터리 버킷 역시 미완료 부분에 과금하지만 S3 Lifecycle 설정을 지원하지 않는다. 버킷을 삭제하기 전에는 진행 중인 멀티파트 업로드를 모두 완료하거나 중단해야 한다. AWS 디렉터리 버킷 문서 범용 버킷의 자동 정리를 전제로 한 약속을 그대로 가져오면 실행할 기능이 빠진 약속이 된다.

어느 기업이 얼마를 낭비하는지 계산하려면 해당 계정의 부분 목록, 보관 목적, 실제 청구 내역이 필요하다. 살아 있는 재개 계획이 확인되면 같은 보관량에 대한 판단도 바뀐다. 그 조사 전에 결론낼 수 있는 것은 책임의 위치다. 프로젝트를 취소하는 권한에는 그 프로젝트가 남긴 재시도 기회를 끝내는 책임도 따라야 한다.

클라우드 창고는 참을성이 좋다. 회사의 예산까지 그 인내심을 본받을 필요는 없다.