초보자도 이해할 수 있는 S3(Simple Storage Service) | DevelopersIO
1️⃣ AWS S3(Simple Storage Service)
S3 : Simple Storage Service
- 인터넷용 스토리지 서비스
- 파일 서버의 역할을 하는 서비스
- 트래픽에 따른 시스템적인 문제는 걱정할 필요가 없어진다.
2️⃣ AWS S3의 특징
- 제공하는 단순한 웹 서비스 인터페이스를 사용하여 웹에서 언제 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있습니다.
- S3의 버킷은 무한대의 객체를 저장할 수 있으므로 스토리지의 요구를 미리 추정하여 관리할 필요가 없어 확장/축소에 신경쓰지 않아도 된다.
- 저장할 수 있는 파일 수의 제한이 없다.
- 파일에 인증을 붙여 무단으로 엑세스 하지 못 하도록 할 수 있다.
- HTTP와 BitTorrent 프로토콜을 지원한다.
- <REST(Representational State Transfer), SOAP(Simple Object Access Protocol) ,→ 온라인 데이터 전송방식 → 웹 애플리케이션 간 데이터 통신을 허용하는 API를 구축하는 방법을 정의한다. >인터페이스를 제공한다.
- 데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원한다.
- 버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능하다.
3️⃣ AWS S3에서 사용되는 용어
- 객체 - object : AWS는 S3에 저장된 데이터 하나를 객체라고 하는데, 하나의 파일이라고 생각하면 된다.
- 버킷 - bucket : 객체가 파일이라면 버킷은 연관된 객체들을 그룹핑한 최상위 디렉토리라고 할 수 있다. 버킷 단위로 지역(region)을 지정할 수 있고, 버킷에 포함된 모든 객체에 대해서 일괄적으로 인증과 접속 제한을 걸 수 있다.
- 버전 관리 - S3에 저장된 객체들의 변화를 저장한다.
- RSS - Reduced Redundancy Storage : 일반 S3 객체에 비해 데이터 손실될 확률이 높은 형태의 저장 방식이다.
- 썸네일 이미지와 같은 것을 저장하는데 적합하다.
- Glacier : 매우 저렴한 가격으로 데이터를 저장할 수 있는 아마존의 스토리지 서비스
4️⃣ AWS S3 버킷 만들기
버킷 만들기 누르기
버킷 이름 - 자신이 원하는 버킷(최상위 폴더) 이름 / 지역 - 서비스를 사용할 곳
버킷 버전 관리
![](https://velog.velcdn.com/images/e_jim/post/9288e83e-64ac-498d-beb1-e8d5a7aa4a31/image.png) - 비활성화 → 이전 파일 못 본다. - 활성화 → 같은 파일을 올리며 계속 업데이트를 해도 이전의 내용을 복원할 수 있게 해준다.
퍼블릭 액세스 접근
![](https://velog.velcdn.com/images/e_jim/post/eaf74416-02d0-48de-8968-4925e44b2d14/image.png) - 새 ACL을 통해 부여된 버킷 및 객체에 대한 퍼블릭 액세스 차단 - 체크 → 공개 설정으로 해둔 파일을 업로드 할 때, 업로드가 거절된다. - 체크 x → 공개 파일을 업로드 할 때 업로드가 됩니다. - 임의의 ACL을 통해 부여된 버킷 및 객체에 대한 퍼블릭 액세스 차단 - 체크 → ‘새 ACL을 통해 부여된 버킷 및 객체에 대한 퍼블릭 액세스 차단’을 체크하더라도 비공개로 인식해서 공개가 되지 않는다. → bucket를 비공개로 사용하겠다면 체크 / 업로드하는 파일중 어떠한것들은 공개 하고 싶다 라고 하면 체크를 해제
버킷 생성
![](https://velog.velcdn.com/images/e_jim/post/71785f23-f5a1-4fef-9008-b34f8cc62fc1/image.png)
버킷 읽기, 수정
![](https://velog.velcdn.com/images/e_jim/post/47b6415d-51eb-4a52-b6d1-de762b83ef67/image.png) - 5번에서 생성한 버킷을 누르면 버킷의 여러 태그들이 뜨게 된다. - 객체의 경우 업로드한 파일 리스트들을 나타낸다.
버킷 삭제
![](https://velog.velcdn.com/images/e_jim/post/1804eb8f-0170-49f2-a06b-a49c36f0a909/image.png) - 삭제 탭을 누르고 bucket 이름을 입력해 준 후 삭제버튼을 누르면 삭제된다.
폴더 생성
- bucket을 클릭하고 객체 탭에서 폴더 만들기를 누른다.
- 폴더 이름을 바꾸고 싶을 경우, "새로운 폴더" 라는 폴더를 하나 만들고 중요한 폴더 안에 있는 내용을 새로운 폴더로 옮긴 다음, 중요한 폴더를 삭제하면 된다.
9. 파일(객체) 업로드
객체 탭에서 중요한 폴더를 드래그해서 옮겨준다.
![](https://velog.velcdn.com/images/e_jim/post/a81fa175-5eac-44c0-89ba-76e14ac0cb48/image.png) - ACL 액세스 제어 목록에는 현재 객체(파일)을 읽고 쓰는 권한을 누구에게 줄 것인지 설정할 수 있다. ![](https://velog.velcdn.com/images/e_jim/post/459c02b0-2926-44b5-9031-640e3132e003/image.png) - 스토리지 클래스는 가격이나 속도, 안전성에 따라서 비용이 달라지게 된다. → 약간 요금제 선택하는 느낌 ![](https://velog.velcdn.com/images/e_jim/post/6b4be4fa-cda3-4ccb-a9de-18eedc1d0dfb/image.png)
파일 공유와 권한
- 파일을 선택한 후 속성탭에 들어가 오른쪽 아래에 객체 URL을 복사한다.
- 웹에서 URL을 실행시켜보면 접근 거부라 뜬다.
파일의 권합 탭에 들어간다.
객체 소유자는 ‘나’를 의미하고 다른 사람에게도 읽기 권한을 주고 싶다면 ‘편집’을 누른다.
모든 사람(퍼블릭 액세스)에서 왼쪽 읽기 - 객체 읽기 / 오른쪽 읽기 - 객체 ACL(액세스 제어 목록) 읽기를 체크!