Server Programming/DevOps
AWS - S3
Dev.BeryL
2022. 2. 7. 10:52
728x90
S3 (Simple Storage Service)
AWS에서 처음으로 런칭한 서비스
특징
- 안전하고 가변적인 Object 저장공간을 제공 (ex: Google Cloud)
- AWS 에서 모든 파일에 일종의 안전장치를 걸어놔서 외부에서 접근 불가하게 만들어줌
- 가변적이란 것은 따로 저장공간의 크기를 만들지 않아도 알아서 커졌다 작아졌다함
- 이미지, 동영상, 파일 같은 것들만 올림 / 운영체제 X
- 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있음
- 파일 크기는 0KB ~ 5TB 까지 지원
- 저장공간 무제한
- 실제 HDD와는 달리 방대한 양의 데이터를 보관할 수도 있음
- Bucket이라는 이름을 사용함 (디렉토리와 유사함)
- 폴더를 만들고 폴더 이름을 부여해주는 것과 같이 이름 변경 가능
- Bucket은 보편적인 namespace를 사용함
- 버켓 이름은 고유해야함 IAM과 마찬가지로 Universal 하다 → region상관이 없음
S3 Object 구성요소
- Key (파일명)
- Value (파일에 대한 데이터)
- Version ID (S3 고유 특징 → 같은 파일인데 다른 버전으로 올릴 수 있다.)
- Metadata (data의 data / 어떤팀이 해당 파일에 오너인지 알 수 있다.)
- CORS (Cross Origin Resource Sharing) → 한 버켓의 파일을 다른 버켓에서 접근이 가능하게 해준다. (지역 무시)
S3 Data Consistency Model
- Read after Write Consistency (PUT)
- 파일이 S3 버켓에 올라간다면 우리는 그 파일을 즉시 사용할 수 있다.
- 딜레이가 없다
- Eventual Consistency (UPDATE, DELETE)
- 버켓에 올라간 파일 내용을 변경하고나, 삭제시 결과가 바로 나타나지 않음
다양한 S3 storage type
- 일반 S3
- 가장 보편적으로 사용되는 스토리지 타입
- 높은 내구성, 가용성 (Durability, Availability) 내구성 : 얼마나 데이터 손실 없이 잘 복원되는지 가용성 :얼마나 데이터 접근이 용이한지
- S3 - IA (Infrequent Access)
- 자주 접근되지는 않으나 접근시 빠른 접근이 요구되는 파일이 많을 시 유용
- 일반 S3에 비해 비용은 저렴하나 접근시 추가 비용 발생 → 접근이 잦은 데이터를 보관하기엔 적합하지 않음
- Multi-AZ를 통한 데이터 저장 → 가용성이 상당히 높음
- S3 - One Zone IA (하나의 AZ만 의존)
- 단일 AZ를 통한 데이터 저장
- 단일 AZ에 의한 데이터 접근 제한 (조금 낮은 가용성)
- 하나의 AZ 에서 문제가 발생할 경우 해당 AZ는 사용 불가능 따라서, One Zone Storage는 접근 불가능 → 이슈 해결시에 접근이 가능
- 데이터 접근시 S3 - IA보다 20% 비용 저렴
- Glacier
- 거의 접근하지 않을 데이터 저장 시 유용
- 매우 저렴한 비용
- 데이터 접근시 대략 4-5시간 소요
- Intelligent Tiering
- 2018년에 새로 런칭하였음
- 데이터 접근 주기가 불규칙할 때 매우 유용
- 2가지 티어 존재
- Frequent Tier
- Infrequent Tier
- 데이터 접근주기에 따라 두가지 티어 중 하나로 선택됨
- Frequent Tier가 비용이 약간 더 비쌈
- 최고의 비용 절감 효율을 누릴 수 있음
S3 요금
- GB당 금액 지불 0.023$ 정도
- PUT, GET, COPY 요청 횟수당
- 데이터 다운로드시 / 다른 리소스로 전송시
- Metadata (object tag) → 용도나 사용처
S3 사용 용례
- 파일 저장소 (로그, 다양한 파일들(이미지, 비디오, 압축파일 등))
- 웹 사이트 호스팅 (S3 버켓을 실제 도메인용으로 사용할 수 있음)
- Route53 를 사용하여 도메인을 S3 버켓으로 사용할 수 있음
- CORS
최초 S3 버켓 생성시 → 비공개 (Private)
외부 접근시 Access Denied
- 버켓 정책 변경 (Bucket Policy) → Public으로 변경시 모든 파일들 접근 가능
- 접근 제어 리스트 변경 (Access Control List) → 파일 하나 하나에 다른 권한을 부여할 수 있다.
반응형