클라우드 컴퓨팅은 사용자의 직접적인 관리 없이 컴퓨팅 자원을 필요시 바로 온디맨드 방식으로 제공하는 것이다.
만약, 어떤 사람이 컴퓨터를 이용하고 싶다면, CPU, 메모리, 스토리지가 포함된 컴퓨터를 구매하여 물리적 인프라를 구축해야 한다. 하지만, 클라우드 컴퓨팅을 활용한다면, 인터넷을 통해 다양한 컴퓨팅 자원에 대해 필요한 시점에 필요한 만큼 사용할 수 있다.
하드웨어 성능을 높이는 방법이 있다. CPU의 클록 스피드를 높여 처리 속도를 높이거나 RAM 크기를 늘려 디스크 스와핑 횟수를 줄이고 더 많은 페이지를 메모리에 적재하여 성능을 개선하는 방법이 있다.
하지만 이는 비용이 지수적으로 증가하는 문제가 발생한다. CPU 클록 스피드가 증가할수록 CPU 온도는 상승하고 그에 따른 쿨링이 필요하다. 따라서 쿨링을 위한 비용이 발생한다. 메모리는 컴퓨터 메인보드에 장착할 수 있는 메모리 뱅크 수가 한정적이기 때문에 무한대로 높이는 것은 불가능하다. 결국 하드웨어적 구성에 영향을 받을 수밖에 없다.
다른 방법으로는 컴퓨터를 병렬로 묶는 클러스터링이 있다.
이 방법은 독립된 컴퓨터를 네트워크로 연결하여 마치 하나의 컴퓨터처럼 활용하는 방법인데, 이를 활용한 컴퓨팅을 클러스터 컴퓨팅이라 한다. 클러스터 컴퓨팅을 통해 작업을 병렬처리 하면 컴퓨터의 성능을 높일 수 있다. 예를 들어, 하나의 작업이 완료되는 시간은 1시간이고, 1000개의 작업을 처리해야 한다면, 한 대의 컴퓨터로는 1000시간의 작업 시간이 걸리지만, 10개의 컴퓨터가 클러스터링 된 컴퓨터에서는 100시간이 걸린다.
두 기술 모두 유휴 자원을 효율적으로 활용하는 HTC 기술이다.
그리드 컴퓨팅(클러스터링)은 유휴 컴퓨팅 자원을 네트워크를 통해 연결하는 오케스트레이션 기술을 사용한다.
클라우드 컴퓨팅은 자원을 분리하는 기술인 가상화 기술을 사용한다.
- HTC : 유휴자원의 활용성을 높여 처리량을 높이는 컴퓨팅 기술. 이더넷 같은 일반적인 네트워크로 연결
- HPC : 슈퍼컴퓨터와 같이 빠른 계산을 목적으로 하는 컴퓨팅 기술. 인피니밴드와 같은 고속 네트워크로 연결
클라우드 컴퓨팅을 통해 데이터센터 운영의 3대 이슈를 해결할 수 있다.
- 자원의 활용성 : 데이터 센터의 인프라는 비용을 투자한 시설이기 때문에 비용적인 관점에서 낭비 없이 활용될수록 좋다.
- 안정성 : 수많은 서비스가 서로 영향을 주면 안된다. 가상화 기술을 통해 문제가 생긴 서비스를 다른 서비스와 분리함으로써 문제를 해결할 수 있다.
- 빠른 복구 : 서비스에 문제가 발생한 경우, 다운 타임을 최소화 하는 것이 중요하다. 가상화 기술을 통해 서비스를 image로 만들고 문제가 생겼을 때, 검증된 image를 실행하면 된다.
- IaaS : 물리적 컴퓨팅 자원을 가상화하여 제공하는 서비스이다.
ex) AWS EC2- PaaS : IaaS 위에 플랫폼을 만들어 서비스를 제공한다. 사용자는 플랫폼에서 동작하는 애플리케이션과 데이터만 관리한다.
ex) AWS Elastic Beanstalk - 개발자가 애플리케이션 코드를 업로드하면 자동으로 인프라를 설정하고 배포- SaaS : 클라우드 환경에서 소프트웨어를 서비스하는 것을 의미한다.
ex) MS 365
컨테이너는 자동화 오케스트레이션 툴이당