체크섬 계산
체크섬 계산 (Compute checksums)
객체를 다운로드하거나 복원하지 않고도 저장된 데이터의 무결성을 확인하고 싶을 때가 있어요. Compute checksum 작업은 S3에 저장된 객체의 체크섬을 계산해 줘서, 데이터가 의도대로 보존됐는지 손쉽게 검증할 수 있게 도와줍니다.
출처: 문서
본문
S3 Batch Operations의 Compute checksum 작업을 사용하면 Amazon S3에 저장된(at rest) 객체에 대해 체크섬 계산을 수행할 수 있어요. 이 작업은 객체 체크섬을 계산해 주는데, 저장된 데이터를 다운로드하거나 복원하지 않고도 데이터 무결성을 검증하는 데 이 체크섬을 쓸 수 있어요. Compute checksum 작업은 지원되는 모든 체크섬 알고리즘에 대해 복합(composite) 체크섬 유형과 전체(full) 객체 체크섬 유형을 모두 계산할 수 있습니다.
Compute checksum 작업을 쓰면 단일 작업 요청으로 수십억 개의 객체를 처리할 수 있어요. 이 배치 작업은 객체 크기와 상관없이 모든 S3 스토리지 클래스와 호환돼요. Compute checksum 작업을 만들려면 Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), AWS SDK, Amazon S3 REST API를 사용하면 됩니다.
서버 액세스 로깅을 활성화하면 Compute checksum 작업에 대한 로그 항목도 받을 수 있어요. Compute checksum 작업은 체크섬 계산을 마친 후 별도의 서버 액세스 로그 이벤트를 내보내요. 이 로그 항목은 표준 S3 서버 액세스 로깅 형식을 따르며, 작업 유형, 타임스탬프, 오류 코드, 관련 Compute checksum 작업 ID 같은 필드를 포함해요. 이 로깅은 객체에 대해 수행된 체크섬 검증 활동의 감사 추적을 제공해서, 데이터 무결성 작업을 추적하고 검증하는 데 도움을 줘요.
참고 Compute checksum 작업은 고객 제공 암호화 키를 사용한 서버 측 암호화(SSE-C)로 암호화된 객체는 지원하지 않아요. 하지만 S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)나 AWS Key Management Service를 사용한 서버 측 암호화(DSSE-KMS)로 암호화된 객체에는 사용할 수 있어요. Compute checksum 작업을 수행하려면 적절한 AWS KMS 권한을 부여했는지 확인하세요.
Compute checksum 작업을 Batch Operations로 시작하려면 다음 중 하나를 하면 돼요.
- 새 매니페스트 파일을 직접 만들어요.
- 기존 매니페스트를 사용해요.
- 작업을 만들 때 지정하는 객체 필터 기준에 따라 Batch Operations가 매니페스트를 자동으로 생성하도록 해요.
그런 다음 Compute checksum 작업 요청을 제출하고 상태를 모니터링하세요. 작업이 끝나면 지정한 대상 버킷에 완료 보고서(completion report)가 자동으로 도착해요. 이 완료 보고서에는 버킷에 있는 모든 객체의 체크섬 정보가 들어 있어서 데이터 일관성을 검증할 수 있어요. 이 보고서로 작업을 검토하는 방법은 Tracking job status and completion reports 문서를 참고하세요.
Compute checksum 기능과 콘솔 사용법에 대한 자세한 내용은 Checking object integrity for data at rest in Amazon S3 문서를, REST 요청을 보내는 방법은 Amazon S3 API Reference의 DescribeJob과 CreateJob을 참고하세요.
아래 절에서 S3 Batch Operations로 Compute checksum 작업을 시작하는 방법을 설명할게요.
S3 Batch Operations Compute checksum 고려 사항
Compute checksum 작업을 사용하기 전에 다음 고려 사항 목록을 살펴보세요.
- 매니페스트에 버전 ID 필드가 있으면, 매니페스트의 모든 객체에 버전 ID를 제공해야 해요. 버전 ID를 지정하지 않으면 Compute checksum 요청은 객체의 최신 버전에 대해 작업을 수행해요.
- 서버 액세스 로그에서 Compute checksum 작업 세부 정보를 받으려면 먼저 소스 버킷에서 서버 액세스 로깅을 활성화하고 로그를 저장할 대상 버킷을 지정해야 해요. 대상 버킷은 소스 버킷과 같은 AWS 리전과 계정에 있어야 해요. 서버 액세스 로깅을 구성하고 나면 Compute checksum 작업이 작업 유형, HTTP 상태 코드, S3 오류 코드, 타임스탬프, 관련 Compute checksum 작업 ID 같은 표준 필드를 포함하는 로그 레코드를 생성해요. Compute checksum 작업은 비동기적으로 실행돼요. 그래서 로그 항목은 로그에서 요청 ID가 아니라 Compute checksum 작업 ID를 사용해요.
- 저장된 객체의 보고서 생성은 최대 몇 시간 걸릴 수 있어요.
- 다음 S3 Glacier 스토리지 클래스(S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive)의 경우 Compute checksum 작업이 완료되는 데 최대 일주일이 걸릴 수 있어요.
- 완료 보고서가 기록될 버킷의 경우 Compute checksum 작업을 실행할 때 버킷 소유자 조건(bucket owner condition)을 사용해야 해요. 제출한 작업 요청에 대해 실제 버킷 소유자가 예상 버킷 소유자와 일치하지 않으면 작업이 실패해요. 버킷 소유자 조건을 지원하지 않는 S3 작업 목록은 Restrictions and limitations 문서를 참고하세요.
S3 Batch Operations 완료 보고서
Compute checksum 작업을 만들 때 S3 Batch Operations 완료 보고서를 요청할 수 있어요. 이 CSV 파일은 객체, 성공·실패 코드, 출력, 설명을 보여줘요. 작업 추적 및 완료 보고서에 대한 자세한 내용은 Completion reports 문서를 참고하세요.