기본 개념
-
객체(Object):
S3에 데이터가 저장되는 최소 단위입니다. 이 객체는 파일과 메타데이터로 구성
- 기본적으로 키(Key)가 객체의 이름이며 값(Value)이 객체의 데이터입니다
- 객체 하나의 크기는 1byte부터 5TB까지
- 메타데이터는 HTTP Content-Type 형식(MIME). 파일의 확장자에 따라 자동으로 설정되며 임의로 설정할 수도 있음. 키-값(Key-Value)형식이며 S3 전용 메타데이터 및 사용자 정의 메타데이터도 저장됨. -
버킷(bucket):
S3에서 생성할 수 있는 최상위 폴더(디렉토리)입니다. 버킷은 리전별로 생성해야 함. 단 버킷의 이름은 모든 S3 리전 중에서 유일해야 함. 계정별로 100개까지 생성 가능
- 버킷 안게 객체가 저장됨
- 폴더(디렉토리) 생성이 가능(실제로는 객체 이름이 디렉토리 경로까지 포함)
- 저장 가능한 객체의 개수는 무제한
- 저장 가능한 용량은 무제한
- 접속 제어 및 권한 관리가 가능
- http://examplebucket.s3.amazonaws.com/helloworld.jpg 처럼 URL로 접근이 가능. 여기서 examplebucket은 버킷, helloworld.jpg는 객체 - 내구성과 가용성: 1년 기준으로 99.99999% 내구성, 99.99% 가용성을 가지고 있음. 내구성은 데이터가 유실되지 않는 것을 뜻허며 가용성은 언제나 정상적으로 사용 가능한 상태를 말함
- 요금: 저장 용량과 데이터 전송량, HTTP 요청(Request) 개수로 책정. 자세한 요금은 AWS 사이트의 요금표( http://aws.amazon.com/ko/s3/pricing/ )를 참조.
스토리지 옵션(객체(디렉토리)별로 설정 가능)
-
표준 스토리지(Standard Storage)
일반적인 스토리지 옵션. 99.99999% 내구성을 가지고 있지만 AWS 내부적으로도 이런 높은 내구성을 유지하려면 그만큼 비용이 많이 들게 되고 요금도 높아짐. 따라서 유실되면 안 되는 중요한 데이터 저장에 권장 -
낮은 중복 스토리지(RRS, Reduced Redundancy Storage)
표준 스토리지보다는 낮은 99.99%의 내구성을 가지고 있음. 이름 그대로 데이터를 복제한 사본의 수를 줄여 비용을 낮추었기 때문에 요금이 저렴. 2014년 8월 기준으로 표준 스토리지 대비 약20% 가량 저렴. 원본 데이터를 다른 곳에 가지고 있거나, 동영상이나 이미지의 썸네일 등 원본에서 다시 생성할 수 있는 데이터 저장에 적합
http://aws.amazon.com/ko/s3/faqs/#rrs_anchor
S3 GUI Client
-
CloudBerry Explorer
http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx -
Bucket Exploere
http://www.bucketexplorer.com
S3 객체 메타데이터
HTTP 1.1 표준에 정의
-
Cache-Control
브라우저 캐시 정책을 설정. Value에 max-age=3600과 같은 식으로 데이터 만기 시간을 초 단위로 지정 가능. 만기 시간이 지나기 전에 다시 요청할 경우 브라주여에서는 서버에서 데이터를 가져오지 않고 로컬에 있는 데이터를 사용. 이 설정은 AWS의 CDN 서비스인 CloudFront와도 연계. Cache-Control에 대한 내용은 상당히 방대하므로 인터넷을 참조. -
Content-Disposition
Value에 attachment로 설정하면 JPG 파일 같은 경우 웹 브라우저에서 그림 파일을 보여주지 않고 바로 다운로드함. 그림 파일뿐만 아니라 다른 형식의 파일에도 지정할 수 있음. -
Content-Type
웹 브라우저에서 파일을 어떻게 처리해야 하는지 알려주는 메타데이터. 보통 확장자에 따라 자동으로 설정. 확장자가 없는 파일은 이 메타데이터를 통해 강제로 형식을 지정해 줌. 예를 들면 HTML을 담고 있는 hello라는 파일을 올리고, 웹 브라우져에서 열면 내용이 보이지 않고 바로 다운로드됨. 그래서 hello라는 파일의 Content-Type을 text/html로 설정해주면 웹 브라우저에서 HTML 파일로 인식해서 내용을 보여줌. -
Content-Language
텍스트로 된 파일(HTML 등)의 언어를 지정. en, ko, jp 혹은 en-us, ko-kr, ja-jp 등으로 지정 -
Expires
Cache-Control과 같은 동작을 하지만, 초 단위가 아닌 특정 날짜와 시간을 지정하여 만기 시간을 설정. Tue, 22 Apr 2014 20:00:00 GMT와 같은 형식으로 지정해야 함. -
Content-Encoding
데이터 인코딩 방식. Valu에 gzip을 지정할 수 있으며 이 때는 데이터를 압축하여 전송한 뒤 웹 브라우저에서는 압축을 해제해 사용하게 됨. 텍스트 데이터가 많고 용량이 큰 경우 이 메티데이터를 사용하면 데이터 전송 비용을 절감할 수 있음(JPG나 PNG 등의 그림 파일은 이미 포맷 자체가 압축 데이터이므로 gzip을 설정하더라고 용량이 크게 줄어들이 않음. 따라서 그림 파일에는 이 메타데이터를 설정하지 않은 것이 좋은). gzip을 가장 많이 사용하며 deflate도 지정할 수 있음.
S3 전용 메타데이터
-
Website Redirect Location
웹 브라우저로 해당 파일에 접속했을 때 다른 파일이나 URL로 리다이렉션하는 기능. /hello.html처럼 S3에 올라가 있는 파일명을 지정할 수 있음.(이 때는 /로 시작해야 함). 또는 http://www.example.com처럼 외부 도메인 또는 URL을 지정할 수도 있음. 이 설정은 버킷을 정적 웹사이트 호스팅으로 설정한 뒤 S3 Website Endpoint로 접속해야 동작.(x-amz-website-redirect-location). -
사용자 정의 메타데이터
x-amz-meta-: 사용자 마음대로 사용할 수 있는 메타데이터. 객체에 추가적인 설명을 넣고 싶을 때 사용. x-amz-meta- 뒤에 임의로 이름을 붙여 x-amz-meta-user-id와 같이 사용하면 됨. -
S3 시스템 정의 메타데이터
일부 S3 세부 설정들을 이 메타데이터로 대신할 수 있음. 그리고 S3 콘솔에서 설정한 세부 설정들은 HTTP Response Header에 아래 키로 표현됨.
- x-amz-server-side-encryption: 데이터 암호화 옵션. Properties의 Details에서 Server Side Encryption 설정을 대신할 수 있으며 AES256을 값으로 가짐.
- x-amz-version-id: S3 버킷에 버저닝 기능을 켯을 때, 파일의 버전을 표시.(사용자가 편집할 수 없는 메타데이터)
- x-amz-delete-marker: S3 버킷에 버저닝 기능을 켜고, 파일을 삭제하면 파일이 완전히 삭제되지 않고 삭제 표시(delete-marker) 설정이 됨. true를 값으로 가짐.(사용자가 편집할 수 없는 메타데이터)
- x-amz-storage-class: 스토리지 클래스 옵션. Properties의 Details에서 스토리지 클래스(Storage Class) 설정을 대신할 수 있으며 STANDARD와 REDUCED_REDUNDANCY를 값으로 가짐.
<Note>
Object key and Metadata
http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
'AWS' 카테고리의 다른 글
RDS DB Instance Class (0) | 2015.08.16 |
---|---|
EC2 instance(Amazon Linux, 및 EBS 사용) xfs 파일 시스템 사용하기 (0) | 2015.08.12 |