AWS의 RDS와 S3

citron03·2022년 2월 14일
0

RDS(Relational Database Service)

  • RDS는 AWS에서 제공하는 관계형 데이터베이스 서비스이다.
  • RDS를 사용하면, 데이터베이스의 유지보수와 관련된 일을 RDS가 자동으로 관리해주기에 편리하다.
  • RDS 사용시, 초기 설정과 데이터베이스에 저장된 데이터의 관리정도만 사용자가 하면 된다.
  • 조정 가능한 용량을 지원하여 예상치 못한 데이터가 쌓여도 추가 요금만 내면 데이터를 무리없이 저장할 수 있다.
  • RDS는 MySQL, Oracle, Amazon aurora, MS SQLServer, MariaDB, PostgreSQL과 같은 다양한 데이터베이스 엔진을 제공한다.
  • 따라서, 필요와 목적에 맞게 원하는 데이터베이스 엔진을 선택하여 사용할 수 있다.

EC2 인스턴스에 MySQL이나 Oracle과 같은 관계형 데이터베이스를 설치해서 사용하지 않고 RDS를 이용하는 이유는 무엇일까?

🍅 직접 EC2 인스턴스에 데이터베이스를 설치하게 되면, 사용자가 직접 데이터베이스 엔진 설치, 버전관리, 모니터링, 알람, HA(High Availability)구성, 데이터 백업등의 관리를 해야 한다.
🍅 또한, 가용성과 내구성이 확보되지 않기에 데이터가 유실되거나 정상적으로 작동하지 않을 확률이 존재하게 된다.
🍅 추가적인 데이터베이스의 확장이 어렵다.

S3 (Simple Storage Service)

  • S3는 AWS에서 제공하는 클라우드 스토리지 서비스이다.
  • 클라우드 스토리지를 이용하면 웹에 접속할 수 있는 네트워크 환경만 갖추어진다면, 어디서든 접근할 수 있기에 접근성이 좋다.
  • S3를 이용하면 높은 확장성을 얻을 수 있다. 간편하고 쉽게 확장이 가능하다.
  • S3는 비용만 지불한다면, 용량을 무한히 확장할 수 있다. 또한, 사용하는 만큼만 비용을 지불하면 되기에 합리적이다.
  • 내구성이 높아 데이터를 유실할 확률이 매우 적다.
  • 가용성이 높기에 S3를 사용시 서비스에 문제가 발생할 확률이 매우 적다.
    🧆 AWS는 전 세계 곳곳에 서비스를 제공하기 위한 서버 region이 있다.
    (각 리전에는 여러 데이터 센터(IDC)가 있다),
    🧆 이 덕분에 한 곳에 문제가 생기더라도 다른 region에서 서비스를 제공하여 높은 가용성과 내구성을 보장한다. (백업되어 있는 데이터로 서비스를 제공한다.)
  • 또한 S3는 다양한 스토리지 클래스를 제공한다. 목적에 따라서 스토리지 클래스를 선택하여 효율적으로 저장소를 이용할 수 있다.

🧈 대표적인 스토리지 클래스로 Standard 클래스와 Glacier 클래스가 있다.

  • Standard 클래스는 데이터 접근과 처리가 빠르기에 범용적인 목적으로 사용하기에 좋다. 하지만 데이터를 오래 보관하기에는 적합한 클래스가 아니다. (보관 비용이 높다)

  • Glacier 클래스는 데이터를 장기간 보관할 때 선택한다. 데이터 엑세스는 느리지만, 보관 비용이 저렴하다.

S3 사용시 이점

정적 웹 사이트 호스팅이 가능하다.

  • 정적인 파일은 서버의 개입없이 만들어진 파일을 의미한다.

  • 클라이언트가 서버에 요청을 보내어 서버가 그 자리에서 요청에 맞추어 그 자리에서 만든 파일을 동적인 파일이라고 한다.

  • 웹 호스팅은 서버의 한 공간을 임대해주는 것을 의미하는데, 대여한 공간으로 서비스를 배포할 수 있다.

  • S3에서는 버킷에 정적 파일을 업로드하고, 버킷을 정적 웹사이트 호스팅용도로 사용할 수 있다.

버킷

  • 버킷은 S3에서 파일이 담기는 공간을 의미하고, 파일을 저장하는 최상위 디렉토리를 나타낸다.

  • S3의 모든 파일은 버킷에 저장되고, 버킷의 이름은 리전에서 유일해야 한다.

  • 버킷 정책을 생성하여 해당 버킷에 대한 다른 유저들의 접근 권한을 설정할 수 있다.

  • 버킷에는 무한정 파일을 저장할 수 있다.

  • 버킷에 담기는 데이터는 key-value의 형태를 가지며 객체라고 불린다.

  • key를 통해 원하는 객체를 검색할 수 있다.

  • 메타데이터는 객체를 설명하는 데이터이다. 메타데이터는 객체의 생성일, 크기, 유형과 같은 정보를 가지고 있다.

  • 버킷의 모든 객체는 고유한 URL을 가진다. 이를 통해서도 원하는 데이터에 접근할 수 있다.

참고 자료 출처 : 코드 스테이츠

profile
🙌🙌🙌🙌

0개의 댓글