-
Notifications
You must be signed in to change notification settings - Fork 0
5. AWS S3 란?
- 안전하고 가변적인 Object 저장공간(이미지, 동영상,파일 ⇒ 운영체제 업로드 불가! )을 제공
- 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있다.
- 파일 크기는 0KB부터 5TB까지 지원
- 저장공간 무제한
- Bucket이라는 이름을 사용 (like 디렉토리)
- Bucket은 보편적인 namespace를 사용 ⇒ bucket이름은 고유해야한다.
-
Key = 파일명
ex) temp.txt -
Value = 파일에 대한 데이터
-
Version ID
S3 공유 특징 → 같은 데이터를 Version ID를 다르게 하여 올릴 수 있음
-
Metadata
데이터에 관한 구조화된 데이터, 다른 데이터를 설명해 주는 데이터
-
CORS (Cross Origin Resource Sharing)
한 Bucket에서 다른 Bucket으로 지역도 무시하고 접근 가능하도록 해주는 것
-
Read after Write Consistency (PUT)
: S3 Bucket에 파일을 올릴 때 PUT을 사용 ⇒ 즉시 사용 가능 (delay가 없음)
-
Eventual Consistency (UPDATE, DELETE)
: 수정하거나 삭제 시 PUT과 다르게 해당 내용이 즉시 반영되지 않음
-
가장 보편적으로 사용되는 스토리지 타입
-
높은 내구성
: 데이터의 손실없이 잘 복원되어지는지
-
가용성 (Durability, Availability)
: 얼마나 데이터 접근이 용이한지
-
자주 접근되지는 않으나 접근 시 빠른 접근이 요구되는 파일이 많을 시 유용
-
일반 S3에 비해 비용은 저렴하나 접근 시 추가 비용 발생
⇒ 많이 접근하는 용도로 사용되진 않음.
-
Multi-AZ를 통한 데이터 저장
⇒ 가용성이 상당히 높음
: "Multiple Availability Zones"의 약어로, 특히 클라우드 컴퓨팅 서비스에서 주로 사용되는 용어
보안, 재해복구(DR), 백업 등의 이유로 인프라 클라우드 서비스의 기본요소로 신규 리전에서 멀티AZ를 제공하며, 서로 다른 AZ에 배치된 리소스 간 높은 처리량과 짧은 지연 시간을 제공한다.
- 기본적으로 IA와 같지만 하나의 AZ에만 데이터 저장하는 클래스
- 단일 AZ를 통한 데이터 저장
- 단일 AZ에 의한 데이터 접근 제한 (조금 낮은 가용성)
- 데이터 접근시 S3 - IA보다 20% 비용 저렴
- 아카이브 백업 데이터를 주 목적으로 하는 스토리지 서비스
- 거의 접근하지 않을 데이터 저장 시 유용
- 매우 저렴한 비용
- 데이터 접근시 대략 4-5시간 소요
티어링이란? 데이터를 **접근 빈도에 따라 계층화** 한 것
-
데이터 접근 주기가 불규칙할때 매우 유용
-
2가지 티어 존재
Frequent Tier
Infrequent Tier ex) 데이터 접근을 한달 이상 없을 경우
-
데이터 접근주기에 따라 두가지 티어중 하나로 선택됨
-
Frequent Tier가 비용이 약간 더 비쌈
-
최고의 비용 절감 효율을 누릴 수 있음
[1] 파일 업로드/다운로드 시
- SSL / TLS
SSL (Secure Socket Layer) : HTTPS
TLS (Transport Layer Security)
[2] 가만히 있을 시
SSE (Server-Side Encryption) : 모든 Object는 그들만의 공유한 키를 가짐
-
SEE-S3
master를 가지고 있으며 특정 시간마다 키값을 변경시킨다.
-
SSE-KMS
언제, 누가, 어떻게 암호를 풀었는지와 관련된 내용을 저장한다.
-
SSE-C
고객 제공 암호화 키로 서버 측 암호화를 사용하면 자체 암호화 키를 관리할 수 있다.
주의해야 할 부분!!
HEADER에 x-amz-server-side-encryption-paramerer
이 값이 딸려 나온다.
⇒ 암호화가 걸려 나오게 된다.
AES-256암호화란? AES는 암호화 및 복호화에 동일한 키를 사용하는 대칭키 알고리즘으로 AES-256은 256 암호키를 사용한 암호화 방법을 의미
버킷 이름 : 지역과 관계없이 고유한 이름을 사용 해야 한다.
모든 퍼블릭 액세스 차단 체크해놔야한다! (외부접근 차단)
고급설정 → 활성화 시 한번 생성한 버킷의 객체는 삭제되거나 수정이 불가능
⇒ 원본 파일을 손상없이 보관할 때 사용 (추가 비용 존재할 수도)
방법1
: 직접업로드
방법2
: 고급설정 → acl (다른 aws 계정에 대한 액세스)를 허용할지 안할지
⇒ 다른 탭에서 열기위해선 허용시켜놔야 한다.
(권한 → 퍼블릭 액세스 → Everyone → 객체읽기), (퍼블릭 액세스 차단 → 편집 → 모든 퍼블릭 액세스 차단 해제 )
⇒ 파일 접근을 변경한거지 버킷 접근을 변경한 것은 아니다.
버킷 접근 변경하는 법
(권한 → 버킷 정책 → 왼쪽 하단 → 정책 생성기)
정책 생성기
-
step1 : S3 Bucket Policy
-
step2 : effect ⇒ allow
principal : 어떤 유저에게 우리가 만들 새로운 정책이 적용될 지에 대해 물어보는 것
[보안,자격 증명 및 규정 준수→ IAM → 왼쪽탭 사용자 → 사용자 이름 클릭 → 사용자 ARN 복사 후 principal 부분에 추가 ]
Actions ⇒ GetBucketPolicy
ARN : 버킷의 고유 arn작성
ADD Statement → generate Policy 하면 JSON 파일 형태로 버킷 정책이 생성됨
태그 → S3 Object들을 태그별로 분류시킬 수 있다 (filtering)