Amazon S3 객체 버킷을 사용해 객체를 복제해 봤습니다.

Amazon S3 객체 버킷을 사용해 객체를 복제해 보는 방법을 정리해 봤습니다.
2024.02.05

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Amazon S3 객체 버킷을 사용해 객체를 복제해 보는 방법을 정리해 봤습니다.

객체 복제란?

Amazon S3에서 관리 탭을 확인해 보면「복제 규칙」을 생성할 수 있는 것을 확인할 수 있습니다.

이 객체 복제를 사용하면 Amazon S3 버킷 전체의 객체를 자동으로 복제할 수 있습니다. 객체 복제는 동일한 AWS 계정 또는 다른 계정에 복제할 수 있으며, 동일한 리전, 다른 리전에 복제할 수 있습니다.

객체 복제를 사용하는 이유는 여러 AWS 리전에 객체를 저장하여 자연 재해를 대비하거나 사용하지 않는 객체를 S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive와 같은 스토리지 클래스로 이동시켜 비용을 절감할 수 있습니다.

보다 상세한 내용은 아래 AWS 공식 문서를 참고해 주세요.

직접 해보자!

먼저 객체 복제를 하기 위해서는 몇 가지 요구 사항을 충족시킬 필요가 있습니다.

먼저 속성에서 버전 관리를 활성화할 필요가 있습니다.

버전 관리가 필요한 S3 버킷은 복제할 원본 버킷와 대상 버킷 둘 다 버전 관리를 활성화할 필요가 있습니다.

버전 관리에 대한 보다 상세한 내용은 아래 블로그를 참고해 주세요.

그 외, 디폴트로 Amazon S3를 생성했다면 별 다른 설정은 필요없겠지만, 다른 요구 사항이 궁금하신 분들은 아래 AWS 공식 문서를 참고해 주세요.

복제를 시도할 버킷에서「복제 규칙 생성」을 클릭합니다.

  • 복제 규칙을 입력합니다.
  • 상태는 곧 바로 복제를 시도할 생각이기 때문에「활성화됨」을 체크합니다.

  • 규칙 범위는「버킷의 모든 객체에 적용」을 선택합니다.
    • 버킷 내의 특정 경로만 복사를 진행하고 싶다면「하나 이상의 필터를 사용하여 이 규칙의 범위 제한」을 선택합니다.

  • 대상 버킷이 있는 계정을 선택합니다.
    • 현재 계정에 대상 버킷이 있는 경우「이 계정에서 버킷 선택」을 선택하고 다른 계정에 있다면「다른 계정의 버킷 지정」을 선택합니다.
  • 대상 버킷을 선택합니다.

  • 복제에 사용할 IAM 역할을 선택합니다. 생성된 IAM 역할이 없다면 기존 IAM 역할에서 새 역할 생성을 선택합니다.
    • IAM 역할에는 객체를 복제할 권한이 포함되어 있습니다.
  • 암호화된 객체를 복제할 지 선택합니다.
    • 주의할 점은 AWS KMS를 사용하여 암호화된 객체를 복제하는 경우 AWS KMS 요청 빈도는 소스 리전에서 두 배가 되고 대상 리전에서는 같은 양만큼 늘어납니다.
  • 마지막으로 복제된 객체의 스토리지 클래스를 변경할 지 선택합니다.
    • 선택하지 않은 경우 원본 스토리지 클래스와 동일한 스토리지 클래스로 복제가 이루어집니다.

  • 추가 복제 옵션을 선택합니다.
  • 「저장」을 클릭합니다.

원본 버킷에 업로드한 객체가 있다면 기존 객체 복제를 진행합니다.

원본 버킷에 객체를 복제할 생각이 없거나 객체가 존재하지 않는다면「아니요」를 선택합니다.

복제 확인

원본 버킷에서는 image-1.png 파일을 먼저 업로드하고 복제 규칙을 생성했습니다.

이어서 기존 객체를 복제하는 과정에서 복제를 진행하지 않고, 복제 규칙을 생성헀으며 이후 image-2.png 파일을 업로드 했습니다.

결과를 확인해 보면 image-2.png만 업로드된 것을 확인할 수 있습니다.

원본 버킷에 객체가 존재하고, 이 객체 또한 복제하고 싶은 경우 기존 객체 복제 작업을 별도로 실시해야 할 필요가 있습니다.

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 kim.jaewook@classmethod.jp 로 연락 주시면 회신 드릴 수 있도록 하겠습니다 !