클라우드 컴퓨팅 무엇인가

서비스 개발에 있어서 클라우드 서버를 이용하는 것은 많은 장점이 있습니다. 클라우드 컴퓨팅 이해, 장점, 확장성, 탄력성, 회복력, 관리자 역할 고려사항 등을 알아보도록 하겠습니다.

내용

  1. 클라우드 컴퓨팅 이해
  2. 클라우드 컴퓨팅 장점
  3. 클라우드 확장성
  4. 클라우드 탄력성
  5. 클라우드 회복력
  6. 클라우드 관리자 역할
  7. 클라우드 컴퓨팅 도입시 고려사항

목표

  • 클라우드 컴퓨팅에 대해 전반적으로 이해할 수 있습니다.
  • 서비스 및 기술에 관점에서 장점들이 무엇이 있는지 알 수 있습니다.
  • 클라우드 컴퓨팅의 컨셉에 대해 알아봅니다.
  • 설계적인 측면에서 확장성과 탄력성을 알아봅니다.
  • 클라우드 환경에서의 제약 사항의 극복과 가상화 관리자의 역할에 대해 이해합니다.
  • 클라우드 컴퓨팅을 도입 시 고려해야 해야 하는 사항에 대해 알 수 있습니다.

1. 클라우드 컴퓨팅 이해

클라우드 컴퓨팅

  • 정의 : Cloud Computing
  • 네트워크로 연결된 다양한 역할을 하는 IT 리소스와 어플리케이션을 온디맨드(On-Demand)로 제공하는 서비스입니다.
  • IT 리소스는 서버, 저장장치, 네트워크 장치 같은 IT의 기반 인프라 자원을 말합니다.
  • 온디맨드 서비스는 간략히 사용자의 요구사항을 제공해주는 서비스라고 이해하시면 됩니다.
  • 퍼블릭 서비스
    • 서비스 이용자는 보통 일반 사용자들입니다.
    • 대표적인 서비스로는 아마존의 AWS, 마이크로소프트의 Azure, 구글의 GCP이 있습니다.
  • 프라이빗
    • 서비스 이용자는 내부 사용자입니다.
    • 대표적인 서비스로는 Openstack, Cloudstack이 있습니다.

클라우드 컴퓨팅 분류

  • Infrastructure As A Service 는 줄여서 IaaS 라고도 하며
  • Platform As A Service 는 ‘서비스로서의 플랫폼’을 의미합니다. PaaS(파스)라고 하며 IaaS 형태의 가상화된 클라우드 위에 원하는 서비스 개발이 가능하도록 개발 환경(Platform)을 미리 구축하여 제공하는 서비스를 말합니다. 운영체제, 미들웨어, 런타임 등을 미리 구축한 상태로 제공하므로 IaaS보다 관리상 편의성을 제공합니다.
  • Software As A Service 는 ‘서비스형 소프트웨어’를 일컫습니다. SaaS(사스)라고 축약해서 명명하기도 하고 클라우드 서비스 중 완성된 형태의 서비스입니다. 클라우드 인프라에 소프트웨어로 구동되는 IT 인프라 자원과 업데이트, 보완 등을 업체가 담당합니다. 사용자는 브라우저와 인터넷 연결만 가능하면 액세스가 가능합니다.

클라우드 컴퓨팅의 특징

  • 요구사항에 따라 다양한 리소스를 편리하게 사용할 수 있습니다.
  • 사용 시간, 저장 공간, 네트워트 트랙픽 양 등 사용한 만큼만 비용이 청구되는 방식입니다.
  • 서비스가 어떻게 확장되든 유연하게 대응이 가능합니다.
  • 운영에 필요한 편리한 기능을 제공하여 운영 편의성을 증대시킵니다.

2. 클라우드 컴퓨팅 장점

사업적인 측면

  • 실제 고가의 장비를 구매하지 않아도 되어 초기 서비스 구축의 인프라 자원 비용을 절약할 수 있습니다.
  • IT 리소드 등 실제 사용한 양에 비례한 과금구조라 초기 단계의 개발 비용 절약에 유리합니다.
  • 필요할 때 바로 마우스 클릭 몇 번만으로도 즉시 다양한 IT인프라 사용이 가능합니다.
  • 운영 시 발생하는 여러 관리적 자원 이슈를 다양한 솔루션이 지원되어 효율적으로 관리할 수 있습니다.
  • 셋팅, 운영 등의 관리 구축 업무가 확연히 줄어들어 서비스를 구축, 오픈하기까지의 시간이 절약됩니다.

기술적인 측면

  • 마우스로 클릭하는 구축도 있지만 코드화 하여 인프라 셋팅의 자동화가 가능합니다.
  • 사용자나 서비스가 폭증했을 시 시스템을 자동 확장하는 Auto-Scaling 등의 탄력적인 확장이 가능합니다.
  • 개발의 프로세스를 단축할 수 있습니다.
  • 시스템의 검증 절차를 향상시킬 수 있습니다.
  • 다양한 서비스 구성으로 IOT 등의 대규모의 트래픽 수용 가능합니다.
  • 24시간 구동되는 서비스를 구축할 수 있고 재해 시에도 운영 유지와 신속한 복구가 가능합니다.

3. 확장성 있는 설계

클라우드는 확장성이 생명입니다. 어떤 서비스 요구사항에 든지 구축, 서비스 확장에 따른 시스템 확장성을 고려해서 설계되어야 합니다.

확장성을 갖춘 솔루션 의 특징

  • 리소스 증가에 비례해서 성능 또한 증가합니다.
  • 시스템에 장애가 발생하면 자체 다시 구동한 회복력이 있습니다.
  • 기능이 많아지면 독립 분산된 시스템의 관리 능력이 중요합니다.
  • 서비스 시 발생할 수 있는 버그, 오류 등에 효율적으로 대처할 수 있는 운영 방법이 있어야 합니다.
  • 리소스 증가에 따른 비용의 효율적인 정책과 노하우 및 관리가 수반되어야 합니다.

확장성을 고려한 설계

  • Scale Up/ Down : 수직적인 확장의 개념으로 서버의 CPU, 메모리 증가(Up)와 감소(Down)를 의미합니다.
  • Scale Out/ In : 수평적 확장의 개념으로 서버의 대수, 디비 서버의 증가(Out)와 감소(In)를 의미합니다.

4. 탄력성 이해

탄력성은 클라우드의 중요한 속성이며 클라우드 컴퓨팅 리소스를 스케일링 할 수 있는 개념입니다.

기존 서버 운용 구조

  • 용량 낭비란 가능한 용량이 실사용량보다 많아 리소스가 과도하게 남는 경우입니다.
  • 품질 저하란 가능한 용량보다 실사용량이 많이 리소스 부족으로 서비스 품질이 떨어지는 경우를 말합니다.

탄력적인 클라우드 컴퓨팅 구조

  • 스케일 인/다운은 사용 가능한 용량이 실사용량보다 많을 경우 용량 낭비를 줄이기 위해 서버의 대수를 감소하거나 사양을 낮추는 방식입니다.
  • 스케일 아웃/업은 사용 가능한 용량이 실사용량보다 많을 경우 서비스가 느려질 경우를 대비히 서버의 사양을 높이거나 대수를 늘이는 등의 확장 방식입니다.

5. 장애, 제약에 대한 회복

  • 클라우드를 기반으로 한 서비스의 경우 시스템의 요구사항들이 클라우드 내에서 구현 가능한지 불가능하다면 어떻게 대안을 마련해야 하는지 고려해야 합니다.
  • 기존 온프라미스 환경에서의 서비스 요소들을 그대로 사용하는 것은 불가능하다는 것을 고려하여 클라우드 내에서 제공하는 다양한 리소스들을 이용해 서비스 구축할 수 있도록 개발자들의 충분한 설계단의 고민이 필요합니다.
  • 온프라미스(On-Premise)란 자체 구축하여 설치한 시스템을 말합니다.

6. 클라우드 시스템 관리자

  • 시스템 관리자는 클라우드로의 변화에 따라 가상화 시스템 관리자의 역할을 수행해야 합니다.
  • 과거 관리자의 역할보다 어플케이션 혹은 서비스에 대해 최적의 비지니스를 이끌어 낼 수 있도록 다양한 부분에 대해 관심과 노력이 필요합니다.
  • 시스템 관리자는 클라우드 기술에 대한 폭넓은 이해를 바탕으로 다양한 클라우드 리소스를 제어, 관리 및 서비스의 기능을 검토, 추천할 수 있는 능력이 필수입니다.

클라우드 데이터베이스 관리자의 역할 변화

  • 기존 업무는 DB 설치 및 운영, 정기적인 DB 관리 작업 영역이었습니다.
  • 클라우드 관리자의 업무는 기존의 업무에서 DB 인스턴스 이미지 관리, 분산 DB 환경의 관리가 추가된 형태입니다.

7. 클라우드 컴퓨팅 도입시 고려사항

고려사항

  • 보안에 대한 중요성을 고려할 때 개인정보 보호 시스템 구축을 고민해야 합니다.
  • 적절한 보안 리소스를 활용하여 서비스에 요구된 보안수준을 확보해야 합니다.
  • 서비스가 지속 가능하게 운영될 수 있는 방법을 확보해야 합니다.
  • 서비스 상에 여러 제한사항이 발생할 것을 대비해 요구사항을 사전에 정확히 파악해야 합니다.

클라우드 컴퓨팅 참고사이트

https://aws.amazon.com/ko/what-is-cloud-computing/

https://azure.microsoft.com/ko-kr

https://cloud.google.com/?hl=ko

Back to top