Amazon S3이란?
Amazon S3는 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지입니다. 업계 최고 수준의 내구성, 가용성, 성능, 보안 및 거의 무제한의 확장성을 아주 저렴한 요금으로 제공하는 단순한 스토리지 서비스입니다. - 아마존 공식문서
Simple Storage Service인 S3는 파일 서버의 역할을 하는 서비스입니다. 규모가 커짐에 따라 파일서버의 트래픽이 증가함에 서버를 증설하여야 하는데 S3를 이용하면 해결할 수 있습니다. 또한 파일에 관한 접근 권한을 지정할 수 있어 서비스를 호스팅 용도로 사용하는 것을 방지할 수 있습니다.
Amazon S3의 특징
- 많은 사용자가 접속하여도 이를 감당하기 위한 추가적인 작업을 하지 않아도 됩니다.
- 저장할 수 있는 파일 수의 제한이 없습니다.
- 최조 1byte에서 최대 5TB의 데이터를 저장하고 서비스 할 수 있습니다.
- 파일에 진증을 붙여서 무단으로 엑세스 하지 못하도록 할 수 있습니다.
- HTTP와 BitTorrent 프로토콜을 지원한다.
- REST, OSAP 인터페이스를 제공합니다.
- 데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원합니다.
- 버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능합니다.
- 정보의 중요도에 따라서 보호 수준을 차등 할 수 있고, 이에 따라서 비용을 절감 할 수 있습니다 (RSS)
Amazon S3에서 사용되는 용어
- 객체(object) : aws s3에 저장된 데이터 각각을 객체라고 명합니다.
- 버킷(bucket) : 객체가 파일단위라면 버킷은 연관된 객체들을 그룹핑한 최상위 디렉토리입니다. 버킷 단위로 지역을 지정할 수 있으며 버킷에 포함된 모든 객체에 대해서 일괄적으로 인증과 접속 제한을 걸 수 있습니다.
- 버전관리 - aws s3에 저장된 객체들의 변화를 저장합니다. 예를 들면 A라는 객체를 사용자가 삭제하거나 변경하여도 각각의 변화를 모두 기록하기 때문에 실수를 만회할 수 있습니다.
- RSS(Reduced Redundancy Storage) : 일반 aws s3의 객체에 비해서 데이터가 손실될 확률이 높은 형태의 저장 방식입니다. 대신에 가격이 저렴하기 때문에 복원이 가능한 데이터 예를 들면 섬네일 이미지와 같은 것을 저장하는데 적합합니다. 그럼에도 불구하고 물리적인 하드 디스크 대비 400배 가량 안전하다는 것이 아마존의 주장입니다.
- Glacier : 영어로는 빙하라는 뜻으로 매우 저렴한 가격으로 데이터를 저장할 수 있는 아마존의 스토리지 서비스입니다.
Amazon S3사용 방법(정적 웹 사이트 호스팅)
S3의 메인 페이지입니다. 빨간색 박스를 눌러서 버킷을 생성할 수 있습니다.
버킷의 이름과 지역(region)를 지정할 수 있습니다.
Access List 설정 - 모든 퍼블릭 엑세스 차단을 비활성화 하는 것을 선택합니다.
테스트 용으로 생성할때는 aws s3 URL에 쉽게 접속할 수 있도록 모든 퍼블릭 엑세스 차단을 비활성화 하여 사용할 수 있습니다. 나머지는 기본값으로 합니다.
완성 후 버킷페이지의 모습입니다. 빨간박스를 클릭합니다.
이 페이지에서 업로드 하고 싶은 파일을 드래그하여 업로드 할 수 있습니다.
그래그하면 위와같이 자동으로 업로드페이지로 넘어옵니다. 업로드를 눌러서 업로드 진행을 할 수 있습니다.
성공적으로 업로드 된 모습을 볼 수 있습니다.
그 후 다시 버킷에 들어가 속성을 들어가서 맨 아래에 있는 정적 웹 사이트 호스팅에 편집을 눌러줍니다.
형식에 맞게 잘 입력해준 후 변경 사항 저장을 눌러줍니다.
완료되면 위 사진과 같이 도메인이 생긴것을 확인할 수 있습니다.
만약 위처럼 403이 뜬다면 퍼블릭 엑세스 차단문제 때문입니다. 아래를 따라해 주시면 됩니다.
이제 다시 버킷페이지에 들어가서 권한으로 들어가줍니다. 그러곤 "퍼블릭 액세스 차단(버킷 설정)"의 편집을 눌러주세요.
모든 퍼블릭 액세스 차단을 해제해 주고 변경 사항 저장을 눌러줍니다.
그 후 바로 아래 있는 버킷 정책의 편집을 눌러줍니다.
버킷 arn을 눌러 arn를 미리 복사해둡니다. 그리고 정책 생서기를 눌러줍니다. 하나하나의 파일인 객체를 가져오기 때문에 getObject라는 정책을 설정해줘야합니다.
위 사진 설명에 맞게 변경해주세요. ARN 복사한거 그대로 쓰면 아래 사진과 같이 나중에 적용할 때 에러가 납니다. resource의 경로를 지정해주지 않아서 그렇습니다. arn:aws:s3:::demo-web1-bucket이게 기본이라면 버킷 전체에 접근을 허용하고 싶다면 arn:aws:s3:::demo-web1-bucket/* 이라고 적어줘야하고, 특정 폴더를 지정하려면 arn:aws:s3:::demo-web1-bucket/DirecotryName/* 이런식으로 적어줘야합니다.
잘 생성된 것을 확인할 수 있습니다. 이제 Generate Policy를 눌러줍니다.
저 JSON파일의 내용을 그대로 복사하여 아까 버킷 정책 편집부분에 붙여 넣어줍니다.
그 후 다시 만든 웹 호스트를 새로고침하면 잘 뜨는 것을 확인할 수 있습니다.
출처
- https://dev.classmethod.jp/articles/for-beginner-s3-explanation/
- https://aws.amazon.com/ko/s3/faqs/?nc=sn&loc=7
'기능반공부 > 클라우드 컴퓨팅' 카테고리의 다른 글
[CC] AWS Organiztions & AWS IAM (0) | 2023.02.22 |
---|---|
[CC] AWS EFS(Elastic File System) (0) | 2023.01.12 |
[CC] AWS EC2(Elastic Compute Cloud) (0) | 2023.01.11 |
[CC] VPC / Subnet / Internet Gateway / Route Table (4) | 2023.01.11 |
[CC] AWS CloudFront (CDN) (0) | 2023.01.10 |