폴더를 사용해 S3 콘솔에서 객체 정리하기
폴더를 사용해 S3 콘솔에서 객체 정리하기
S3 일반 용도 버킷에서 기본 리소스는 객체이고, 객체는 버킷에 저장돼요. 일반 용도 버킷은 파일 시스템에서 볼 수 있는 것 같은 계층 구조 대신 평평한 구조를 가져요. 그런데 정리상의 편의를 위해 S3 콘솔은 객체를 묶는 수단으로 폴더(folder) 개념을 지원해요. 콘솔은 묶인 객체에 공통 이름 **접두사(prefix)**를 사용해 이걸 구현해요. 즉, 묶인 객체들은 공통 문자열로 시작하는 이름을 가져요. 이 공통 문자열, 즉 공유 접두사가 바로 폴더 이름이에요. 객체 이름은 **키 이름(key name)**이라고도 불러요.
예를 들어 콘솔에서 일반 용도 버킷에 photos라는 폴더를 만들고 그 안에 myphoto.jpg라는 객체를 저장할 수 있어요. 그 객체는 photos/를 접두사로 하여 photos/myphoto.jpg라는 키 이름으로 저장돼요.
두 가지 예를 더 들어볼게요.
- 일반 용도 버킷에
logs/date1.txt,logs/date2.txt,logs/date3.txt라는 객체가 있다면, 콘솔은logs라는 폴더를 보여줘요. 콘솔에서 그 폴더를 열면date1.txt,date2.txt,date3.txt라는 객체 세 개가 보여요. photos/2017/example.jpg라는 객체가 있다면, 콘솔은2017폴더를 담은photos폴더를 보여줘요.2017폴더에는example.jpg객체가 들어 있어요.
폴더 안에 폴더를 만들 수 있지만, 버킷 안에 버킷은 만들 수 없어요. 폴더에 직접 객체를 업로드하고 복사할 수 있어요. 폴더는 만들기, 삭제, 공개 설정이 가능하지만 이름을 바꿀 수는 없어요. 객체는 한 폴더에서 다른 폴더로 복사할 수 있어요.
중요
S3 콘솔에서 폴더를 만들면 S3는 0바이트 객체를 만들어요. 이 객체 키는 여러분이 제공한 폴더 이름에 슬래시(
/) 문자를 붙인 값으로 설정돼요. 예를 들어 S3 콘솔에서 버킷에photos폴더를 만들면, 콘솔은photos/키를 가진 0바이트 객체를 만들어요. 콘솔은 폴더라는 개념을 지원하기 위해 이 객체를 만들어요.또한 이름 끝에 슬래시(
/) 문자가 붙은 기존 객체는 S3 콘솔에서 폴더로 나타나요. 예를 들어examplekeyname/이라는 키 이름을 가진 객체는 S3 콘솔에서 객체가 아니라 폴더로 보여요. 그 외에는 다른 객체처럼 동작하며 AWS Command Line Interface(AWS CLI), AWS SDK, 또는 REST API로 보고 다룰 수 있어요. 추가로 S3 콘솔로는 키 이름 끝에 슬래시(/) 문자가 붙은 객체를 업로드할 수 없어요. 하지만 AWS Command Line Interface(AWS CLI), AWS SDK, 또는 REST API로는 슬래시(/)로 끝나는 이름의 객체를 업로드할 수 있어요.그리고 S3 콘솔은 폴더 객체에 대해서는 다른 객체처럼 내용과 메타데이터를 표시하지 않아요. 콘솔로 슬래시(
/)로 끝나는 이름의 객체를 복사하면 대상 위치에 새 폴더가 만들어지지만, 객체의 데이터와 메타데이터는 복사되지 않아요. 또한 객체 키 이름의 슬래시(/)는 특별한 처리가 필요할 수 있어요. 자세한 내용은 Amazon S3 객체 이름 짓기를 참고하세요.
디렉터리 버킷에서 폴더를 만들려면 폴더를 업로드하세요. 자세한 내용은 디렉터리 버킷에 객체 업로드하기를 참고하세요.
출처: 문서
본문
폴더 만들기
이 섹션에서는 S3 콘솔을 사용해 폴더를 만드는 방법을 설명해요.
중요
버킷 정책이 태그, 메타데이터, 또는 ACL(액세스 제어 목록) 수혜자 없이 이 버킷에 객체를 업로드하는 것을 막는다면, 다음 절차로 폴더를 만들 수 없어요. 대신 빈 폴더를 업로드하고 업로드 구성에서 다음 설정을 지정하세요.
폴더를 만들려면
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.
- 왼쪽 탐색 창에서 General purpose buckets를 선택합니다.
- 버킷 목록에서 폴더를 만들 버킷의 이름을 선택합니다.
- Objects 탭에서 Create folder를 선택합니다.
- 폴더 이름을 입력합니다(예:
favorite-pics).
참고
폴더 이름에는 특정 제한과 지침이 적용되고, 객체 키 이름의 일부로 간주되며, 키 이름은 1,024바이트로 제한돼요. 자세한 내용은 Amazon S3 객체 이름 짓기를 참고하세요.
- (선택) 버킷 정책이 특정 암호화 키로 객체를 암호화하도록 요구한다면, Server-side encryption에서 Specify an encryption key를 선택하고 폴더를 만들 때 동일한 암호화 키를 지정해야 해요. 그렇지 않으면 폴더 생성이 실패해요.
- Create folder를 선택합니다.
폴더 공개하기
특별히 공개 폴더나 버킷이 필요하지 않다면, S3 폴더와 버킷에 대한 모든 공개 액세스를 차단하는 것을 권장해요. 폴더를 공개하면 인터넷의 누구나 그 폴더에 묶인 모든 객체를 볼 수 있어요.
S3 콘솔에서 폴더를 공개할 수 있어요. 접두사로 데이터 액세스를 제한하는 버킷 정책을 만들어 폴더를 공개할 수도 있어요. 자세한 내용은 Amazon S3용 Identity and Access Management를 참고하세요.
경고
S3 콘솔에서 폴더를 공개한 뒤에는 다시 비공개로 되돌릴 수 없어요. 대신 공개 폴더의 각 객체에 공개 액세스가 없도록 개별 객체에 권한을 설정해야 해요. 자세한 내용은 ACL 구성하기를 참고하세요.
폴더 크기 계산하기
이 섹션에서는 S3 콘솔을 사용해 폴더 크기를 계산하는 방법을 설명해요.
폴더 크기를 계산하려면
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.
- 왼쪽 탐색 창에서 General purpose buckets를 선택합니다.
- General purpose buckets 목록에서 폴더가 저장된 버킷의 이름을 선택합니다.
- Objects 목록에서 폴더 이름 옆의 확인란을 선택합니다.
- Actions를 선택한 다음 Calculate total size를 선택합니다.
참고
페이지에서 벗어나면 폴더 정보(총 크기 포함)를 더 이상 사용할 수 없어요. 다시 보려면 총 크기를 다시 계산해야 해요.
중요
버킷 안의 지정된 객체나 폴더에 Calculate total size 작업을 사용하면 S3는 총 객체 수와 총 스토리지 크기를 계산해요. 하지만 완료되지 않았거나 진행 중인 멀티파트 업로드와 이전 버전·비현재 버전은 총 객체 수나 총 크기에 포함되지 않아요. 이 작업은 버킷에 저장된 각 객체의 현재(최신) 버전에 대해서만 총 객체 수와 총 크기를 계산해요.
예를 들어 버킷에 객체 버전이 두 개 있다면 S3의 스토리지 계산기는 이를 객체 하나로 세요. 그 결과 S3 콘솔에서 계산된 총 객체 수는 S3 Storage Lens에 표시된 Object Count 메트릭이나 Amazon CloudWatch 메트릭
NumberOfObjects가 보고하는 값과 다를 수 있어요. 마찬가지로 총 스토리지 크기도 S3 Storage Lens에 표시된 Total Storage 메트릭이나 CloudWatch에 표시된BucketSizeBytes메트릭과 다를 수 있어요.
폴더 삭제하기
S3 콘솔을 사용해 S3 버킷에서 폴더를 삭제할 수 있어요.
Amazon S3 기능과 요금에 대한 정보는 Amazon S3을 참고하세요.
S3 버킷에서 폴더를 삭제하려면
- AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.
- 왼쪽 탐색 창에서 General purpose buckets를 선택합니다.
- General purpose buckets 목록에서 폴더를 삭제할 버킷의 이름을 선택합니다.
- Objects 목록에서 삭제할 폴더와 객체 옆의 확인란을 선택합니다.
- Delete를 선택합니다.
- Delete objects 페이지에서 선택한 폴더와 객체가 Specified objects 아래에 나열되었는지 확인합니다.
- Delete objects 상자에
delete를 입력하고 Delete objects를 선택합니다.
경고
이 작업은 지정된 모든 객체를 삭제해요. 폴더를 삭제할 때는 삭제가 끝날 때까지 기다렸다가 폴더에 새 객체를 추가하세요. 그렇지 않으면 새 객체도 함께 삭제될 수 있어요.