[AWS-SAA] Amazon S3(1)
1. Amazon S3 란
- 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스
- 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석 등 다양한 사용 사례에서 원하는 양의 데이터를 저장하고 보호
2. Amazon S3 특징
- 여러 사용 사례에 맞춰 설계된 다양한 스토리지 클래스를 제공. 예를 들어 자주 액세스하기 위해 미션 크리티컬 프로덕션 데이터를 S3 Standard에 저장하고, 액세스 빈도가 낮은 데이터를 S3 Standard-IA 또는 S3 One Zone-IA에 저장하여 비용을 절감하고, S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive에 가장 낮은 비용으로 데이터를 보관
- 버킷 및 객체에 대한 액세스 감사 및 관리 기능을 제공. 세분화된 리소스 권한을 부여하거나 Amazon S3 리소스의 권한을 감사하기 위해 다음 기능을 사용
- 데이터를 변환하고 워크플로를 트리거하여 다양한 다른 처리 작업을 대규모로 자동화하기 위해 다음 기능을 사용. 자체 코드를 S3 GET 요청에 추가하여 애플리케이션에 데이터가 반환될 때 데이터를 수정 및 처리가능
- 리소스가 사용되는 방식을 모니터링하고 제어하는 데 사용할 수 있는 로깅 및 모니터링 도구를 제공
3. Amazon S3 작동 방식
- 데이터를 버킷 내의 객체로 저장하는 객체 스토리지 서비스. 버킷은 객체에 대한 컨테이너. 객체는 해당 파일을 설명하는 모든 메타데이터
- 데이터를 저장하려면 먼저 버킷을 생성하고 버킷 이름 및 AWS 리전을 지정. 그런 다음 Amazon S3에서 객체로 해당 버킷에 데이터를 업로드. 각 객체에는 키(또는 키 이름)가 있으며, 이는 버킷 내 객체에 대한 고유한 식별자
4. bucket(버킷)
- 저장된 객체에 대한 컨테이너. 버킷에 저장할 수 있는 객체 수에는 제한이 없음. 또한 계정에 버킷을 최대 100개까지 포함
- 전역적으로 고유한 이름
- 리전 수준에서 정의됨
- 명명규칙 대문자 x. 밑줄 x
5. object(객체)
- 저장되는 기본 개체
- 객체는 객체 데이터와 메타데이터로 구성. 메타데이터는 객체를 설명하는 키-값 페어의 집합
- 키는 전체경로(접두사+객체이름). ex. s3://myfirstbucket/my-file.txt
- 최대 크기는 5TB. 5GB이상 업로드하는경우 멀티파트 업로드를 사용해야함
6. Amazon S3 버젼관리
- 파일의 버전을 관리를 할 수 있음
- 동일한 키에 덮어쓰기는 버젼을 증가시킴(의도하지 않은 삭제로 부터 보호)
7. Amazon S3 객체 암호화
- SSE-S3: AWS에서 처리 및 관리하는 키를 사용하여 S3 객체를 암호화. 각 객체를 고유한 키로 암호화. 또한 추가 보안 조치로 주기적으로 바뀌는 키를 사용하여 키 자체를 암호화
- SSE-KMS: AWS Key Management Service를 활용하여 암호화 키를 관리
- SSE-C: 자체 암호화 키를 관리. 고객 제공 암호화 키(SSE-C)로 서버 측 암호화를 사용하여 자체 암호화 키를 설정
- client-암호화: 보안을 보장하기 위해 로컬에서 데이터를 암호화. Amazon S3 서비스는 암호화된 데이터를 수신하며 데이터를 암호화 또는 복호화하는 과정에 기여하지 않음
8. Amazon S3 CORS
- 클라이언트가 S3 버킷에 대해 교차 출처 요청을 수행하는 경우 출처 허용을 통해 제공할 수 있다.