Introduction to Amazon Simple Storage Service (S3)
S3는 Amazon의 "object storage" 서비스다.
[특징]
- 99.999999999% of durability(내구성)
[S3 Storage Classes]
(1) S3 Standard
- 99.99% availability
- 99.999999999 (11 * 9s) durability
- designed to sustain the loss of 2 facilities concurrently
(2) S3 - IA (Infrequently Accessed)
- 자주 접근되지 않지만, 가끔 필요할 때는 빠른 속도로 검색하는 경우를 위한 S3
- S3 Standard 보다 가격이 저렴하지만, retrieval fee (검색 비용)이 따로 요구됨
(3) S3 One Zone - IA (Infrequently Accessed)
- lower-cost options for inrequently accessed data
- mutiple Availability Zone data resilience 가 필요하지 않은 경우
- 하나의 Avalabiltiy Zone에 데이터가 구성된다.
(4) S3 - Intelligent Tiering
- 분석 기법을 이용해 데이터를 비용최적화된 클래스로 자동으로 옮겨준다.
- 성능이나 운영상의 오버헤드는 없다
(5) S3 Glacier
- low-cost stroage class for data archiving
- Retrieval times (검색 시간) configurable from minutes to hours.
(6) S3 Glacier Deep Archive
- lowest-cost storage (가장 저렴한)
- retrieval time of 12 hours
[CRR - Cross Region Replication]
- 재해를 대비해서 다른 리전간의 버킷을 구성하고 복제를 수행
- source bucket, target bucket 을 선택해서 복제 수행
- bucket versioning 기능이 활성화 되어 있어야 사용 가능하다
- source target에 기존에 올라간 객체에 대해서는 자동으로 복제가 진행되지 않는다.
- Delete Marker는 복제되지 않는다. (Versioning 기능으로 인해 실제 파일은 살아있기 때문에)
- version 파일이 삭제되는 경우에도 (Versions Show 화면에서 삭제하면 실제 파일이 삭제된다) 복제되지 않는다.
[Transfer Acceleration]
- CloudFront의 Edge location 이용한 업로드 기법
- CloudFront는 엣지 로케이션에 있고, 엣지 로케이션과 리전은 "백본"망으로 연결되어 있기 때문에 인터넷망 보다 속도가 훨씬 빠르다.
- S3와 멀리 있는 유저의 경우 이 기능을 사용하게 되면 속도 체감이 가능하다
** Transfer Acceleration 테스트 페이지 - 구글 검색어 Amazon S3 Transfer Acceleration Speed Comparison
- end user와 S3 bucket 사이의 "먼 거리를" 빠르고, 쉽고, 안전하게 전송할 수 있도록 해준다.
- Edge location에 데이터가 도착하면 Amazon S3까지 가는 가장 효율적인 경로를 결정한다.
[실습 정리]
1. Create a bucket
Amazon S3의 모든 object 는 "bucket" 이라는 곳에 저장된다.
- bucket name은 계정이나 region에 상관없이 Amazon S3 에서 유일해야 한다. (전체 S3에서 유일하게 만들려면... 이름 만들기 어려울 것 같은데...??? 왜 이렇게 되어 있을까..??)
- bucket name은 생성된 후에 변경될 수 없다.
- bucket이 존재하는 region을 선택하는데, region을 잘 선택하면 다음과 같은 효과가 있다.
optimize latency, minimize costs, address regulatory requirements
- default로, new S3 buckets과 그 안의 objects는 pulbic 접근 권한이 없다. 세팅을 통해서 enable 할 수 있다.
2. Upload an object to the bucket
3. Make an object public
object는 text, photo, video, zip 같은 파일이다.
object별로 metadata 또는 permissions 같은 옵션을 지정할 수 있다.
- bucket이 "not to allow public access"로 설정되어 있는 경우, object에 public read 권한을 줄 수 없다.
- bucket 자체에 access 권한을 세팅하면 bucket의 모든 object에 권한이 세팅된다.
4. Create a bucket policy
bucket 전체 또는 특정 디렉토리에 대해 정책을 세팅하고 싶으면 bucket policy를 세팅하면 된다.
ARN을 이용해서 bucket policy를 세팅할 수 있다.
ARN (Amazon Resource Name)
전체 AWS 에서 AWS resource를 유일하게 식별하는 식별자
format = "arn:partition:service:region:account-id:resource"
S3는 region, account-id를 필요로 하지 않기 때문에 blank로 세팅된다.
ARN 은 AWS에서 자원에 접근하기 위한 standard way. ARN 마지막에 /* 를 추가하면 bucket내의 모든 object를 의미함.
5. Explore versioning
Versioning을 통해서 preserve, retrieve, resotre 기능을 사용할 수 있다.
특히, 의도하지 않았던
댓글