S3: 모든 데이터를 무제한 용량으로 모십니다

김지원·2021년 10월 24일
1
post-thumbnail

1. S3란?

S3는 AWS에서 제공하는 정적 파일을 저장하는 저장소

  • 인터넷 스토리지 서비스로 원하는 데이터를 저장하는 저장소
  • 저장한 데이터를 장소에 구애받지 않고 다운로드 받을 수 있게 합니다.
  • 권한을 부여해 권한을 가진 사용자만 사용할 수 있게 할 수 있습니다.

📋 구성요소

1. bucket(버킷)

객체가 저장되는 저장소

2. 객체와 키

  • 객체: 버킷에 저장된 파일 모두를 객체라고 합니다.
  • 객체 = 객체 데이터 + 메타데이터

💫 메타데이터: 객체 관련 정보를 저장하기 위한 이름-값 페어의 세트

ex)
https://buckeranme.s3.ap-northeast-2.amazonaws.com/boards/1.jpg
boards/1.jpg 가 키가 됩니다!

3. Regions

  • 말 그대로 저장소가 있는 장소
  • 계정에 활성화한 AWS 리전에서만 S3에 엑세스하고 해당 기능을 사용할 수 있게 됩니다.

🛒 버킷 생성

1. 버킷 만들기 버튼 클릭

2. 버킷 이름과 리전 설정

3. 퍼블릭 엑세스 차단 설정

📃 설정

1. 버킷 정책

  • 새로 생성한 버킷에 대해 어떤 행동을 허락해줄지를 정할 수 있습니다.
  • 편집을 누르면 정책생성기가 있습니다. 그곳에서 빠르게 만들 수 있습니다.

생성 후 버킷 정책에 그대로 넣어주면 됩니다.

  • 필자같은 경우에는 버킷에 들어가는 데이터들을 조회/생성/삭제할 수 있도록 했습니다.

2. CORS

흔히 볼 수 있는 CORS 에러

  • CORS는 웹 브라우저에서 보안상의 이유로 도입한 정책으로 현재 사용자가 접속한 웹 애플리케이션이 다른 출처의 리소스를 불러올 때, 브라우저가 그 리소스를 거부하는 브라우저의 보안 정책 이라고 할 수 있습니다.
  • Access-Control-Allow-Origin 헤더를 보내는 방식으로 해결할 수 있는데 S3도 마찬가지입니다.
  • 필자는 편의성을 위해서 *로 모든 도메인을 허락해주었지만 이 부분은 더 공부를 해봐야 될 것 같습니다.
  • AllowedMethods는 허락해줄 HTTP Method를 지정합니다.

마치며

S3는 모든 데이터를 무제한 용량으로 저장할 수 있고 같은 지역이라면 모든 데이터를 어디서든 받아올 수 있다는 장점이 있지만 설정을 잘못한다면 다른 사람이 악용할 수 있다는 주의점도 존재한다고 생각합니다.

그래서 CORS 정책이나 퍼블릭 엑세스에 대한 공부가 좀 더 필요하다고 느껴집니다!!

그리고 다음에 중점으로 올려보겠습니다~

profile
backend-developer

0개의 댓글