AWS-S3

강채희·2021년 5월 10일
1
post-thumbnail

[5-1] S3란? - 1

S3? Simple Storage Service - AWS에서 맨 처음으로 런칭

  • 안전하고 가변적인 Object 저장공간을 제공 (ex: Google Cloud)
    ->저장공간 크기를 따로 지정하지 않아도 됨
    ->운영체제는 업로드 할 수 없음
  • 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있음
  • 파일 크기는 0KB부터 5TB까지 지원
  • 저장공간 무제한
  • Bucket이라는 이름을 사용함 (디렉토리와 유사함)
  • Bucket은 보편적인 namespace를 사용함
    ->region과 상관없이 bucket이름은 고유해야함

S3 Object 구성요소

  • Key : 파일명
  • Value : 파일에 대한 데이터
  • Version ID : S3의 고유특징(다른 버전으로 돌릴수 있게 함)
  • Metadata : 데이터의 데이터(파일의 업로드시기, 오너 등 다양한 정보)
  • CORS (Cross Origin Resource Sharing) : 한 bucket의 파일을 다른 bucket에서 접근 가능함

S3 Data Consistency Model

1. Read after Write Consistency (PUT)
: PUT,POST등을 통해 파일을 bucket에 올라감
2. Eventual Consistency (UPDATE, DELETE)
: 파일 내용을 변경(UPDATE) 혹은 삭제(DELETE)할시 결과가 바로 반영되지 않음

[5-2] S3란? - 2

S3 스토리지

1. 일반 S3
: 가장 보편적으로 사용되는 스토리지 타입 -> 비용이 높지 않음
: 높은 내구성, 가용성 (Durability, Availability) -> 내구성(데이터의 손실), 가용성(데이터의 접근)
2. S3 - IA (Infrequent Access)
: 자주 접근되지는 않으나 접근시 빠른 접근이 요구되는 파일이 많을시 유용
: 일반 S3에 비해 비용은 저렴하나 접근시 추가 비용 발생 -> 자주 사용하는 S3일 경우 부적합
: 멀티 AZ를 통한 데이터 저장 -> 가용성이 높음
3. S3 - One Zone IA
: 단일 AZ를 통한 데이터 저장
: 단일 AZ에 의한 데이터 접근 제한 (조금 낮은 가용성)
: 데이터 접근시 S3 - IA보다 20% 비용 저렴
4. Glacier
: 거의 접근하지 않을 데이터 저장 시 유용
: 매우 저렴한 비용
: 데이터 접근시 대략 4-5시간 소요
5. Intelligent Tiering
: 데이터 접근 주기가 불규칙할때 매우 유용
: 2가지 티어 존재 - Frequent Tier/Infrequent Tier
: 데이터 접근주기에 따라 두가지 티어중 하나로 선택됨
: Frequent Tier가 비용이 약간 더 비쌈
: 최고의 비용 절감 효율을 누릴 수 있음 -> 효율 측면에서 최고

S3 요금

  • GB당
  • PUT, GET, COPY 요청 횟수당
  • 데이터 다운로드시 / 다른 리소스로 전송시
  • Metadata (object tag)

[5-3] S3 버켓 생성시 알아야 할 것들

S3사용 용례

  • 파일 저장소 (로그, 다양한 파일들(이미지, 비디오, 압축파일 등)
  • 웹사이트 호스팅 -> HTML,CSS등 업로드해서 DNS로 사용가능
  • CORS(Cross Origin Resource Sharing) : region

최초 S3 버켓 생성시 -> 비공개(PRIVATE)
1. 버켓 정책 변경 (Bucket Policy) : 버켓 안의 모든 파일에 대한 정책 변경 / JSON형태임
2. 접근 제어 리스트 변경 (Access Control List) : 파일 하나하나에 접근 제한 가능

[5-4] S3 암호화

1. 파일 업로드/다운로드시 : 직접 개입할 필요는 없으며 AWS 내부에서 관리해줌

  • SSL(Secure Socket Layer) / TLS(Transport Layer Security)

2. 가만히 있을시
1) SEE(Server-Side Encryption)-S3 : master key(AES-256)가 있으며 특정 시간이 지나면 변동됨
2) SSE-KMS : 언제, 누가, 어떻게 암호를 풀었는지 기록됨
3) SSE-C : 암호키를 직접 다룰수 있다(우리가 키값을 직접 변경시켜줘야함)

암호화 과정

x-amz-server-side-encryption-parameter: AES-256

Q. 암호화가 걸리지 않은 파일은 버켓에 올리지 못하게 하는 기능이 있나요?
A. 네. 버켓 정책 설정을 이용하면 됩니다.

[5-5] S3 실습 - 1

AWS S3 서비스 접속 -> S3는 지역설정이 필요 없음

버킷 만들기 -> 버킷 이름은 고유해야함!

버킷 내부

폴더 만들기

파일 업로드

파일 정보 보기 -> url클릭시 접근이 불가함 : public 접근을 허용하지 않아서!

접근 허용하려면? 버켓의 정책 변경해주기


파일에 대한 접근도 모든사람으로 변경하면 url에서 파일(이미지)이 열리는것을 확인할 수 있음

[5-6] S3 실습 - 2

정책 생성하기 : 우리가 직접 JSON코드 작성해도 되지만 정책 생성기를 통해 간단하게 생성 가능

정책 생성기 : Principal엔 버켓을 사용할 user주소를, ARN엔 해당 버켓 주소 입력

복사해서 JSON코드에 붙여넣기

S3 암호화 실습
새 버켓을 생성해서 암호화 설정 진행

0개의 댓글