S3(Simple Storage Service)란?
AWS의 S3는 무제한의 스토리지 용량을 제공하는 클라우드 스토리지 서비스입니다. S3는 데이터를 자동으로 최소 3개의 가용 영역(AZ)에 분산 저장하여, 성능, 확장성, 가용성, 내구성을 극대화합니다. 또한, S3는 비용 효율적이고, 높은 내구성을 자랑하는 파일 저장 및 관리 서비스를 제공합니다.
S3의 주요 사용 사례
- 백업 및 복원: 중요한 데이터를 안전하게 보관하고, 필요시 복원할 수 있음.
- 재해 복구(DR): 서버나 시스템의 장애 시 빠르게 복구할 수 있는 환경 구축.
- 아카이브: 장기 저장이 필요한 데이터 보관.
- 클라우드 스토리지: 다양한 파일의 안전한 클라우드 보관소.
- 정적 웹 사이트 호스팅: 별도의 웹 서버 없이 HTML, CSS, JS 등의 파일을 이용한 정적 웹 사이트 호스팅.
S3의 기본 개념
버킷 (Bucket)
S3의 저장소는 버킷(bucket)이라는 단위로 관리됩니다. 버킷은 AWS 리전(region) 단위로 생성되며, 유니크한 이름을 가져야 합니다. 이 버킷 안에 객체를 저장할 수 있습니다.
객체 (Object)
S3에서 저장하는 객체는 일반적인 파일(이미지, 동영상, 문서 등)이며, 최대 5TB까지 저장할 수 있습니다. 각 객체는 버킷 내에 저장되며, 객체의 메타데이터와 함께 관리됩니다.
S3 버전 관리
S3의 버전 관리 기능을 활성화하면, 동일한 파일 이름을 업로드할 때마다 파일의 여러 버전이 저장됩니다. 이로 인해 실수로 파일을 덮어쓰거나 삭제한 경우, 이전 버전으로 복구할 수 있습니다. 또한, MFA Delete 옵션을 설정하여 실수로 삭제되는 것을 방지할 수 있습니다.
S3 객체 암호화
S3는 데이터를 저장할 때와 전송 중에 데이터를 보호하기 위해 암호화를 제공합니다. Server Side Encryption (SSE)를 사용하면 데이터를 서버 측에서 자동으로 암호화할 수 있으며, SSE-S3, SSE-KMS, SSE-C와 같은 다양한 암호화 방법을 선택할 수 있습니다.
S3 정적 웹 사이트 호스팅
S3는 EC2와 같은 별도의 웹 서버 없이도 정적 웹 사이트를 호스팅할 수 있는 기능을 제공합니다. 이를 통해 HTML, CSS, JS 파일을 이용한 정적 웹 사이트를 호스팅할 수 있으며, 웹 사이트 주소는 버킷이름.s3-website-리전.amazonaws.com 형식으로 제공됩니다. 또한, 웹사이트의 퍼블릭 액세스를 허용해야 하므로, 이를 위해 퍼블릭 액세스를 설정해야 합니다.
S3 스토리지 클래스
S3는 다양한 스토리지 클래스를 제공하여 비용을 최적화할 수 있습니다. 각 스토리지 클래스는 데이터를 어떻게 사용할지에 따라 다르게 선택할 수 있습니다.
주요 스토리지 클래스
- S3 Standard: 일반적인 용도에 적합하며 짧은 지연 시간과 높은 처리량을 제공합니다.
- S3 Intelligent-Tiering: 액세스 패턴이 예측 불가능한 데이터에 적합하며, 자동으로 데이터를 액세스 패턴에 맞게 이동시켜 비용을 최적화합니다.
- S3 Standard-IA (Infrequent Access): 자주 액세스하지 않지만 필요할 때 빠르게 접근해야 하는 데이터에 적합합니다.
- S3 Glacier: 장기 보관이 필요한 데이터 아카이브 용도로, 저렴한 비용으로 데이터를 저장할 수 있습니다.
- S3 Glacier Deep Archive: 가장 저렴한 비용의 스토리지로, 7~10년 이상의 데이터 장기 보관에 적합합니다.
S3 객체 수명주기 관리 (Lifecycle Policy)
S3는 객체의 수명주기를 효율적으로 관리할 수 있는 기능을 제공합니다. 이 기능을 활용하면 데이터를 자동으로 이동하거나 삭제하여 비용을 최적화할 수 있습니다. 예를 들어, 객체가 일정 기간 경과 후 S3 Standard에서 Glacier로 이동하고, 이후 삭제되도록 설정할 수 있습니다.
S3 이벤트 알림
S3에서는 객체가 생성, 삭제, 복제 등 다양한 이벤트 발생 시 알림을 받을 수 있는 기능을 제공합니다. 알림은 SNS, SQS, Lambda 등을 통해 전달될 수 있으며, 예를 들어, 객체 삭제 시 SNS를 통해 이메일을 발송할 수 있습니다.
전송 가속화 (Amazon S3 Transfer Acceleration)
S3 Transfer Acceleration을 사용하면 AWS의 엣지 로케이션을 활용하여 데이터를 사용자에게 더 빠르게 전송할 수 있습니다. 이를 통해, S3 버킷의 객체를 사용자와 가까운 위치에 캐싱하여 빠른 속도로 파일을 다운로드하거나 업로드할 수 있습니다.
객체 잠금 (Object Lock)
S3는 객체의 데이터를 삭제하거나 덮어쓰지 못하도록 잠금하는 기능을 제공합니다. 이는 법적인 보존 기간을 맞추기 위해 필요한 데이터에 적용할 수 있습니다. 객체 잠금에는 Object Lock과 Glacier Vault Lock 두 가지 방식이 있습니다.
요청자 지불 버킷
S3에서는 데이터 다운로드나 업로드 시 요청자가 비용을 지불할 수 있습니다. 기본적으로 버킷 소유자가 비용을 지불하지만, 요청자 지불 설정을 활성화하면 데이터를 다운로드하거나 업로드하는 사용자가 비용을 지불하게 할 수 있습니다.
*생성형 AI 활용한 클라우드&보안 전문가 양성캠프 과정의 교육내용 정리 자료입니다.
'IT 관련 > 클라우드' 카테고리의 다른 글
[AWS] 주간 소식 - 24.11.14 (1) | 2024.11.18 |
---|---|
[새싹 성동 2기] RDS, Lambda, SNS, WAF에 대한 기본 개념 정리 (1) | 2024.11.12 |
[새싹 성동 2기] AWS 기본 자원 개념(EC2, EBS, EIP, Auto scaling, ELB) (0) | 2024.11.12 |
[AWS, 프로젝트] 워드프레스 설치를 위한 설계 및 설정(5) (0) | 2024.11.08 |
[AWS, 프로젝트] 워드프레스 설치를 위한 설계 및 설정(4) (2) | 2024.11.06 |