S3
Amazon Simple Storage Service(S3)
무제한 저장용량을 제공하는 글로벌 스토리지 서비스
- S3는 글로벌 서비스이지만, 리전 단위로 버킷을 생성
- 최소 3개의 가용영역에 데이터를 자동 분산 저장
- 성능, 확장성, 가용성, 내구성이 높음
- 대표적인 사용 사례
- 백업 및 복원
- 재해 복구(DR)
- 아카이브
- 클라우드 스토리지
- 정적 웹사이트 호스팅
- 유니크한 버킷이름을 가져야 함
- 다른 AWS 사용자와 중복되지 않아야 함
버킷 - 파일 저장 공간 = 디렉토리
객체 - 파일
* 개별 파일 업로드 사이즈는 최대 5TB
S3 버전관리
기능을 활성화하여 버전관리 기능을 사용할 수 있음
- 객체를 하나의 파일이 아닌 여러 버전으로 보존할 수 있음
- 동일한 파일 이름을 업로드하면 여러 버전으로 저장됨
- 실수로 객체를 덮어쓰거나 삭제한 경우 이전 버전으로 복구 가능
- 실수로 객체를 삭제하는 것을 방지하기 위해 MFA Delete 옵션을 추가할 수 있음
- 버전관리 + MFA Delete를 조합하면 강력한 삭제방지 기능을 가짐(S3 파일을 보호하는 방법)
S3 객체 암호화
데이터를 전송 중, 스토리지에 저장된 동안 보안을 위해 암호화 사용
- S3 객체의 암호화 유형
- 서버측 암호화 :데이터가 서버에 저장되기 전에 객체를 암호화
- SSE-S3 : S3에서 관리하는 암호화
- SSE-KMS : KMS(키 관리 서버)에서 관리하는 암호화
- 키 관리 서버를 이용하므로 키를 자동으로 교체하거나 감사기능을 지원 가능
- 암호화 키를 AWS 관리, 가지고 있는 마스터 키로 등록, 수동으로 입력하는 ARN을 선택가능
- SSE-C : 고객(사용자)가 관리하는 암호화
- 데이터 전송 시 반드시 HTTPS를 사용
- 클라이언트측 암호화 : 데이터를 전송하기 전에 클라이언트 측에서 암호화
- 전송 중 암호화 : 전송중에 SSL/TLS를 이용해 데이터를 암호화, HTTPS 프로토콜 사용
S3측에서 서버측 암호화로 SSE-S3와 SSE-KMS를 선택 가능
* 암호화기능 이전에 업로드된 객체는 적용되지 않음
* SSE는 Server Side Encryption으로 서버측 암호화
* 상황에 적절한 암호화를 선택하는 것이 중요
S3 버킷 정책
S3 버킷에 대한 액세스를 제어, 보안을 위한 기능
- S3 버킷 정책의 종류
- 버킷 정책 : S3 버킷을 제어하는 정책
- 조건에 따라 버킷에 액세스를 부여하고 제한하는 기능으로 사용
- JSON 형식
- 퍼블릭 액세스 차단(버킷 설정) : S3 버킷 및 내부 객체를 외부에 공개하는지의 여부
- S3 버킷은 기본적으로 퍼블릭 액세스를 차단하여 보안을 강화
- 웹사이트 서비스에서 S3버킷에 대한 접근의 경우 처험 필요에 따하 액세스 허용가능
- ACL(액세스 제어 목록)
- AWS 계정 또는 외부에 버킷이나 객체에 읽기/쓰기 권한을 부여하는 기능
S3 정적 웹사이트 호스팅
정적 웹사이트 : 언제 접속해도 항상 같은 내용을 보여주는 변하지 않는 사이트
동적 웹사이트 : 접속할 때마다 다른 내용이 변하는 사이트
- S3에서 정적 웹사이트 호스팅 가능
- S3 웹사이트 주소 예시 : .s3-website-리전.amazonaws.com 형식
- 퍼블릭 엑세스를 허용하지 않으면 403에러 발생
- S3에서 웹사이트 호스팅을 할 시에 EC2등의 별도의 웹 서버를 운영하지 않아도 됨
- 정적 웹사이트일 경우 S3가 효율적
CORS
Cross-Origin Resource Sharing(CORS)
* Origin = S3 버킷의 주소 (.s3-website-리전.amazonaws.com 형식)
다른 Origin에 버킷에 대한 액세스를 공유하는 것
다른 Origin에 있는 버킷의 객체도 퍼블릭 액세스를 허용할 경우 모두에게 공개되므로 보안상 문제가 생길 수도 있음
-> 하나의 리소스에 대해서만 허용
Access Logs
- S3 버킷의 모든 활동을 파일로 만들어 저장하는 기능
- 감사 목적으로 활용가능
- Amazon Athena같은 분석 도구를 사용가능
- 버킷에서 서버 액세스 로깅 설정으로 활성화 가능
- 운영 버킷과 그에 따른 로그 저장소를 같이 사용하면 안됨
- 무한 루프로 로그 파일이 지속적 증가
S3 Replication
S3 버킷 간에 객체를 자동으로 복제하는 기능
S3 Replication을 사용하기 위해서는 원본과 복제 버킷 모두 버전관리가 활성화 되어 있어야함
2가지의 복제 유형 존재
- CRR(Cross Region Replication) - 교차 리전 복제
- 서로 다른 AWS 리전의 S3버킷으로 객체를 복사
- 사용사례
- 재해복구(DR)
- 지리적으로 가까운 액세스가 필요한 경우 사용
- SRR(Same Region Replication) - 동일 리전 복제
- 같은 AWS 리전의 S3 버킷으로 객체를 복사
- 사용사례
- 동일한 데이터를 사용하는 프로덕션과 테스트 계정간의 복제
- 법적 준수사항으로 같은 리전안에 복사본을 만들어야하는 경우
S3 스토리지 유형
6가지 스토리지 클래스 유형이 있음 - 객체 마다 설정 가능
- S3 Standard(범용)
- 짧은 지연시간과 많은 처리량 제공
- 일반적인 용도, 다양한 사용 사례에 적합
- S3 Intelligent-Tiering
- 액세스 패턴을 알 수 없거나 예측할 수 없는 데이터용
- 비용측으로 가장 효과적인 액세스 계층으로 데이터를 자동으로 이동하여 비용을 최적화하기 위해 설계
- 2개의 액세스 계층으로 작동
- 빈번한 액세스에 맞게 최적화되고 저렴한 비용의 액세스 계층
- 빈번하지 않은 액세스에 맞게 최적화한 액세스 계층
- 객체의 액세스 패턴을 모니터링하고 연속 30일 동안 액세스하지 않은 객체를 빈번하지 않은 액세스 계층으로 이동
- 비번하지 않은 액세스 계층의 객체가 액세스되면 자동으로 빈번한 액세스 계층으로 이동
- S3 Standard-IA
- 빈번하지 않은 액세스용
- 자주 액세스하지는 않지만 빠르게 액세스해야하는 데이터에 적합
- S3 One Zone-IA
- S3 Standard-IA와 유사
- 빈번하지 않은 액세스용
- 자주 액세스하지는 않지만 빠르게 액세스해야하는 데이터에 적합
- 한개의 가용영역에만 데이터를 저장(S3 Standar-IA와 그외의 스토리지 클래스는 3개의 가용영역에 저장)
- S3 Standard-IA에 비해 비용이 20% 적음
- 가용성 및 복원력이 필요없는 고객에게 적합
- S3 Glacier
- 장기 아카이브용 - 저렴한 비용으로 장기보관하는 백업 용도
- 검색시간이 김 - 몇 분부터 몇 시간까지 구성
- S3 Glacier Deep Archive
- 가장 저렴한 비용의 스토리지 클래스
- 7~10년 이상 데이터를 장기 보관하는 용도
- 검색시간이 엄청 김 - 12시간 이내
S3 라이프 사이클 정책
객체 수명주기 관리
객체가 저장되어 삭제될 때까지의 수명주기를 비용 효율적으로 저장되도록 관리하는 기능
객체 수명주기 관리의 예시
S3 버킷 -> 관리 -> 수명주기 규칙에서 수명주기 관리 가능
S3의 기타 기능
- 이벤트 알림
- S3의 이벤트가 발생할 때마다 알리는 기능
- 이벤트는 객체의 생성, 복제, 복원 등이 있음
- ex) 생성된 이벤트 알림을 Amazon SNS, SQS, AWS Lambda로 전송 가능
- ex) 객체가 삭제될 때 마다 S3에서 Amazon SNS로 사용자의 이메일로 전송 가능
- 전송 가속화
- S3버킷의 객체를 사용자에게 더 빠르게 전송해 주는 기능]
- AWS의 엣지 로케이션을 활용하여 S3 데이터를 사용자와 가까운 곳에 캐싱하여 전송
- 객체 잠금
- 일정시간, 무기한으로 객체가 삭제되거나 덮어쓰이지 않도록 읽기만 허용하는 것
- 법적인 보존기간이 있는 객체의 경우 사용
- Object Lock(객체 잠금), Glacier Vault Lock(글라시아 아카이브 잠금) 2가지 잠금이 있음
- 요청자 지불 버킷
- 일반적으로 버킷에 데이터를 다운로드 하거나 업로드 하는 요청자가 데이터 전송 비용을 지불하는 기능
'AWS Solutions Architect 자격증' 카테고리의 다른 글
AWS - 글로벌 전송 (0) | 2021.10.20 |
---|---|
AWS - 기타 스토리지 (0) | 2021.10.20 |
AWS - EC2 스토리지 (0) | 2021.10.19 |
AWS - EC2 & Lambda(3) (0) | 2021.10.19 |
AWS - EC2 & Lambda(2) (0) | 2021.10.19 |
댓글