Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 산업의 고객은 Amazon S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터와 같은 다양한 사용 사례에 대해 데이터 양을 제한 없이 저장하고 보호할 수 있습니다.
일전에 ft_transcendence라는 게이밍서비스 과제를 할 때, 팀원이 프로필기능을 구현하기 위해 S3를 통해 유저 지정한 프로필 사진을 저장하여 미디어를 호스팅했던 기억이 있습니다.
junghan_bucket
/my_text.txt
junghan_bucket
/my_folder_1/my_folder_2/my_text.txt
사용자 기반
• IAM 정책 – IAM의 특정 사용자에게 허용되어야 하는 API 호출
리소스 기반
• 버킷 정책 – S3 콘솔의 버킷 전체 규칙 - 교차 계정 허용
• Object Access Control List(ACL)(액세스 제어 목록) – 세분화된 수준(비활성화 가능)
• Bucket Access Control List(ACL) – 덜 일반적임(비활성화 가능)
참고: IAM 보안 주체는 다음과 같은 경우 S3 객체에 액세스할 수 있습니다.
• 사용자 IAM 권한이 허용하거나 리소스 정책이 허용합니다.
• 그리고 명시적인 DENY가 없습니다.
암호화: 암호화 키를 사용하여 Amazon S3의 객체 암호화
JSON 기반 정책
• Resource: 버킷 및 개체
• Effect: 허용/거부
• Actions: 허용 또는 거부할 API 집합
• Principal: 정책을 적용할 계정 또는 사용자
정책에 S3 버킷을 사용하여 다음을 수행합니다.
• 버킷에 대한 공개 액세스 권한 부여
• 업로드 시 객체를 강제로 암호화
• 다른 계정에 대한 액세스 권한 부여(크로스 계정)
https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html
S3는 정적 웹사이트(static websites)를 호스팅 할 수 있으며 이를 www로 접근 가능하도록 만들 수 있습니다.
• 웹사이트 URL은 아래와 같은 형식을 가집니다.
http://demo-bucket.s3-website-us-west-2.amazonaws.com http://demo-bucket.s3-website.us-west-2.amazonaws.com
Amazon S3에서는 파일을 버전 관리할 수 있습니다
이것은 버킷 수준에서 활성화해야 하는 설정입니다.
사용자가 파일을 업로드할 때마다 선택키에서 해당 파일의 버전이 생성될 텐데요동일한 키를 업로드하고 해당 파일을 덮어쓰는 경우 버전 2, 버전 3 등을 생성하게 됩니다.
이 방법은 의도하지 않게 삭제하지 않도록 보호해주기 때문입니다 실수로 파일을 삭제하더라도 이전 버전을 복구할 수 있는 거죠
버전 관리를 활성화하기 전에 버전 관리가 적용되지 않은 모든 파일은 널(null) 버전을 갖게 됩니다
버전 관리를 중단한다고 해서 이전 버전이 삭제 되지는 않습니다.
새로운 버전의 파일을 업로드
S3 버컷의 버전표시 토글을 활성화 한 뒤, 객체의 변화 확인
영구 삭제
삭제
복제를 사용하면 Amazon S3 버킷에서 객체를 자동으로 비동기식으로 복사할 수 있습니다. 객체 복제용으로 구성된 버킷은 동일한 AWS 계정 또는 다른 계정이 소유할 수 있습니다. 개체를 단일 대상 버킷 또는 여러 대상 버킷에 복제할 수 있습니다. 대상 버킷은 다른 AWS 리전에 있거나 소스 버킷과 동일한 리전에 있을 수 있습니다.
• CRR – compliance, 액세스 대기 시간 단축, 계정 간 복제
• SRR – 로그 집계, 프로덕션 계정과 테스트 계정 간의 실시간 복제
• 복제를 활성화하면 새 개체만 복제됩니다. (복제 시점 이후 파일)
• 선택적으로 S3 Batch Replication을 사용하여 기존 개체를 복제할 수 있습니다.
• 기존 객체 및 복제에 실패한 객체 복제
DELETE 작업의 경우
• 삭제 마커를 소스에서 대상으로 복제할 수 있습니다(선택적 설정).
• 버전 ID가 있는 삭제는 복제되지 않습니다(악의적인 삭제 방지).
- 삭제 마커 복제 설정하면 가능
복제의 "Chaining"이 없습니다.
• 버킷 1이 버킷 2로 복제되고 버킷 3으로 복제되는 경우
• 그러면 버킷 1에서 생성된 객체는 버킷 3에 복제되지 않습니다.
AWS S3는 사용 사례 시나리오 및 성능 액세스 요구 사항에 맞는 다양한 S3 스토리지 클래스를 제공합니다.
• 99.99% 가용성
• 자주 접근하는 데이터에 사용
• 낮은 대기 시간 및 높은 처리량
• 2개의 동시 시설 장애 유지
• 사용 사례: 빅 데이터 분석, 모바일 및 게임 애플리케이션, 콘텐츠 배포…
• 자주 액세스하지 않지만 필요할 때 신속하게 액세스해야 하는 데이터의 경우
• S3 Standard보다 저렴한 비용
• 99.9% 가용성
• 사용 사례: 재해 복구, 백업
• 단일 AZ에서 높은 내구성(99.999999999%); AZ가 파괴되면 데이터 손실
• 99.5% 가용성
• 사용 사례: 온프레미스 데이터 또는 다시 생성할 수 있는 데이터의 보조 백업 복사본 저장
• 아카이빙/백업을 위한 저비용 객체 스토리지
• 가격: 스토리지 가격 + 객체 검색 비용
• 밀리초 검색, 분기에 한 번 액세스하는 데이터에 적합
• 최소 보관 기간 90일
• 신속(1~5분), 표준(3~5시간), 대량(5~12시간) - 무료
• 최소 보관 기간 90일
• 표준(12시간), 대량(48시간)
• 최소 보관 기간 180일
• 소액의 월별 모니터링 및 자동 계층화 요금
• 사용량에 따라 액세스 계층 간에 개체를 자동으로 이동합니다.
• S3 Intelligent-Tiering에는 검색 요금이 없습니다.
• 상용 액세스 계층(자동): 기본 계층
• Infrequent Access 계층(자동): 30일 동안 액세스하지 않은 객체
• 아카이빙 인스턴트 액세스 계층(자동): 90일 동안 개체에 액세스하지 않음
• 아카이브 액세스 계층(선택 사항): 90일에서 700일 이상으로 구성 가능
• 심층 아카이브 액세스 계층(선택 사항): config. 180일에서 700일 이상
https://aws.amazon.com/ko/s3/storage-classes/