이번에는 AWS서비스 중 데이터 저장 장소인 스토리지 서비스에 대해 정리해 보려한다. AWS의 대표적인 스토리지 서비스에는 S3가 있다. S3서비스의 특징과 그 외의 스토리지 서비스에 대해 정리해 보겠다.
Amazon S3(Simple Storage Service)란
Amazon Simple Storage Service(S3) : AWS에서 제공하는 객체 스토리지 서비스
스토리지 : 데리터를 저장하는 장소/ 객체 : 텍스트 파일이나 음성 파일 같은 데이터
객체 스토리지 : 기존의 파일 스토리지 처럼 폴더 구조는 갖지 않고 객체 키로 데이터를 고유하게 식별해 데이터의 입출력과 관리를 수행. 키만으로 데이터를 관리하기 때문에 간편하게 대용량의 데이터를 저장하고 관리 할 수 있음.
S3는 확장성과 내구성, 저렴한 비용이라는 큰 장점을 가지고 있어 AWS의 다른 서비서와 연계해서 사용하는 경우가 많다.
Amazon S3기본
S3는 데이터를 등록하거날 삭제하는 API를 제공하므로 이를 호출해 S3의 객체를 조작할 수 있다. API는 조작을 받아들이는 창구와 같은 역할로 공통의 창구를 이용해 브라우저나 프로그램 등 다양한 곳에서 데이터를 조작할 수 있게 한다.
GET | S3에서 데이터(객체)를 다운로드 |
PUT | S3에 객체를업로드, 신규업로드, 갱신(업데이트) 하나의 PUT작업은 최대 5GB까지이므로 더 많은 데이터를 업로드 하는 경우 멀티 파트 업로드 라는 기능을 이용해 여러 파트로 나눠 최대 5TB의 데이터를 업로드 할 수 있다. |
LIST | S3브킷의 객체 목록을 표시. 데이터 추출도 가능 |
COPY | S3 내에서 객체를 복사. 다른 버킷과 리전 간에 복사 가능 |
DELETE | S3 내에 있는 임의의 객체를 삭제 |
Amazon S3 수명 주기 및 백업
스토리지 클래스 | 특징 | 저장 AZ | 가용성 |
---|---|---|---|
S3 Standard(표준) | 기본 스토리지 | 3개이상 | 99.99% |
S3 Intelligent-Tiering | 접근 빈도에 따라 4개의 접근 계층으로 자동으로 나눠 비용 절감. | 3개이상 | 99.90% |
S3 Standard-IA | 표준보다 저렴하지만 데이터 검색 용량에 대한 요금 부과 | 3개이상 | 99.90% |
S3 One Zone-IA | 1AZ에만 데이터를 저장. 데이터 검색에 요금 발생 | 1개 | 99.50% |
S3 Glacier Instant Retrieval | 보존은 One ZONE-IA보다 저렴하지만 꺼내는 비용이 많이든다. | 3개이상 | 99.90% |
S3 Glacier Fletible Retrieval | 보존은 S3 Glacier Instant Retrieval보다 저렴하지만 꺼내는 비용이 발생하고 시간이 걸린다.(수분 또는 몇시간) | 3개이상 | 99.99% |
S3 Glancier Deep Archive | S3 Glacier보다도 저렴하지만 꺼내는 데 많은 시간(반나절 이상)이 걸린다. | 3개이상 | 99.99% |
- 거의 사용하지 않지만, 만약을 위해 보존하고 시픈 데이터가 있다면 S3 Glacier Deep Archive와 같은 저렴한 스토리지 클래스를 선택하는 것이 좋음.
- 언제든지 사용할 수 있어야 하는 데이터를 저장하려면 표준(STANDARD)을 선택.
수명 주기 설정 : 자동 스토리지 클래스 변경
S3용 액세스 분석기 : 얼마나 접근이 있었는지 데이터의 접근 상황을 확인.
S3상의 데이터는 3곳 이상으로 복사되므로 AWS로 인해 데이터가 손실되는 경우는 거의 없다. 하지만 사용자의 실수로 데이터를 삭제하거나 의도하지 않은 데이터 변경 가능성이 있다.
S3의 버전 관리 기능을 활성화 하면 모든 세대의 객체에 대한 이력정보가 보존된다.
교차 리전 복제 : 해외 리전에 데이터를 복사하는 기능
재해복구 : 시스템을 구축할 때 가용성을 위해 하나의 리전 전체가 재해를 당한 경우를 가정해 설계하는 경우
Amazon S3의 외부 공개 및 접근 제어
S3 버킷에는 개인 정보와 같은 중요한 정보도 저장될 수 있으므로 허가받은 사람이 허가받은 객체에 올바르게 접근할 수 있도록 접근제어를 하는 것이 중요하다.
S3 버킷의 접근제어 방법
-> S3에는 퍼블릭 액세스 차단이라는 기능이 있어 의도치 낳게 S3버킷이나 객체가 공개 상태가 되는 것을 방지할 수 있다.
S3의 웹사이트 호스팅 기능을 활성화 하면 'http://버킷이름.s3-website-리전이름.amazon.com'이라는 URL이 만들어지고, 브라우저에서 해당 URL로 접속 할 수 있다. 버킷 정책이나 객체단위의 ACL을 이용해 특정 사용자만 콘텐츠에 접근하게 제어할 수 있다.
민감한 정보가 포함된 사이트를 운영해야하는 경우 콘텐츠 전송 네트워크(CDN) 서비스인 Amazon CloudFront를 함께 사용해 HTTPS통신을 할 수 있게 구성한다.
데이터 암호화를 실시하면 데이터와 키 데이터를 조함해 데이터 내용을 타인이 볼 수 없게 한다.
S3에서는 버킷의 기본 암호화 기능을 활성화 하면 객체를 저장할 때 AWS에서 자동으로 암호화를 수행한다.
Amazon EC2 스토리지(EBS) 및 백업
Amazon Elastic Block Store(EBS)는 EC2와 함께 사용하는 스토리지 서비스이다. EC2의 HDD/SSD와 같은 역할을 하며 EC2에서 실행되는 응용 프로그램의 데이터, 로그 ,설정 정보 등을 저장하는 데 주로 사용한다.
-> EC2 인스턴스를 생성할 때 기본적으로 하나의 EBS가 연결되며 추가 연결도 가능하다.
EBS에서는 필요한 속도에 따라 볼륨 유형을 선택할 수 있다.
볼륨 유형 | 개요 |
---|---|
범용 SSD (gp2, gp3) | 균형 잡힌 범용 타입으로 일반적인 용도로 사용 |
프로비저닝된 IOPS SSD (io1,io2,io2 Block Express) | 고성능 스토리지가 필요한 경우 사용. 필요한 IOPS를 사용자 지정 가능 |
처리량 최적화 HDD(st1) | 저비용 마그네틱 스토리지 |
Cold HDD(sc1) | st1보다 훨씬 저렴한 비용의 마그네틱 스토리지. 접근 빈도가 낮을 때 사용 |
EBS도 장애가 발생해 데이터가 파손되거나 실수로 데이터르 삭제하는 등의 사고를 방지하기 위해 스냅숏 이라는 백업 기능 지원. 스냅숏에는 스냅숏을 만들 당시 EBS에 보존하고 있떤 모든 정보가 백업된다.
기타 스토리지 서비스
EFS는 비교적 고속으로 데이터를 전송할 수 있는 NFS(Network File System)라는 프로토콜을 이용해 여러 EC2인스턴스가 함께 이용할 수 있는는 스토리지다.
Amazon FSx(FSx) : 파일 서버를구축하기 위한 서비스
Amazon FSx for Windows File Server : 주로 윈도우에서 사용되는 파일 공유 프로토콜인 SMB(Server Message Block)를 이용하는 서버
Amazon FSx for Lustre : 대규모 클러스터 컴퓨팅, 슈퍼컴퓨터 등에서 사용되는 Lustre라는 고성능 파일 시스템을 이용하는 Amazon FSx for Lustre.
-> SMB는 윈도우 뿐만 아니라 리눅스 및 맥OS도 지원하므로 다른 OS에서도 공유 파일서버를 이용하고 싶다면 Amazon FSx for Windows File Server를 선택지로 할 수 있다.
AWS Stroage Gateway(Stroage Gateway)는 온프레미스에 서버 기기 혹은 가상 서버에 설치ㅇ해서 온프레미스 기기와 AWS의 S3, FSx, EBS를 직접 연결하는 서비스.
AWS Transfer Family : SFTP(Secure File Transfer Protocol),FTP(File Transfer Protocol)와 같은 FTP 기반 프로토콜을 통신하기 위한 서버를 구축하는 서비스.
AWS Backup은 AWS의 EBS, EFS, FSx와 같은 스토리지, RDS나 DynamoDB와 같은 데이터베이스의 데이터를 백업하는 서비스.
AWS DataSync는 온프레미스와 AWS 혹은 AWS 스토리지 서비스 간 데이터 전송을 위한 서비스.
(통신 암호화 기능, 전송한 데이터의 무결성 체크 기능)
데이터 전송을 최대한 빨리하기 위한 서비스
Snow Family : 물리 스토리지를 AWS에서 빌려 거기에 데이터를 저장하고 AWS로 반환하면 해당 데이터를 직접 AWS 내의 스토리지에 옮겨주는 서비스.
(최대 100PB(페타바이트. 1PB=1024TB)의 데이터를 몇 주만에 전송할 수 있다.)