AWS S3 란?
Simple Storeage Service의 약자로 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는
온라인 오브젝트(객체) 스토리지 서비스이다.
(파일 서버의 역할을 하는 서비스라고 보면 쉽다.)
(앞에 온라인이 붙는 이유는 데이터조작에 HTTP/HTTPS를 통한 API가 사용되기 때문이다.)
일반적인 파일서버는 트래픽이 증가함에 따라서 장비를 증설하는 작업을 해야 하는데
S3는 이와 같은 것을 대행한다.
트래픽에 따른 시스템적인 문제는 걱정할 필요가 없어진다.
또 파일에 대한 접근 권한을 지정할 수 있어서 서비스를 호스팅 용도로 사용하는 것을 방지할 수 있다.
AWS S3 객체 스토리지의 특징
객체 스토리지란 객체로 된 파일을 다루는 저장소 라는 말이다.
(반대되는 말로 EBS(Block Sotrage Service)가 있다.)
보통 우리는 OS나 프로그램들을 본체에 하드라는 스토리지에 저장하고 구동시킨다.
하지만 S3 객체 스토리지에서는 불가능하다.
S3에 파일을 설치하는 행위는 할 수 없고, 그냥 이미지, 동영상 파일 등만을 저장할 수 있다.
다음 S3의 특징으로는
- 많은 사용자가 접속을 해도 이를 감당하기 위해서 시스템적인 작업을 하지 않아도 된다.
- 저장할 수 있는 파일의 수가 제한이 없다.
- 최소 1바이트에서 최대 5TB의 데이터를 저장할 수 있고 서비스 할 수 있다.
- 파일에 인증을 붙여서 무단으로 액세스 하지 못하도록 할 수 있다.
- HTTP와 BitTorrent 프로토콜을 지원한다.
- REST, SOAP 인터페이스를 제공한다.
- 데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원한다.
- 버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능하다.
- 정보의 중요도에 따라서 보호 수준을 차등 할 수 있고, 이에 따라서 비용을 절감 할 수 있다. (RSS)
AWS S3에서 사용되는 용어
- 객체 : object, AWS는 S3에 저장된 데이터 하나 하나를 객체라고 명명하는데,
하나 하나의 파일이라고 생각 하면 된다. - 버킷 : bucket, 객체가 파일이라면 버킷은 연관된 객체들을 그룹핑한 최상위 디렉토리라고 할 수 있다. 버킷 단위로 지역(region)을 지정 할 수 있고, 또 버킷에 포함된 모든 객체에 대해서
일괄적으로 인증과 접속 제한을 걸 수 있다. - 버전관리 : S3에 저장된 객체들의 변화를 저장. 예를 들어 A라는 객체를 사용자가 삭제하거나
변경해도 각각의 변화를 모두 기록하기 때문에 실수를 만회할 수 있다. - RSS : Reduced Redundancy Storage의 약자로 일반 S3 객체에 비해서 데이터가 손실될 확률이
높은 형태의 저장 방식. 대신에 가격이 저렴하기 때문에 복원이 가능한 데이터, 이를테면
섬네일 이미지와 같은 것을 저장하는데 적합하다.
그럼에도 물리적인 하드디스크 대비 400배 가량 안전하다는것이 아마존의 주장 - Glacier : 영어로는 빙하라는 뜻으로 매우 저렴한 가격으로 데이터를 저장할 수 있는 아마존의
스토리지 서비스
S3 사용 예
- 클라우드 저장소 (개인 파일 보관, 구글 드라이브처럼 사용 가능)
- 서비스의 대용량 파일 저장소 - 이미지, 동영상, 빅데이터 (ex:넷플릭스)
- 서비스 로그 저장 및 분석
- AWS 아데나를 이용한 빅데이터 업로드 및 분석
- 서비스 사용자의 데이터 업로드 서버 (이미지 서버, 동영상 서버)
- 중요한 파일은 EC2의 SSD (EBS)에 저장하지 말고 S3에 저장
- Glacier와 연동으로 비용 절감 및 규정 준수 가능 (자주 쓰지 않는 데이터를 S3에서 자동 변환)
AWS S3 버킷 생성
버킷 이름은 고유값이다.
ACL 비활성화를 선택하여 내가 접속한 계정에서만 소유하도록 한다.
- 새 ACL(액세스 제어 목록)을 통해 부여된 버킷 및 객체에 대한 퍼블릭 액세스 차단
: 지정된 ACL이 퍼블릭이거나, 요청에 따라 퍼블릭 ACL이 포함되어 있으면
PUT 요청을 거절한다. - 임의의 ACL을 통해 부여된 버킷 및 객체에 대한 퍼블릭 액세스 차단
: 버킷의 모든 퍼블릭 ACL과 그 안에 포함된 Object를 무시하고,
퍼블릭 ACL를 포함하는 PUT 요청은 허용한다. - 새 퍼블릭 버킷 또는 액세스 지점 정책을 통해 부여된 버킷 및 객체에 대한 퍼블릭
액세스 차단
: 지정된 버킷 정책이 퍼블릭이면 PUT 요청을 거절한다. 이 설정을 체크하면 버킷 및
객체에 대한 퍼블릭 액세스를 차단하고 사용자가 버킷 정책을 관리할 수 있으며,
이 설정 활성화는 기존 버킷 정책에 영향을 주지 않는다. - 임의의 퍼블릭 버킷 또는 액세스 지점 정책을 통해 부여된 버킷 및 객체에 대한
퍼블릭 액세스 차단
: 퍼블릭 정책이 있는 버킷에 대한 액세스가 권한이 있는 사용자와 AWS 서비스로만
제한되며, 이 설정 활성화는 기존 버킷 정책에 영향을 주지 않는다.
권한을 바꾸고 싶을 때는 권한 탭을 선택하면 되고, 속성을 바꾸고 싶을 때는 속성 탭을 선택하면 된다.
이어서, 폴더를 생성하도록 하겠다.
bucket을 선택하고 객체 탭에서 폴더 만들기를 선택한다.
다음으로는 AWS S3의 공유와 권한 설정에 대해 진행해보겠다.
'DevOps > Cloud_클라우드' 카테고리의 다른 글
[AWS] AWS S3 심화 (정적 웹사이트 호스팅) (0) | 2023.07.25 |
---|---|
[AWS] AWS S3 공유 및 권한 (0) | 2023.07.25 |
[AWS] AMI 생성 및 인스턴스 생성 (+ AWS Marketplace, 리전 복사) (0) | 2023.05.23 |
[AWS] EC2 인스턴스 접속을 위한 키 쌍 (0) | 2023.05.22 |
[AWS] 고정 IP를 제공하는 Elastic IP (0) | 2023.05.15 |