본문 바로가기

AWS

S3(Scalable Storage in the Cloud)

기본 개념
  • 객체(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
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를 값으로 가짐.


'AWS' 카테고리의 다른 글

RDS DB Instance Class  (0) 2015.08.16
EC2 instance(Amazon Linux, 및 EBS 사용) xfs 파일 시스템 사용하기  (0) 2015.08.12