본문 바로가기
AWS Solutions Architect 자격증

AWS - S3 스토리지

by 장중앙 2021. 10. 20.

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에 있는 버킷의 객체도 퍼블릭 액세스를 허용할 경우 모두에게 공개되므로 보안상 문제가 생길 수도 있음

  -> 하나의 리소스에 대해서만 허용

버킷 A가 버킷 B의 데이터를 가지고 올 수 있는 기능

 

 

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

댓글