시작하기 / 실습 / ...

추가 체크섬을 사용하여 Amazon S3의 데이터 무결성 확인

자습서

개요

조직에서는 지속적으로 디지털 자산을 생성하고 Amazon S3로 마이그레이션하고 있습니다. 이러한 자산에는 이미지, 이진 파일, 제작 후 렌더링 등이 포함되며 모두 비즈니스에 매우 중요합니다. 자산을 마이그레이션하고 워크플로 전반에 걸쳐 사용하려면 네트워크 손상, 하드 드라이브 장애 또는 기타 의도치 않은 문제로 인해 파일이 변경되는 일이 없도록 해야 합니다. 오늘날 업계에서는 알고리즘을 사용하여 파일을 바이트 단위로 검사하여 파일에 대한 고유한 지문을 생성하는데, 이를 체크섬이라고 합니다.
 
체크섬을 사용하면 자산이 복사될 때 변경되지 않았는지 확인할 수 있습니다. 체크섬을 수행하려면 알고리즘을 사용하여 파일의 모든 바이트에 대해 순차적으로 반복해야 합니다.

Amazon S3는 데이터의 무결성 검사를 가속화하기 위해 여러 개의 체크섬을 제공합니다. 이러한 기능은 고객이 객체를 업로드할 때 파일의 체크섬을 계산합니다. 대량의 데이터를 Amazon S3로 마이그레이션하는 고객은 내구성 모범 사례로서 이러한 무결성 검사를 수행하고 모든 바이트가 변경 없이 전송되는지 확인하기를 원합니다. 이를 통해 고객은 엔드 투 엔드 데이터 무결성을 유지할 수 있습니다. 체크섬은 객체가 업로드되는 순간 생성되며 객체의 전체 수명 기간 동안 보존됩니다. 동일한 체크섬이 해당 객체가 다운로드될 때 마지막에 검증되어 엔드 투 엔드 데이터 무결성을 제공합니다. Amazon S3에서 지원되는 추가 알고리즘은 SHA-1, SHA-256, CRC32 및 CRC32-C입니다. 이러한 새로운 데이터 무결성 검사 기능을 사용하면 데이터 전송 중이나 업로드 또는 다운로드 중에 파일이 변경되지 않았는지 확인할 수 있습니다.

학습 목표

  • Amazon S3로 파일 업로드
  • Amazon S3의 체크섬과 로컬 파일의 체크섬을 비교하여 데이터 무결성 확인

사전 요구 사항

 AWS 경험

초보자

 소요 시간

20분

 완료 비용

 필요 사항

AWS 계정

 사용 서비스

 최종 업데이트 날짜

2022년 8월 15일

구현

1단계: Amazon S3 버킷 생성

  • 1.1 - Amazon S3 콘솔에 로그인
    • 아직 계정을 만들지 않은 경우 AWS 계정을 만듭니다.
    • 계정 정보를 사용하여 AWS Management Console에 로그인합니다.
    • AWS Console 서비스 검색 창에 S3를 입력합니다. 서비스 검색 결과 섹션에서 S3를 선택합니다. S3 Glacier에 대한 옵션이 있습니다. 이 옵션은 Amazon S3와 통합하기 전의 Glacier 서비스에 사용됩니다. Amazon S3 Glacier 사용자는 향상된 사용자 경험을 위해 Amazon S3 콘솔을 사용하는 것이 좋습니다.

  • 1.2 - S3 버킷 생성
    • 왼쪽의 Amazon S3 메뉴에서 버킷을 선택한 다음 버킷 생성 버튼을 선택합니다.
  • 1.3
    • 버킷에 사용할 알기 쉽고 전역적으로 고유한 이름을 입력합니다. 버킷을 생성할 AWS 리전을 선택합니다. 이 워크로드에는 기본 퍼블릭 액세스 차단 설정이 적합하므로 이 섹션은 그대로 둡니다.
    • 나머지 옵션은 기본값으로 두고 페이지 하단으로 이동한 다음 버킷 생성을 선택할 수 있습니다.

2단계: 파일 업로드 및 체크섬 알고리즘 지정

이제 버킷을 생성하고 구성했으니 파일을 업로드하고 Amazon S3에서 체크섬을 계산할 준비가 되었습니다.
  • 2.1 - 객체 업로드
    • AWS Management Console 세션에서 로그아웃한 경우 다시 로그인합니다. S3 콘솔로 이동하여 버킷 메뉴 옵션을 선택합니다. 사용 가능한 버킷의 목록에서 방금 생성한 버킷의 버킷 이름을 선택합니다.
  • 2.2
    • 다음으로, 객체 탭을 선택합니다. 그런 다음 객체 섹션에서 업로드 버튼을 선택합니다.
  • 2.3 - 파일 추가
    • 파일 추가 버튼을 선택한 다음 파일 브라우저에서 업로드하려는 파일을 선택합니다.
  • 2.4 - 속성 확장
    • 페이지에서 아래로 이동하여 속성 섹션을 찾습니다. 그런 다음 속성을 선택하고 섹션을 확장합니다.
  • 2.5 - 추가 체크섬 선택
    • 추가 체크섬(Additional checksums)에서 켜기(On) 옵션을 선택하고 SHA-256을 선택합니다.

객체가 16MB 미만이고 이미 SHA-256 체크섬(base64로 인코딩)을 계산한 경우 사전 계산된 값(Precalculated value) 입력 상자에 체크섬을 입력할 수 있습니다. 16MB보다 큰 객체에 이 기능을 사용하려면 CLI 또는 SDK를 사용할 수 있습니다. Amazon S3는 객체를 수신하면 지정된 알고리즘을 사용하여 체크섬을 계산합니다. 체크섬 값이 일치하지 않는 경우 Amazon S3는 스크린샷에 표시된 대로 오류를 생성하고 업로드를 거부합니다.

  • 2.6 - 업로드
    • 페이지에서 아래로 이동하여 업로드 버튼을 선택합니다.
  • 2.7
    • 업로드가 완료되면 닫기 버튼을 선택합니다.

3단계: 체크섬 확인

  • 3.1
    • 파일 이름을 선택하여 업로드된 파일을 선택합니다. 그러면 속성 페이지로 이동합니다.
  • 3.2 - 체크섬 값 찾기
    • 속성 페이지에서 아래로 이동하면 추가 체크섬(Additional checksums) 섹션을 찾을 수 있습니다.
    • 이 섹션에는 업로드 시 Amazon S3가 계산 및 확인한 base64로 인코딩된 체크섬이 표시됩니다.
  • 3.3 - 비교
    • 로컬 컴퓨터에 있는 객체를 비교하려면 터미널 창을 열고 파일이 있는 위치로 이동합니다.
    • shasum과 같은 유틸리티를 사용하여 파일을 계산합니다. 다음 명령은 동일한 파일에서 sha256 계산을 수행하고 16진수 출력을 base64로 변환합니다. shasum -a 256 image.jpg | cut -f1 -d\ | xxd -r -p | base64
    • 이 값을 비교할 때 Amazon S3 콘솔의 값과 일치해야 합니다.

4단계: 정리

다음 단계에서는 이 자습서에서 생성한 리소스를 정리합니다. 사용하지 않는 리소스를 삭제하여 의도하지 않은 비용이 부과되지 않도록 하는 것이 모범 사례입니다.
  • 4.1 - 테스트 객체 삭제
    • AWS Management Console 세션에서 로그아웃한 경우 다시 로그인합니다. S3 콘솔로 이동하여 버킷 메뉴 옵션을 선택합니다. 먼저 테스트 버킷에서 테스트 객체를 삭제해야 합니다. 이 자습서에서 작업한 버킷의 이름을 선택합니다. 테스트 객체 이름 왼쪽의 확인란을 선택한 후 삭제 버튼을 선택합니다. 객체 삭제 페이지에서 삭제할 객체를 올바르게 선택했는지 확인하고 Permanently delete objects(이 객체를 영구적으로 삭제) 확인 입력란에 permanently delete를 입력합니다. 그런 다음 객체 삭제 버튼을 선택하여 계속 진행합니다. 그러면 삭제 성공 여부를 나타내는 배너가 표시됩니다.
  • 4.2 - 테스트 버킷 삭제
    • 마지막으로, 생성한 테스트 버킷을 삭제해야 합니다. 계정의 버킷 목록으로 돌아갑니다. 이 자습서용으로 생성한 버킷의 왼쪽에 있는 라디오 버튼을 선택한 후 삭제 버튼을 선택합니다. 경고 메시지를 살펴봅니다. 이 버킷을 삭제하려면 버킷 삭제 확인 상자에 버킷 이름을 입력하고 버킷 삭제를 선택합니다.

결론

축하합니다! Amazon S3에 파일을 업로드하고, 추가 체크섬을 계산하고, Amazon S3의 체크섬과 로컬 파일의 체크섬을 비교하여 데이터 무결성을 확인하는 방법을 배웠습니다.

이 페이지의 내용이 도움이 되었습니까?

다음 단계

체크섬에 대해 자세히 알아보려면 다음 리소스를 참조하십시오.

추가 체크섬 살펴보기

Amazon S3의 추가 체크섬에 대해 자세히 알아보려면 출시 블로그를 읽고 객체 무결성 검사 설명서를 참조하십시오.

후행 체크섬 살펴보기

Amazon S3는 AWS SDK의 새로운 기능인 후행 체크섬도 도입했습니다. SDK는 후행 체크섬을 사용하여 Amazon S3로 파일을 업로드할 때 한 번에 체크섬을 계산합니다. 이에 대한 자세한 내용은 확장 가능한 체크섬 구축 블로그 게시물에서 확인할 수 있습니다.