- RDS는 AWS에서 제공하는 관계형 데이터베이스 서비스이다.
- RDS를 사용하면, 데이터베이스의 유지보수와 관련된 일을 RDS가 자동으로 관리해주기에 편리하다.
- RDS 사용시, 초기 설정과 데이터베이스에 저장된 데이터의 관리정도만 사용자가 하면 된다.
- 조정 가능한 용량을 지원하여 예상치 못한 데이터가 쌓여도 추가 요금만 내면 데이터를 무리없이 저장할 수 있다.
- RDS는 MySQL, Oracle, Amazon aurora, MS SQLServer, MariaDB, PostgreSQL과 같은 다양한 데이터베이스 엔진을 제공한다.
- 따라서, 필요와 목적에 맞게 원하는 데이터베이스 엔진을 선택하여 사용할 수 있다.
🍅 직접 EC2 인스턴스에 데이터베이스를 설치하게 되면, 사용자가 직접 데이터베이스 엔진 설치, 버전관리, 모니터링, 알람, HA(High Availability)구성, 데이터 백업등의 관리를 해야 한다.
🍅 또한, 가용성과 내구성이 확보되지 않기에 데이터가 유실되거나 정상적으로 작동하지 않을 확률이 존재하게 된다.
🍅 추가적인 데이터베이스의 확장이 어렵다.
- S3는 AWS에서 제공하는 클라우드 스토리지 서비스이다.
- 클라우드 스토리지를 이용하면 웹에 접속할 수 있는 네트워크 환경만 갖추어진다면, 어디서든 접근할 수 있기에 접근성이 좋다.
- S3를 이용하면 높은 확장성을 얻을 수 있다. 간편하고 쉽게 확장이 가능하다.
- S3는 비용만 지불한다면, 용량을 무한히 확장할 수 있다. 또한, 사용하는 만큼만 비용을 지불하면 되기에 합리적이다.
- 내구성이 높아 데이터를 유실할 확률이 매우 적다.
- 가용성이 높기에 S3를 사용시 서비스에 문제가 발생할 확률이 매우 적다.
🧆 AWS는 전 세계 곳곳에 서비스를 제공하기 위한 서버 region이 있다.
(각 리전에는 여러 데이터 센터(IDC)가 있다),
🧆 이 덕분에 한 곳에 문제가 생기더라도 다른 region에서 서비스를 제공하여 높은 가용성과 내구성을 보장한다. (백업되어 있는 데이터로 서비스를 제공한다.)
🧈 대표적인 스토리지 클래스로 Standard 클래스와 Glacier 클래스가 있다.
Standard 클래스는 데이터 접근과 처리가 빠르기에 범용적인 목적으로 사용하기에 좋다. 하지만 데이터를 오래 보관하기에는 적합한 클래스가 아니다. (보관 비용이 높다)
Glacier 클래스는 데이터를 장기간 보관할 때 선택한다. 데이터 엑세스는 느리지만, 보관 비용이 저렴하다.
정적인 파일은 서버의 개입없이 만들어진 파일을 의미한다.
클라이언트가 서버에 요청을 보내어 서버가 그 자리에서 요청에 맞추어 그 자리에서 만든 파일을 동적인 파일이라고 한다.
웹 호스팅은 서버의 한 공간을 임대해주는 것을 의미하는데, 대여한 공간으로 서비스를 배포할 수 있다.
S3에서는 버킷에 정적 파일을 업로드하고, 버킷을 정적 웹사이트 호스팅용도로 사용할 수 있다.
버킷은 S3에서 파일이 담기는 공간을 의미하고, 파일을 저장하는 최상위 디렉토리를 나타낸다.
S3의 모든 파일은 버킷에 저장되고, 버킷의 이름은 리전에서 유일해야 한다.
버킷 정책을 생성하여 해당 버킷에 대한 다른 유저들의 접근 권한을 설정할 수 있다.
버킷에는 무한정 파일을 저장할 수 있다.
버킷에 담기는 데이터는 key-value의 형태를 가지며 객체라고 불린다.
key를 통해 원하는 객체를 검색할 수 있다.
메타데이터는 객체를 설명하는 데이터이다. 메타데이터는 객체의 생성일, 크기, 유형과 같은 정보를 가지고 있다.
버킷의 모든 객체는 고유한 URL을 가진다. 이를 통해서도 원하는 데이터에 접근할 수 있다.
참고 자료 출처 : 코드 스테이츠