[AWS] 클라우드 컨셉

김아름·2022년 4월 7일
0
post-custom-banner

1. 확장성 있는 설계

  • 클라우드는 확장성의 개념을 가지고 디자인 되어 있으며 특히 IT자원의 확장성을 바탕으로 확장성이 있는 서비스 설계를 가능하게 함

  • 서버, 네트워크, 스토리지가 가상화

  • 애플리케이션을 구성할 때 기본적으로 web, was, DB 3티어 구조로 설계하는데 각각의 컴포넌트 별로 확장성 있는 설계를 할수O
    --> web, was, DB간에 연관관계가 있을 것이고, 병목되는 부분이 존재O

  • 서비스 레벨에서 병목과 획일적인 구성요소들을 확인하여 효율적으로 설계를 개선하여 클라우드의 이점들을 활용해야함


확장성 있는 애플리케이션의 특징

(1) 리소스 증가에 비례한 성능의 증가

  • 성능이 필요하니 확장이 필요한 것
  • 필요한 확장에 따라 리소스의 증가도 필요

(2) 회복력

  • 확장성과 일맥상통한 단어
  • 시스템이 얼마나 탄력적으로 트래픽을 받고 줄이고 할수 있느냐
  • 서비스 트래픽이 급속도로 들어왔을 때 탄력적으로 it자원들(서버, 스토리지, 네트워크)을 늘리고 줄이고 하는 회복력을 가져야 함

(3) 분산된 시스템의 관리능력

  • 3티어(web, was, DB) 구조로 설계를 하더라도 그 뒷단에서는 분산된 시스템
    ex) DB가 2대, 3대로 만들어짐 or was가 2,3대로 만들어짐
  • 분산된 시스템을 관리할 수 있는 능력을 가졌을 때 확장성 있는 애플리케이션O

(4) 효율적인 운영방법

  • 서버에 자원이 있는데 CPU 사용량이 90%로 치솟고 있다.
    --> 모니터링해야하고, 모니터링에 맞춰서 서비스를 확장성 있게끔 설계해야함

(5) 비용의 효율적인 관리

  • 서비스가 확장성 있게 늘어남에 따라 비용 구조도 늘어남
  • 클라우드 특성상 사용한 만큼 지불하리 때문에 자원이 늘어남에 따라 비용도 증가

확장성 있는 설계 형태

(1) Scale Up / Down (수직적)

  • 서버가 2코어 4기가의 스펙인데 4코어 8기가로 업그레이드 시키는 것
  • 서버를 stop시키고 자원을 늘린 후 다시 시작

(2) Scale Out / In (수평적)

  • 병렬적으로 확장
  • 서버 1대를 3대로 늘려 300%의 용량을 확보



2. 탄력성에 대한 이해

  • 탄력성은 기본적인 클라우드의 속성 중에 하나이며 최소한의 마찰로 리소스를 스케일링 가능하게 하는 특징

  • 애플리케이션 구조에 클라우드 이점을 충분히 적용할 수 있도록 탄력성의 개념을 가지고 설계한다.

  • 클라우드에서는 탄력성을 이용하여 전통적인 방식과 다르게 필요한 자원들만 활용하도록 간소화 한 시스템 설계 및 프로세스의 관점의 변화가 필요

  • 리소스를 서비스 양에 맞게 즉각적으로 늘리고 줄이는 프로세스를 자동화 하고 이용률을 높이는 작업을 적용


탄력성의 구조

(1) 전통적인 방식의 비탄력적인 구조

(2) 클라우드 방식의 탄력적인 구조



3. 제약에 대한 극복

  • 클라우드 환경을 통해 애플리케이션을 서비스 하기 위해 시스템의 요구사항들이 클라우드에서 충분히 제공되는지 충족되지 않는 부분은 어떻게 극복해야 하는지 고민해야 함
  • 온프라미스 환경과 동일한 하드웨어 혹은 솔루션을 활용하기 어렵다는 것을 이해하고 클라우드 환경에서 제공하는 추상화 된 자원들을 활용하여 서비스를 딜리버리 할 수 있도록 관점의 변화가 필요O
    --> 온프라미스(On-Premise)란? 내부에 자체 구축 및 설치한 시스템

데이터베이스 읽기 성능 확보 방법 사례

(1) IDC(데이터센터),온프레미스 환경

  • DB서버 장비를 구매, 원하는 사이즈 스펙의 메모리를 추가적으로 구매

(2) 클라우드 환경

  • 다양한 추상화 된 서비스들을 활용
    ex) 레디스(Redis): 인메모리 데이터베이스, Key-Value 데이터 저장소

  • DB에 올라온 데이터들을 레디스에서 캐시에 올려줌

  • 실제로 사용자가 서비스에 접근 할 때, 레디스의 인메모리에 영향을 받음

  • DB의 읽기 성능 - DB에서 메모리를 증설 하는 것이 아니라 앞단의 추상화 된 서비스를 통해 서비스 품질 확보



4. 가상화 시스템 관리자

시스템 관리자의 역할 변화

  • 시스템 관리자는 클라우드로의 변화에 따라 가상화 시스템 관리자의 역할을 수행해야 함

  • 과거 관리자의 역할보다 애플리케이션 혹은 서비스에 대해 최적의 비즈니스를 이끌어낼 수 있도록 다양한 부분에 대해 관심과 노력이 필요
    --> it 자원(서버,스토리지,네트워크)이 가상화 되어 온디맨드하게 탄력적으로 서비스 되기 때문에 기존에 서버만 운영했던 시스템 엔지니어, 스토리지만 운영했던 엔지니어, 네트워크만 운영했던 엔지니어는 클라우드 환경에서는 다양한 컴포넌트에 대해서 이해해야 한다.

  • 시스템 관리자는 기술 레벨의 확장이 필요하며 추상화 된 클라우드 리소스에 대해 제어, 관리 및 서비스의 기능을 제안 할 수 있는 역량이 필요


데이터베이스 관리자의 역할 변화


학습정리



참고

profile
쿄쿄쿄
post-custom-banner

0개의 댓글