S3 - 개요 및 버킷 생성
데이터 저장 방식
오브젝트 스토리지 = s3
- 오브젝트라고 불리는 개별 유닛에 데이터를 저장하는 스토리지 포맷
- 각 유닛에는 고유의 식별자 혹은 키가 있어서 분산된 시스템 내 어디에 저장되어 있든지 상관없이 데이터를 찾을 수 있음
- 각각의 오브젝트에는 키, 데이터 및 옵션 메타데이터가 포함
블록 스토리지 = EBS
- 데이터를 고정된 사이즈의 블록으로 나누어 각각 고유한 식별자와 함께 저장하는 방식
- 각 데이터 블록은 고유 식별자를 부여 받아 스토리지 시스템이 데이터 조각을 원하는 곳에 배치 가능
예) 일부 데이터는 리눅스 환경에 저장하고 일부는 윈도우 장치에 저장
파일 스토리지 = EFS, FSx
- 데이터는 계층적 파일 디렉터리 내의 폴더에서 파일로 저장
- 해당 데이터에 액세스 해야하는 경우, 컴퓨터는 그 데이터를 찾기 위해 경로를 알아야함
- 파일에 저장된 데이터는 제한된 양의 메타데이터 (해당 파일 자체가 보관된 정확한 위치를 알려주는 데이터) 를 사용해 구성 및 검색
S3 , 버킷 및 객체
- 거의 무제한 저장 용량을 제공하는 객체 스토리지 서비스
- 최소 3개의 가용영역에 데이터를 자동 분산 저장하기에 성능, 확장성, 가용성, 내구성이 높음
- 대표적 사용사례 = 백업 및 복원, 재해 복구(DR) , 아카이브, 클라우드 스토리지, 정적 웹사이트 호스팅
amazon s3 서비스 자체는 글로벌 서비스라 오른쪽 상단에 리전을 고를 수 없다.
하지만 생성되는 bucket자체는 리전단위로 생성이 된다.
S3 - 버전 관리
- 객체(파일)이 여러 버전을 가질 수 있음 - 활성화 해줘야함
- 동일한 파일 이름을 업로드 하면 여러 버전으로 저장됨
- 실수로 객체를 덮어쓰거나 삭제한 경우 이전 버전으로 복구 가능
- 실수로 객체를 삭제하는것을 방지하기 위해 MFA Delete 옵션을 추가할 수 있음 (모바일 인증도 해줘야함)
버전관리 활성화 전에 저장한건 처음 버전id 가 null이다.
삭제하면 삭제마킹만되고 복구할 수 있게 된다. 모든 versino들을 체크해서 삭제하면 영구적으로 삭제할 수 있다.
S3 - 암호화
- 서버측 암호화 (SSE -Server side encryption) 데이터가 서버에 저장되기 전에 암호화
- SSE-S3 = S3에서 관리하는 암호화
- SSE_KMS = KMS(키관리서버) 에서 관리하는 암호화 , 키 관리 서버를 이용하므로 키를 자동 교체하거나 감사기능을 지원
- SSE-C = client가 관리하는 암호화 , 데이터 전송시 반드시 HTTPs를 사용해야함
- client측 암호화 = 데이터를 전송하기전에 클라이언트 사이드에서 암호화
SSE-C 는 이런상황에서 쓰일 수 있다. 클라이언트, 개발자 , 서버
클라이언트가 public , private key 다 생성하고 public key를 개발자에게줌
개발자는 public key로 s3 object 암호화해서 서버에 저장
클라이언트는 s3에서 object를 다운로드후 private key로 복호화
S3 - 버킷 access 정책
예전에 IAM 서비스에 했던것처럼 JSON으로 어떤 AWS 서비스에만 access 가능한지 정의 할 수 있다.
S3 - 정적 웹사이트 호스팅
정적웹 = 맨날 똑같은 내용을 보여주는 사이트
동적웹 = 접속할 떄마다 내용이 변함, 쇼핑몰, SNS
index.html , error html 2개가 필수이고 public access를 해야한다.
또한 s3 에 있는 사진을 로딩한다면 aws policy generator를 통해 정적호스팅해주는 S3(ARN) 으로 하여금
S3 getObject 권한을 가지게 해야줘야 한다.
CORS 가 지원되어 다른 웹주소(오리진) 에 버킷에 대한 엑세스를 공유할 수 있다.
엑세스 로깅
- s3 버킷의 모든 활동을 파일로 만들어 s3 버킷에 저장하는 기능
- amazon athena 같은 분석도구를 사용가능하다.
버킷이 달라야한다. 안그러면 무한 반복임
로그 파일이 로그버킷에 생성되는 시간이 존재함. 바로 생성되지 않음
S3 - Replication
s3 bucket간에 객체를 자동으로 복제함
- 교차리전 복제 (CRR , CrossRegion Replication) = 재해복구 (DR)
- 동일 리전 복제(SRR , Same Region Replication) = 프로덕션과 테스트 계정간의 복제, 법적 준수때문에
버전관리가 원본, 대상 버킷 둘다 켜져야함
다른 AWS 계정의 버킷으로도 복제가 가능함
S3 - 스토리지 유형 (Storage Class)
IA = Infrequent Access
S3 standard
- 짧은 지연 시간과 많은 처리량을 제공
S3 intelligent -tiering = 액세스 패턴을 에측할 수 없을 때
- 스스로 엑세스 패턴을 모니터링해서 자주 조회되는놈은 비싼곳으로 반대는 싼곳으로
- Frequent Access , Infrequent Access ,Archive Access , Deep Archive Access
30 , 90, 180일 기준으로 오른쪽으로 흘러감
S3 standard-IA (빈번하지 않은 엑세스용)
- 최소 과금 기간 30일 (30일이 끝나기 전에 객체를 삭제하면 30일 요금이 부과됨
S3 One Zone-IA (빈번하지 않은 엑세스용)
- 최소 3개의 가용영영역에 데이터를 저장하는 다른 s3클래스와 달리 단일 가용영역에만 저장하며 비용이 s3 standard-iA 보다 저렴함
- 가용성 , 복원력이 필요없는 고객에게 적합
- 최소 과금 기간 30일
Glacier Instant Retrieval (아카이브용)
- 저렴한 비용으로 장기 보관하는 백업 용도
- 분기에 한번 액세스하는 오래된 아카이브 데이터 용도
- 검색시간 = 밀리초내에 즉시 검색
- 최소 과금 기간 90일
S3 Glacier Flexible Retrieval
- 저렴한 비용으로 장기보관 하는 백업용도
- 일 년에 한번 액세스하는 오래된 아카이브 데이터 용도
- 검색 시간 = 몇 분 내지 몇 시간의 검색 시간소요
- 최소 과금기간 90일
S3 Glacier Deep Archive
- 가장 쌈
- 일련에 한번 미만으로 액세스 하는 오래된 아카이브 데이터 용도
- 7~10년이 상 데이터를 장기 보관하는 용도
- 검색시간 = 몇시간
- 최소 과금기간 180일
S3 - 수명 주기 정책 (Life Cycle Policy)
- 객체가 저장되어 삭제될 떄까지의 수명주기를 비용효율적으로 저장 되도록 관리하는 기능
- 버전관리가 활성화 되어 있을 경우 객체의 버전 별로 수명 주기 정책을 적용할 수 있음
- s3 analytics = 액세스 패턴을 분석해서 standard -> standard IA 로 옮길 시점을 알려준다.
날짜와 스토리지클래스를 지정해서 수명주기를 관리할 수 있음
S3 - Glacier Vault Lock
- S3 Glacier Vault는 아카이브 데이터를 저장하는 컨테이너
- S3 Glacier Vault Lock을 사용하여 파일 저장후 삭제, 편집을 못하도록 정책을 잠금
- Write Once Read Many(WORM) 모델을 적용
- Vault Lock을 사용하기 위해서는 Vault Lock 정책을 생성
- Vault 정책이 생성된 이후 더 이상 변경이나 삭제가 불가
- 데이터 보관 규정 준수 때문에 보통 사용함
S3 Object lock (S3객체 잠금)
객체 잠금을 사용하려면 버전관리가 활성화 되어야함
2가지 보관모드
- 거버넌스 모드 = 필요에 따라 일부 사용자에게 보관 설정을 변겨하거나 객체를 삭제할 수 있는 권한을 부여할 수 있음
- 규정준수 모드 = AWS 계정의 루트 사용자를 포함한 어떤 사용자도 덮어쓰거나 삭제 할 수 없음
legal hold(법적 보존)
- 객체 버전을 덮어쓰거나 삭제할 수 없도록 하는 기능
- 객체를 수정해야 하는 사용자의 IAM 정책에 s3 PutObjectLegalHold 권한을 추가하면 해당 사용자는
객체를 수정, 삭제 가능
s3 기타기능
이벤트 알림 , event notification
- s3의 이벤트가 발생할 때마다 알리는 기능
- 이벤트는 객체의 생성, 복제, 복원 등이 있음
- 생성된 이벤트 알림을 amazon sns , sqs, lambda 로 보낼 수 있음
s3 select & s3 glacier select
- sql 구문을 사용해 s3 객체의 콘텐츠를 필터링하여 원하는 데이터만 가져오는 기능
- 데이터를 검색하는데 필요한 비용을 절감하고 지연시간을 감소(성능 향상)
요청자 지불 버킷(Requested Pays)
- 일반적으로 버킷에 데이터를 다운로드 하거나 업로드 할 때 비용은 버킷 소유자가 지불
- 데이터 전송비용을 버킷 소유자가 아닌 요청자가 지불하게 하는 기능
미리서명된 url (pre signed url)
- 미리 서명된 url을 사용하여 제한 된 시간동안 객체를 공유 또는 업로드하는 만료시간을 설정
전송 가속화 (amazon s3 transfer acceleration)
- s3버킷의 객체를 사용자에게 더 빠르게 전송해 주는 기능
- aws의 엣지로케이션을 활용해서 s3데이터를 사용자와 가까운 곳에 캐싱하여 전송
- 전 세계 각지에서 중앙의 버킷으로 업로드하는 고객이 있는 경우에 사용
멀티 파트 업로드
- 대용량의 파일을 분할하여 병렬로 s3에 업로드 하는 방식
- 파트를 병렬로 업로드 하기에 빠른 처리 속도로 업로드 가능
- 업로드가 실패하면 재전송 또는 수명 주기 정책을 통해 완료되지 않은 업로드 삭제 기능
s3 데이터 검색
- athena , s3 select , redshift 등의 서비스를 사용해서 s3의 데이터를 다른 플랫폼으로 이동하지 않고 바로 검색 가능
- sql 쿼리문을 사용해서 검색가능
aws transfer for sftp
- s3 버킷을 저장소로 하는 sftp 서비스
- sftp(secure file transfer protocol) 보안 파일 전송 프로토콜
- 온-프레미스나 외부의 다른 시스템에서 sftp 를 이용하여 s3 버킷으로 파일을 전송하고 관리 가능
S3 access point
특정한 그룹 , 사용자 , 앱이 허용된 s3 데이터만 액세스 할 수 있게 하는 기능
에를들어 , 재무팀 사용자는 재무관련 s3데이터만 액세스 하여 crud가능
s3 object lambda
- lambda 함수를 사용해 s3 객체의 데이터를 수정 및 처리하는 기능
- s3객체의 개인 식별정보를 수정
- s3 객체의 xml 형식을 json으로 변환하는 등의 데이터 형식 간 변환
- 데이터 추가, 파일 압축/해제 , 이미지크기 조정 및 워터 마킹
s3 batch operation (배치작업)
- 단일 요청으로 많은 수의 s3 객체를 간편하게 처리하는 기능
- 예, 다른 버킷에 객체를 복사, 태그 또는 ACL(액세스 제어목록)을 설정, Glacier에서 복원을 시작, 각 객채별로 aws lambda함수 호출
'Cloud > AWS Certified Solutions Architect - Asso' 카테고리의 다른 글
글로벌 전송 (0) | 2023.08.17 |
---|---|
스토리지 - 기타 (0) | 2023.08.14 |
EC2 스토리지 (0) | 2023.08.07 |
EC2 Auto Scaling (0) | 2023.08.07 |
Elastic Load Balancing(ELB) (0) | 2023.08.04 |