analogcoding

RDS & S3 & EC2 본문

Be well coding/Learn more

RDS & S3 & EC2

be well 2019. 6. 28. 15:05

RDS

 

Amazon relational database service 관계형 데이터 베이스 서비스

클라우드에서 관계형 데이터 베이스를 간편하게 설정, 운영, 확장하는 서비스.

 

Amarzon Rds는 여러 데이터베이스 인스턴스 유형(메모리, 성능 또는 I/O 최적화) 제공

 

Amazoon Aurora, PostgreSQL, MySQL, Oracle Detabase 및 SQL Server를 비롯한

6개의 익숙한 데이터베이스 엔진 중에서 선택하여 사용할 수 있음

 

데이터베이스의 크기는 기본(m4), 메모리 최적화(r3), 마이크로(t2), 총 3가지 카테고리로 나뉨

 

데이터베이스 대신에 RDS를 사용하게 되면, OS 및 데이터베이스의 설치 및 관리 그리고 업데이트를 따로 할 필요가 없어짐 게다가, AWS 콘솔이나 AWS API를 통해 손쉽게 백업이나 복구(recovery)가 가능합니다.

 

기업은 RDS를 사용함으로써 더 이상 스토리지의 LUN을 구성하고 더 나은 I/O를 위해 스트라이핑(Striping)을 최적화하는 데 시간과 노력을 쓸 필요가 없음

 

DB 인스턴스

  • DB 인스턴스는 클라우드에 있는 격리된 데이터베이스 환경
  • DB 인스턴스를 생성하고 수정
  • DB 인스턴스 스토리지는 마그네틱, 범용(SSD) 및 프로비저닝된 IOPS(PIOPS) 등 세 가지 유형이 제공
  • DB 인스턴스는 각각 스토리지 유형과 지원하는 데이터베이스 엔진에 따라 최소/최대 스토리지 요구 사항이 있음
  • 최적화 된 I/O을 실현할 수 있도록 각 그룹마다 특성에 맞게 vCPUs, GiBs 메모리, 네트워크 성능 수준이 설정

 

이점

관리용이성

  • Amazone RDS Management Console, Amazon RDS 명령줄 인터페이스 또는 간단한

 API 호출을 통해 쉽게 처리하도록 설계되어 있음

  • 자동으로 소프트웨어 패치를 통해 관계형 데이터베이스 소프트웨어가 가장 최신 상태로 유지할수 있도록 하고 선택적으로 제어도 가능함
  • 모니터링 및 지표를 제공해서 작업지표를 지속적으로 살펴볼 수 있음(컴퓨팅/메모리/스토리지 용량 사용률, I/O 작업, 인스턴스 연결 등 주요 작업 지표)

 

뛰어난 확장성

  • 가동을 중단하지 않고도 데이터베이스의 컴퓨팅 및 스토리지 리소스를 확장할 수 있음
  • vCPU 32개와 RAM 244GiB의 범위 내에서 확장하거나 축소

 

가용성및 내구성

  • 자동백업기능 데이터베이스의 인스턴스를 특정시점으로 복구 할수 있음 데이터베이스와 트랜잭션 로그를 백업하고 사용자가 지정한 보존기간동안 이를 저장

 

데이터베이스 스냅샷

  • amazons3에 저장된 인스턴스에 대해 사용자가 시작하는 백업으로 명시적으로 삭제할 때 까지 보관

 

보안

  • 사용자가 Aws key management service를 통해 관리하는 키를 사용해 데이터베이스를 암호화함

 

 


S3

 

일반적인 파일시스템의 개념과는 약간 다르고, 파일 이름을 대표하는 key와 파일 자체로 구분되는 Object Storage이다. == 자바스크립트 객체라고 생각하면 편할 것 같다.

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

imple Storage Service의 약자로 파일 서버의 역할을 하는 서비스다. 일반적인 파일서버는 트래픽이 증가함에 따라서 장비를 증설하는 작업을 해야 하는데 S3는 이와 같은 것을 대행한다. 트래픽에 따른 시스템적인 문제는 걱정할 필요가 없어진다. 또 파일에 대한 접근 권한을 지정 할 수 있어서 서비스를 호스팅 용도로 사용하는 것을 방지 할 수 있다. 아래는 S3의 주요한 기능적인 특성들이다.

 

중요 서비스 카테고리화

 


EC2

 

독립된 실제 컴퓨터를 인터넷을 통해 사용하도록 임대해주는 서비스 !!

서버 역할 담당

 

Elastic Compute Cloud의 약자로 EC2라고 하며, 아마존 웹서비스의 심장에 해당하는 서비스다.

 

 

쉽게 생각해서 한대의 컴퓨터를 임대해주는 것이라고 생각하자.

(임대받은 이 가상의 컴퓨터를 인스턴스라고 부른다.)

이 컴퓨터는 특별한 컴퓨터가 아니다. 여러분의 데스크탑이나 노트북과 정확하게 똑같은 컴퓨터다.

여기에 자신이 선호하는 운영체제를 설치하고, 웹서비스를 위한 프로그램들(웹서버, 데이터베이스 등)을

설치하면 된다.

 

AWS(아마존 웹서비스)에서는 인터넷을 통해서 이 컴퓨터에서 접속 할 수 있는 URL(Public DNS)을

제공하는데, 이 URL을 통해서 웹서비스를 하거나, 자신이 구입한 도메인을 붙여서 서비스 할 수도 있다.

 

실제 컴퓨터로 할 수 있는 광범위한 작업들을 EC2를 통해 작업을 할 수 있다.

물론, 여러분의 가정용 컴퓨터와 EC2는 중요한 차이가 있다.

인터넷을 통해서만 접속할 수 있고, 주문 후 1분 안에 생성되고, 삭제 즉시 제거된다.

 

하드웨어를 본인이 구매할 필요가 없기 때문에 초기 구입비가 전혀 없고, 사용한 만큼 비용을 지불하면 된다.

컴퓨터를 사용하면 프로그램도 설치하고, 파일도 저장하고, 설정도 변경하게 되는데,

이 상태 그대로 저장 할 수 있다. 이것을 이미지라고 한다.

이미지를 이용해서 새로운 컴퓨터를 만들면 이미지에 저장된 상태와 똑같은 컴퓨터를 생성할 수 있다.

 

컴퓨터를 장만할 때마다 반복되는 설치 작업을 하지 않게 되는 것이다.

 

다만, EC2는 물리적이 아니라 아마존에서 세계 각 지역에 만들어놓은 인프라(데이터 센터)에

만들어지는 것이기때문에 네트워크를 통해 제어를 해야한다.

 

(한국에서는 2016년에 처음으로 서울에 데이터 센터가 생겼다.)

 

 

EC2를 통한 가장 기본적인 업무는

 

웹서버를 설치하고 이 웹서버를 통해서

사용자가 웹브라우저를 통해 요청하는 웹페이지나 이미지, 동영상 등을 제공하는 것이다.

 

아마존 EC2서비스에서 말하는 인스턴스란 1대의 컴퓨터를 의미하는 단위이다.

 

인스턴스를 4개 생성한다는 표현은 4개의 컴퓨터를 AWS 인프라 위에 생성한다는 뜻이다.

 

EC2의 인스턴스는 한 대의 독립적인 컴퓨터이기 때문에 컴퓨터로 수행해야 하는 어떤 일이라도 이 인스턴스를 통해 수행 가능하다.

 

하지만, AWS를 위해 고안된 인프라 서비스이고, AWS에서 제공하는 서비스 중에 웹서버 역할을 할 수 있는 서비스는 EC2밖에 없기때문에 EC2 서비스에서 인스턴스의 가장 중요한 기능은 웹서버의 역할을 담당하는 것이라고 할 수 있다.

즉 아마존의 EC2란 가상서버를 필요할때 필요한 만큼 사용하고, 사용한 만큼만 비용을 지불하는 서비스이다.

 

클릭 몇 번으로 저기 바다 넘어있는 나라에 내 서버를 만들 수 있다.

 

 


 

 

 

 

 

++RDS vs EC2 ??

 

RDS를 사용할 것인지, 아니면 EC2 인스턴스에 사용 중인 데이터베이스를 직접 설치하는 기존 방식을 택할 지 결정해야 합니다.

AWS에 지불하는 비용만 놓고 비교하면 사용 중인 데이터베이스를 직접 설치하는 것이 확연히 저렴합니다.

하지만 이러한 결정을 내리는 데 있어서 기업들이 쉽게 간과하는 부분이 있습니다.

바로 기업이 RDS를 사용할 경우 빠른 시간 내에 가치를 이룸으로써 생기는 비용 절감입니다.

이는 서비스를 시장에 출시하는 시기를 앞당김으로써 얻을 수 있는 잠재적 기회 비용 및 이점과 시간을 의미합니다.

예를 들어 사용 중인 데이터베이스 대신에 RDS를 사용하게 되면, OS 및 데이터베이스의 설치 및 관리 그리고 업데이트를 따로 할 필요가 없어집니다.

게다가, AWS 콘솔이나 AWS API를 통해 손쉽게 백업이나 복구(recovery)가 가능합니다.

기업은 RDS를 사용함으로써 더 이상 스토리지의 LUN을 구성하고 더 나은 I/O를 위해 스트라이핑(Striping)을 최적화하는 데 시간과 노력을 쓸 필요가 없습니다.

또한 간단하게 인스턴스 크기를 축소 및 확장할 수 있으며, 클릭 한번으로 간단하게 높은 가용성을 이룰 수 있습니다.

이러한 모든 기능들을 통해 기업은 데이터베이스 도입 및 관리하는 데 있어서 시간과 노력을 줄일 수 있는 것입니다.

약간의 추가적인 요금이 발생하긴 합니다. 하지만 이를 통해 단축된 도입 시간은 시장에서 두드러진 성과로 이어질 수 있습니다.

모든 PaaS 서비스의 취약점 중에 하나는 사용 중이지 않을 때도 상관없이 계속 비용을 지불해야만 한다는 점이었습니다. RDS에도 예외는 아니었습니다.

하지만 최근 AWS의 RDS 업데이트를 통해 더 이상 사용 중이지 않을 때에 대한 불필요한 비용을 지불하지 않아도 됩니다.

AWS RDS 요금 정책은 다소 복잡하고 어려울 수 있습니다.

또한, 사용 중인 데이터베이스에 대해 정확히 파악하지 않으면 제대로 된 빌링(Billing)을 예측하기 어렵습니다.

그러나 이러한 단점을 보완하는 많은 이점이 있습니다.

RDS는 데이터베이스의 백엔드(Backend)에 대한 관리 및 구축을 지원하면서 기업의 시스템 관리를 간소화 시킵니다.

특히 클라우드로 이전하려는 기업의 경우, 분리된 인스턴스 또는 하이퍼바이저(Hypervisor)에서의 운영보다 RDS를 사용하는 것이 좋습니다.

데이터베이스의 관리보다는 기업의 비즈니스와 어플리케이션에 집중할 수 있기 때문입니다.

인프라 운영을 위한 어플리케이션, 제대로 설계된 자동화 그리고 데이터베이스 전문 관리 팀이 있는 기업의 경우 RDS가 꼭 필요하지 않을 수 있습니다.

사용 중인 데이터베이스에 필요한 딱 맞는 결정을 내리려면 위에서 다룬 것처럼 RDS의 기능, 장단점 그리고 비용 요소를 정확히 파악하는 것이 중요합니다.

'Be well coding > Learn more' 카테고리의 다른 글

GraphQL 사용법  (0) 2019.07.26
GraphQL  (0) 2019.07.25
쿠키 & 세션 & 토큰  (0) 2019.06.26
Promise / callback / 동기&비동기  (0) 2019.06.21
Server & modules  (0) 2019.06.20
Comments