버킷 개요 - Amazon Simple Storage Service

버킷 개요

Amazon S3에 데이터(사진, 동영상, 문서 등)를 업로드하려면 우선 하나의 AWS 리전 에 S3 버킷을 만들어야 합니다. 그런 다음 이 버킷에 객체를 얼마든지 업로드할 수 있습니다.

구현 측면에서 버킷과 객체는 AWS 리소스에 해당되며 Amazon S3는 이를 관리하기 위한 API를 제공합니다. 예를 들면 Amazon S3 API를 사용하여 버킷을 만들고 객체를 업로드할 수 있습니다. 이러한 작업은 Amazon S3 콘솔을 사용하여 수행할 수도 있습니다. 콘솔은 Amazon S3 API를 사용하여 요청을 Amazon S3로 보냅니다.

이 섹션에서는 버킷 작업 방법에 대해 설명합니다. 객체 작업에 대한 자세한 내용은 Amazon S3 객체 개요을 참조하십시오.

Amazon S3 버킷 이름은 글로벌 수준에서 고유하며 네임스페이스는 모든 AWS 계정 이 공유합니다. 따라서 버킷이 생성된 후에는 해당 버킷이 삭제될 때까지 어떤 AWS 리전 에서도 다른 AWS 계정 이 해당 버킷 이름을 사용할 수 없습니다. 가용성 또는 보안 확인 목적을 위해 특정 버킷 명명 규칙에 의존하면 안 됩니다. 버킷 이름 지정 지침은 버킷 이름 지정 규칙을 참조하십시오.

Amazon S3는 사용자가 지정한 리전에 버킷을 만듭니다. 대기 시간을 최적화하고, 비용을 최소화하며, 규제 요건을 해결하려면 지리적으로 가까운 AWS 리전 을 선택합니다. 예를 들어 유럽에 거주할 경우, 유럽(아일랜드) 또는 유럽(프랑크푸르트) 리전에서 버킷을 만드는 것이 유리할 수 있습니다. Amazon S3 리전 목록은 AWS 일반 참조리전 및 엔드포인트를 참조하세요.

참고

특정 AWS 리전 에서 만든 버킷에 속하는 객체는 명시적으로 다른 리전으로 보내지 않는 한 해당 리전을 벗어나지 않습니다. 예를 들어 유럽(아일랜드) 리전에 저장된 객체는 해당 리전을 벗어나지 않습니다.

권한 정보

AWS 계정 루트 사용자 자격 증명을 사용하여 버킷을 만들고 기타 Amazon S3 작업을 수행할 수 있습니다. 그러나 버킷 생성 등의 요청을 할 때는 AWS 계정 의 루트 사용자 자격 증명을 사용하지 않는 것이 좋습니다. 대신 AWS Identity and Access Management(IAM) 사용자를 만들고 이 사용자에게 모든 액세스 권한을 부여합니다(기본적으로 사용자는 권한이 없음).

이러한 사용자를 관리자라고 합니다. 자체 계정의 루트 사용자 자격 증명 대신 관리자 사용자 자격 증명을 사용하여 AWS와 연동하면서 버킷 생성, 사용자 생성, 권한 부여 등의 태스크를 수행할 수 있습니다.

자세한 내용은 AWS 일반 참조 AWS 계정 루트 사용자 자격 증명 및 IAM 사용자 자격 증명IAM 사용 설명서IAM 보안 모범 사례를 참조하세요.

리소스를 만든 AWS 계정 은 해당 리소스의 소유자가 됩니다. 예를 들어, 자신의 AWS 계정 에 IAM 사용자를 만들고 버킷을 만들 수 있는 사용자 권한을 부여하면, 이 사용자가 버킷을 만들 수 있습니다. 하지만 사용자는 버킷을 소유하지 않으며, 이 사용자가 속한 AWS 계정 에서 버킷을 소유합니다. 사용자가 다른 버킷 작업을 수행하려면 리소스 소유자로부터 추가 권한을 받아야 합니다. Amazon S3 리소스 권한 관리에 대한 자세한 내용은 Amazon S3의 Identity and Access Management 단원을 참조하십시오.

버킷에 대한 퍼블릭 액세스 관리

ACL(액세스 제어 목록), 버킷 정책 또는 둘 다를 통해 버킷 및 객체에 퍼블릭 액세스 권한이 부여됩니다. Amazon S3 리소스에 대한 퍼블릭 액세스를 관리하는 데 도움을 주기 위해 Amazon S3는 퍼블릭 액세스 차단 설정을 제공합니다. Amazon S3에서는 이러한 리소스에 대한 퍼블릭 액세스에 대해 일정한 제한을 적용할 수 있도록 퍼블릭 액세스 차단 설정을 통해 ACL 및 버킷 정책을 재정의할 수 있습니다. 개별 버킷 또는 계정의 모든 버킷에 퍼블릭 액세스 차단 설정을 적용할 수 있습니다.

모든 Amazon S3 버킷 및 객체의 퍼블릭 액세스가 차단되도록 하려면 계정에 대해 퍼블릭 액세스 차단 설정 4개를 모두 켜는 것이 좋습니다. 이러한 설정은 모든 현재 및 미래 버킷에 대한 모든 퍼블릭 액세스를 차단합니다.

이 설정을 적용하기 전에 퍼블릭 액세스 없이 애플리케이션이 올바르게 작동하는지 확인합니다. 버킷 또는 객체에 대한 특정 수준의 퍼블릭 액세스가 필요한 경우(예를 들어 Amazon S3를 사용하여 정적 웹 사이트 호스팅에 설명된 대로 정적 웹 사이트를 호스팅하는 경우), 스토리지 사용 사례에 적합하도록 개별 설정을 사용자 지정할 수 있습니다. 자세한 내용은 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단 섹션을 참조하세요.

버킷 구성 옵션

Amazon S3는 버킷을 구성하기 위한 다양한 옵션을 지원합니다. 예를 들어, 웹 사이트 호스팅용으로 버킷을 구성하고, 버킷의 객체 수명 주기를 관리하는 구성을 추가하며, 버킷에 대한 모든 액세스를 로그로 기록하도록 버킷을 구성할 수 있습니다. Amazon S3는 버킷 구성 정보를 저장 및 관리할 수 있는 하위 리소스를 지원합니다. Amazon S3 API를 사용하면 이러한 하위 리소스를 만들고 관리할 수 있습니다. 하지만 콘솔이나 AWS SDK를 사용할 수도 있습니다.

참고

또한 객체 수준 구성도 제공됩니다. 예를 들어, 객체에 고유한 ACL(액세스 통제 목록)을 구성하여 객체 수준 권한을 구성할 수 있습니다.

이들 리소스는 특정 버킷이나 객체의 컨텍스트에 존재하므로 하위 리소스라고 합니다. 다음 표에는 버킷별 구성을 관리할 수 있는 하위 리소스가 나와 있습니다.

하위 리소스 설명

cors(cross-origin 리소스 공유)

cross-origin 요청을 허용하도록 버킷을 구성할 수 있습니다.

자세한 내용은 교차 오리진 리소스 공유(CORS) 사용 섹션을 참조하세요.

이벤트 알림

지정한 버킷 이벤트의 알림을 받도록 버킷을 설정할 수 있습니다.

자세한 내용은 Amazon S3 이벤트 알림 섹션을 참조하세요.

수명 주기

버킷의 객체에 대해 명확한 수명 주기를 정의한 수명 주기 규칙을 정의할 수 있습니다. 예를 들어, 생성 후 1년이 지난 객체를 보관하거나, 10년이 지난 객체를 삭제하는 규칙을 정의할 수 있습니다.

자세한 내용은 스토리지 수명 주기 관리 섹션을 참조하세요.

location

버킷을 만들려면 Amazon S3가 버킷을 생성할 AWS 리전 을 지정해야 합니다. Amazon S3는 이 정보를 location 하위 리소스에 저장하고 이 정보를 검색하기 위한 API를 제공합니다.

logging

로깅을 사용하여 버킷에 대한 액세스 요청을 추적할 수 있습니다. 각 액세스 로그 레코드는 한 액세스 요청에 대한 세부 정보(요청자, 버킷 이름, 요청 시간, 요청 작업, 응답 상태, 오류 코드 등)를 제공합니다. 액세스 로그 정보는 보안 및 액세스 감사에 유용할 수 있습니다. 또한 고객 기반을 이해하고 Amazon S3 청구 비용을 파악할 수 있습니다. 

자세한 내용은 서버 액세스 로깅을 사용한 요청 로깅 섹션을 참조하세요.

객체 잠금

S3 객체 잠금을 사용하려면 버킷에 대해 활성화해야 합니다. 버킷에 있는 새 객체에 적용할 기본 보관 모드와 기간을 선택적으로 구성할 수도 있습니다.

자세한 내용은 버킷 구성 섹션을 참조하세요.

정책ACL(액세스 통제 목록)

모든 리소스(버킷과 객체)는 기본적으로 비공개입니다. Amazon S3는 버킷 수준 권한을 부여하고 관리할 수 있도록 버킷 정책과 ACL(액세스 제어 목록) 옵션을 모두 지원합니다. Amazon S3는 policyacl 하위 리소스에 권한 정보를 저장합니다.

자세한 내용은 Amazon S3의 Identity and Access Management 섹션을 참조하세요.

복제

복제는 서로 다른 AWS 리전 또는 동일한 AWS 리전의 버킷 간에 객체를 비동기식으로 자동 복사하는 것을 말합니다. 자세한 내용은 객체 복제 섹션을 참조하세요.

requestPayment

기본적으로 버킷에서의 다운로드에 대한 요금은 해당 버킷을 만든 AWS 계정 (버킷 소유자)이 지불합니다. 버킷 소유자는 이 하위 리소스를 사용하여, 다운로드를 요청하는 사용자에게 다운로드 요금이 부과되도록 지정할 수 있습니다. Amazon S3는 이 하위 리소스를 관리하기 위한 API를 제공합니다.

자세한 내용은 스토리지 전송 및 사용량에 대한 요청자 지불액 버킷 사용 섹션을 참조하세요.

tagging

비용 할당 태그를 버킷에 추가하여 AWS 비용을 분류하고 추적할 수 있습니다. 버킷의 태그를 저장 및 관리하기 위해 Amazon S3는 tagging 하위 리소스를 제공합니다. AWS에서는 버킷에 적용된 태그를 사용하여 사용 내역 및 비용을 태그별로 집계한 비용 할당 보고서를 만듭니다.

자세한 내용은 S3 버킷에 대한 결제 및 사용 보고 섹션을 참조하세요.

전송 속도 향상

Transfer Acceleration을 사용하면 클라이언트와 S3 버킷 사이에서 파일을 빠르고 쉽고 안전하게 장거리 전송할 수 있습니다. Transfer Acceleration은 전 세계에 분산된 Amazon CloudFront의 엣지 로케이션을 활용합니다.

자세한 내용은 Amazon S3 Transfer Acceleration을 사용하여 빠르고 안전한 파일 전송 구성 섹션을 참조하세요.

버전 관리

버전 관리는 실수로 덮어쓰거나 삭제하는 경우 복구할 수 있도록 해주는 기능입니다.

실수로 객체를 잘못 삭제하거나 덮어쓰는 경우 이를 복구할 수 있도록 하기 위해 버전 관리 기능을 사용하는 것이 좋습니다.

자세한 내용은 S3 버킷에서 버전 관리 사용 섹션을 참조하세요.

웹 사이트

버킷을 정적 웹 사이트 호스팅용으로 구성할 수 있습니다. Amazon S3는 웹 사이트 하위 리소스를 만들어 이 구성을 저장합니다.

자세한 내용은 Amazon S3를 사용하여 정적 웹 사이트 호스팅 섹션을 참조하세요.