[TIL]aws

2019. 8. 23. 22:33TIL

S3 란? 

AWS S3 (Simple Stoage Service)는 파일을 저장하기 위한 스토리지이다.(인터넷용 스토리지 서비스)

=>개발자가 더 쉽게 웹 규모 컴퓨팅 작업을 수행할 수 있도록 설계

 

일반적인 파일시스템의 개념과는 약간 다르고, 파일 이름을 대표하는 key와 파일 자체로 구분되는 Object Storage이다.

저장할 수 있는 파일의 크기는 개당 1byte~5TB이고, 총 저장 용량에는 제한이 없다.

디렉토리와 비슷한 개념으로, bucket이라는 개념을 가지고 있다.

S3에 접근하기 위해서는 일반적은 file io api등은 사용할 수 없으며, REST/HTTP 기반의 프로토콜만 지원한다.

그래서, 성능이 다른 파일 시스템에 비해서 느리다.

 

기본적으로 3 copy를 지원하여, 데이타를 복제하고 => 이 복제는 Amazon availability zone (AZ) 단위로 복제가 되기 때문에 데이타 센터 장애에 대한 대응성을 가지고 있다.

단 region 간 복제는 지원하지 않는다. 복제에 관련된 옵션으로는 RRS (Reduced Redundancy Storage)라는 것이 있는데, 이 옵션을 적용하면, 2 copy (원본 + 백업)만을 저장하기 때문에, 가격이 훨씬 더 저렴하다.

3 copy를 저장할 경우, S3에 대한 데이타 신뢰도는 99.999999999% 를 보장하고, 서비스에 대한 가용성은 99.99%를 보장한다.

다른 주목할만한 기능 은 retain 기간을 지정할 수 있다. 즉 파일의 저장 기간을 지정할 수 있고, 그 기간이 지나면 자동으로 삭제가 된다.

또한 파일에 대한 versioning 기능을 가지고 있어서, 잘못되었을 경우, 기존의 파일 내용으로 roll back이 가능하다. S3 서비스는 AWS 내에서 대용량 데이타를 저장하기 가장 알맞은 저장소이다. 그래서 다른 AWS의 서비스 (EMR 나 CloudFront, Glacier 등)에 자연스럽게 연동될 수 있는 기능을 제공하며, 다른 서비스들과 상호보완적인 관계를 갖는다. 예를 들어 SQS와 같은 큐 서비스에는 큰 객체(파일)을 저장할 수 없기 때문에 이벤트 메세지는 SQS에 저장하고, 실제 큰 파일은 S3에 저장해서 레퍼런스를 하던가, Dynamo와 같은 NoSQL DB도 레코드당 데이타 한계로 인해서, 메타 데이타는 Dynamo에 저장하고, 파일과 같은 큰 바이너리 데이타는 S3에 저장하고 레퍼런스를 하게 할 수 있다.

매우 간단한 서비스이기는 하지만, 데이타 손실 가능성이 적고, 사용이 간략하며, 다른 서비스와 연계성이 높기 때문에, 필히 익혀둬야 하는 서비스이다.

 

EC2 란? 

Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장식 컴퓨팅을 제공합니다.

(쉽게 말해 한대의 컴퓨터를 임대해주는 것)

인터넷을 통해서만 접속할 수 있고, 주문 후 1분 안에 생성되고, 삭제 즉시 제거된다. 초기 구입비가 전혀 없고, 사용한 만큼 비용을 지불하면 된다. 컴퓨터를 사용하면 프로그램도 설치하고, 파일도 저장하고, 설정도 변경하게 되는데, 이 상태 그대로 저장 할 수 있다. 이것을 이미지라고 한다. 이미지를 이용해서 새로운 컴퓨터를 만들면 이미지에 저장된 상태와 똑같은 컴퓨터를 생성할 수 있다. 컴퓨터를 장만할 때마다 반복되는 설치 작업을 하지 않게 되는 것이다.

 

Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 통해 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능합니다. 또한 Amazon EC2는 요구 사항이나 갑작스러운 인기 증대 등 변동 사항에 따라 신속하게 규모를 확장하거나 축소할 수 있어 서버 트래픽 예측 필요성이 줄어듭니다.

 

RDS 란?

AWS RDS는 인프라 및 데이터베이스 업데이트를 관리해주는 것 뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스
Amazon RDS는 현재 MySQL, Oracle, SQL Server, PostgreSQL, MariaDB, Aurora(MySQL과 호환)을 비롯한 총 6가지 데이터베이스 엔진을 지원하고 있다.

데이터베이스의 크기는 기본(m4), 메모리 최적화(r3), 마이크로(t2), 총 3가지 카테고리로 나뉩니다.
최적화 된 I/O을 실현할 수 있도록 각 그룹마다 특성에 맞게 vCPUs, GiBs 메모리, 네트워크 성능 수준이 설정되어 있습니다.

각 RDS 인스턴스에서 “Multi-AZ” 옵션을 설정하면, 다른 가용영역(Availability Zone)에 복제된 데이터베이스를 필요할 때 바로 사용할 수 있습니다.
이는 주로 프로덕션 데이터베이스에 사용됩니다.
한쪽 가용영역에서 장애 및 에러가 발생할 경우, 문제에 영향을 받지 않게 독립된 다른 가용영역에 미리 복제된 데이터베이스를 자동으로 사용해서 복구(Failover)시키는 기능입니다.

이 뿐만 아니라, Amazon은 Aurora라는 자체 데이터베이스를 제공합니다.
이는 장애(fault) 발생에도 더 안전하고 가용영역을 통해 자체 복구가 가능하며 또한 추가적인 퍼포먼스 기능들을 제공합니다.

'TIL' 카테고리의 다른 글

[TIL]React router  (0) 2019.08.28
[TIL] 19.08.26 시험  (0) 2019.08.27
[TIL] 19.08.22 spreent - shortly  (0) 2019.08.22
[TIL] 19.08.21 spreent - shortly  (0) 2019.08.22
[TIL] 19.08.20 MySQL  (0) 2019.08.20