2021. 4. 27. 05:21ㆍIT 공부/AWS
※ Amazon S3
- 객체 수준 스토리지 (파일 일부를 변경하려면, 파일 전체를 다시 업로드해야 함)
- 객체는 파일 데이터 + 그 객체를 설명하는 메타데이터로 구성됨
- S3에 저장되는 데이터는 여러 시설과 여러 디바이스에 중복 저장됨
- AWS의 Console, API, SDK 및 타사 API, SDK를 통해 액세스 가능
- 이벤트 알림 및 다른 프로세스 트리거로 활용 가능 (ex: 특정 버킷에 객체 업로드/삭제시 A프로세스 진행)
- 정적 웹 사이트 전체를 호스팅 할 수 있음
※ S3 사용량에 관하여
- S3 analytics에서 액세스 정도를 분석하여 적합한 스토리지 클래스를 사용 가능
- 일별 스토리지 사용량은 AWS MAnagement Console에서 시각적으로 확인 가능
- 사용량에 대한 데이터를 S3 버킷에 저장 후 Amazon QuickSight와 같은 비즈니스 인텔리전스 도구에서 분석 가능
※ S3의 기능 및 보안
- S3는 CDN의 오리진 역할 수행 가능
- 신규 생성된 버킷 접근 권한은 계정 관리자 및 루트 사용자만 가지고 있음
- 보안을 위한 퍼블릭 액세스 차단 기능의 4가지 옵션
::: 새 퍼블릭 ACL 및 퍼블릭 객체 업로드 차단 ::: 퍼블릭 ACL을 통해 부여된 퍼블릭 액세스 권한 제거 ::: 새 퍼블릭 버킷 정책 차단 ::: 퍼블릭 정책이 있는 버킷에 대한 퍼블릭 액세스 및 교차 계정 액세스 차단 |
※ S3 액세스 포인트
- 해당 엔드 포인트에서 데이터로 접근할 수 있는 전용 액세스 정책
※ S3 버전 관리 기능
- 객체를 영구적으로 제거하지 않고 삭제할 경우, 삭제 마커가 삽입됨
- 객체를 덮어쓴 경우 새 객체 버전이 생기며 이전 버전으로 복원 가능
- 데이터 보존 또는 보호를 위해 S3 객체 잠금이 가능 (WORM 모델 : Write-Once-Read-Many)
※ CORS (Cross Origin Resource Sharing)
- 한 도메인에서 로드되어 있는 클라이언트 웹 애플리케이션이 다른 도메인에 있는 리소스와 상호 작용하는 방법
- S3 리소스에 대한 교차 오리진 액세스 허용이 가능 (규칙에 대한 XML 문서 필요)
::: 버킷에 액세스를 허용할 오리진 ::: 각 오리진에 대해 지원할 작업 (HTTP 메서드) ::: 기타 작업별 정보 |
<CORSConfiguration>
<CORSRule>
<AllowedOrigin> </AllowedOrigin>
<AllowedMethod> </AllowedMethod>
....
<MaxAgeSeconds> </MaxAgeSeconds>
<ExposeHeader> </ExposeHeader>
</CORSRule>
</CORSConfiguration>
※ 데이터 스토어로서의 S3
- 대규모 분석 및 연산을 위한 데이터 스토어로 사용 가능
- 수평 확장성에 의해 다수의 동시 트랜잭션이 가능하기 때문
※ 백업 및 아카이브 도구로서의 S3
- 수명 주기 정책을 사용하여 장기 데이터를 Amazon Glacier로 이전할 수 있음
- 더 높은 수준의 내구성이 필요할 경우, 교차 리전 복제를 사용하여 다른 리전의 S3 버킷에 자동 복사 가능
※ S3로의 멀티파트 업로드
- 대용량 객체를 분할 업로드 후 S3에서 조각 객체를 전체 객체로 다시 생성
- 병렬 파트 업로드로 처리량 개선
- 작은 파일 크기로 네트워크 오류시 재시작에 대한 부담 감소
※ S3 사용이 적합한 경우
- 한 번 쓰고 여러 번 읽어야 할 때
- 데이터 액세스가 일시적으로 급증할 때
- 사용자가 매우 많고 콘텐츠 양이 다양할 때
- 데이터세트가 계속 증가할 때
※ S3 사용이 적합하지 않은 경우
- 데이터가 자주 바뀔 때
- 장기 아카이브 스토리지
- 블록 스토리지
(참고) 파일 스토리지 vs 오브젝트 스토리지 vs 블록 스토리지
www.alibabacloud.com/ko/knowledge/difference-between-object-storage-file-storage-block-storage
파일 스토리지 | - 폴더 계층 구조로 파일 저장 - 파일 정보에 대한 메타데이터가 제한적 - 데이터 양이 늘어날 경우 구조적 문제 발생 가능 |
오브젝트 스토리지 | - 오브젝트라는 각각의 데이터 단위가 개별 단위로 저장 - 오브젝트는 PDF, 비디오, 오디오, 텍스트, 웹사이트 데이터 등 거의 모든 데이터 유형 - 폴더 계층 구조 없이 단일 평면 구조로 저장 - 오브젝트 명이 색인 테이블에서 키 역할을 하여 빠른 검색 가능 |
블록 스토리지 | - 데이터를 고정된 크기의 덩어리 또는 블록 시퀀스로 처리 - 연속적으로 저장되지 않고 요청이 있을 때마다 블록을 병합하여 처리 - 각 블록이 서로 다른 고유 주소를 가지므로 계층구조 X - 메타데이터 처리 능력이 제한적이므로 애플리케이션 수준에서 별도 처리해야 함 |
※ S3 Glacier
- 장기 데이터 스토리지
- 아카이브 또는 백업 용도
- 클라우드 스토리지 중 가장 저렴함
- 관리 콘솔을 사용하거나 CLI에서 작업해야 함
- 데이터 검색을 할 일이 거의 없거나 엄청 느려도 무방할 경우 사용
- 데이터 전송 및 저장시 SSL/TLS 암호화
(참고) SSL/TLS
SSL (Secure Socket Layer) TLS (Transport Layer Security) |
웹 서버와 웹 브라우저 간의 암호화 통신을 위하여 응용계층과 TCP/IP 계층에서 동작하는 프로토콜 1) 인증 : 상대 사이트에 대한 신뢰성 인증 2) 암호화 : 다양한 암호화 알고리즘을 이용하여 메시지 암호화 3) 무결성 : 송/수신 메시지에 대한 Checksum* 기능, 변조 방지 4) 지원 프로토콜 : HTTPS(port:443), TelNets(port:992), POP3S(port:995), SFTP(port:22) |
::: checksum : 네트워크를 거치면서 데이터가 변경되었는지 확인하는 방법
액세스 정보 : S3 Standard > S3 Standard IA > S3 One Zone IA > Amazon Glacier/Deep Archive
※ 리전
- 일부 서비스는 일부 리전에서만 제공
- 일부 서비스는 교차 리전으로 사용할 수 있으나 지연 시간 증가
- 리전 별로 비용이 다름