이전 주제인 LFCA 시리즈에서는 클라우드 컴퓨팅 소개, 다양한 유형 및 클라우드, 클라우드 서비스를 소개하고 클라우드 컴퓨팅과 관련된 혜택 중 일부를 안내했습니다.
귀하의 비즈니스가 아직 전통적인 IT 컴퓨팅 환경을 타고 있다면, 클라우드로 전환하고 업그레이드할 시간입니다. 2021년 말까지 총 작업량의 90% 이상이 클라우드에서 처리될 것으로 추정됩니다.
클라우드 컴퓨팅을 받아들이는 데 관련된 주요 이점 중 하나는 성능 향상, 고가용성 및 확장성입니다. 사실, 클라우드 기술을 사용하는 주요 이점 중 하나로 이를 간략히 다루었습니다.
이 주제에서는 클라우드 가용성, 성능 및 확장성에 초점을 맞추어 이 세 가지가 어떻게 고객 요구를 충족시키고 사용자가 세계 어디에서나 필요로 하는 대로 데이터에 액세스할 수 있도록 보장하는지 이해하려 합니다.
1. 클라우드 가용성
조직의 IT 응용 프로그램 및 서비스는 중요하며 서비스 중단은 수익에 깊은 영향을 미칠 수 있습니다. 고객의 기대는 서비스가 언제 어디서나 24시간 내내 접근 가능하다는 것입니다. 그리고 바로 그것이 클라우드 기술이 제공하려는 것입니다.
고가용성은 클라우드 컴퓨팅의 궁극적인 목표입니다. 기업 서비스의 최대한의 가동 시간을 제공하려고 합니다. 예기치 않은 서버 다운타임이나 네트워크 저하로 인한 장애에도 불구하고 회사의 서비스를 최대한으로 유지하려고 노력합니다.
고가용성은 중복 및 장애 극복 시스템을 갖춘 것으로 가능합니다. 이는 여러 대의 서버 또는 시스템이 동일한 작업을 수행하고 이에 따라 중복성을 제공하는 클러스터 환경에서 발생합니다.
서버가 다운되어도 나머지 서버는 계속 가동하고 영향을 받은 서버가 제공하는 서비스를 계속 제공할 수 있습니다. 중복성의 완벽한 예는 클러스터의 여러 데이터베이스 서버간의 데이터 복제입니다. 클러스터의 기본 데이터베이스 서버에 문제가 발생할 경우 다른 데이터베이스 서버가 실패에도 불구하고 사용자가 필요로 하는 데이터를 제공할 것입니다.
중복성은 단일 장애 지점을 제거하고 서비스 및 응용 프로그램의 99.999% 가용성을 보장합니다. 클러스터링은 또한 서버간의 부하 분산을 제공하고 작업 부하가 공평하게 분배되며 어느 한 서버가 과부하가 걸리지 않도록 보장합니다.
2. 클라우드 확장성
클라우드 컴퓨팅의 또 다른 특징은 확장성입니다. 확장성은 클라우드 자원을 변경하여 수요에 맞추는 능력입니다. 간단히 말해, 수요에 따라 자원을 신속하게 증가 또는 감소시켜 서비스 품질이나 다운타임을 저해하지 않고 요구를 충족시킬 수 있습니다.
당신의 블로그가 점차적으로 방문자와 트래픽을 늘리고 있다고 가정해 봅시다. 클라우드 컴퓨팅 인스턴스에는 저장 공간, RAM 및 CPU와 같은 추가 컴퓨팅 리소스를 쉽게 추가하여 추가된 작업 부하를 처리할 수 있습니다. 필요할 때 리소스를 축소할 수도 있습니다. 이렇게 하면 필요한 것만 지불하므로 클라우드가 제공하는 규모의 경제가 강조됩니다.
확장성은 두 가지로 구분됩니다: 수직 확장 및 수평 확장입니다.
수직 확장
‘확장’이라고도하는 수직 확장은 클라우드 컴퓨팅 인스턴스에 RAM, 저장 공간 및 CPU와 같은 추가 리소스를 추가하여 추가 작업 부하를 수용하는 것입니다. 이는 물리적 PC 또는 서버의 전원을 끄고 RAM을 업그레이드하거나 추가 HDD 또는 SSD를 추가하는 것과 동등합니다.
수평 확장
수평 확장 또는 ‘확장’은 기존 서버 풀에 더 많은 서버를 추가하여 작업 부하를 여러 서버에 분산하는 것입니다. 수평 확장을 사용하면 수직 확장과는 달리 단일 서버의 용량에 제한받지 않습니다. 이는 더 많은 확장성과 더 적은 다운타임을 제공합니다.
확장이 수직 확장보다 더욱 바람직합니다.
수평 스케일링을 통해 기존의 리소스 풀에 서버나 저장소와 같은 추가 리소스를 추가함으로써 기본적으로 더 많은 리소스를 추가하는 것입니다. 이렇게 하면 여러 컴퓨팅 인스턴스의 파워와 성능을 결합하여 하나로 통합함으로써 단일 서버에 리소스를 추가하는 것보다 더 나은 성능을 얻을 수 있습니다. 추가 서버는 리소스 부족 문제를 해결할 필요가 없음을 의미합니다.
또한, 수평 스케일링은 한 대의 서버가 영향을 받더라도 나머지 서버가 필요한 서비스에 대한 접근을 계속 제공하여 장애 내성과 오류 허용성을 제공합니다. 수직 스케일링은 단일 장애 지점과 관련이 있습니다. 컴퓨팅 인스턴스가 충돌하면 모든 것이 함께 다운됩니다.
수평 스케일링은 애플리케이션을 하나의 큰 단위로 구축하는 수직 스케일링과 달리 최대의 유연성을 제공합니다. 이는 시스템 전체를 다시 부팅하지 않고는 코드 일부를 관리, 업그레이드 또는 변경하는 것이 더 어려워집니다. 스케일 아웃은 애플리케이션을 분리하고 최소한의 다운 타임으로 원활한 업그레이드를 가능하게 합니다.
3. 클라우드 성능
고객 요구 사항을 충족하는 응용 프로그램 성능을 보장하는 것은 특히 서로 지속적으로 통신해야 하는 다양한 환경에 있는 여러 구성 요소가 있는 경우에는 꽤 어려운 과제일 수 있습니다.
지연과 같은 문제가 발생하여 성능에 영향을 미칠 가능성이 있습니다. 또한, 다양한 엔티티가 공유하는 리소스에서 성능을 예측하기 어려울 수 있습니다. 그럼에도 불구하고 다음 조치를 시행함으로써 여전히 높은 성능을 달성하고 유지할 수 있습니다.
1. 클라우드 인스턴스
애플리케이션 및 서비스의 워크로드를 처리할 충분한 리소스가 있는 적절한 클라우드 인스턴스를 사용하십시오. 리소스 집약적인 애플리케이션의 경우 클라우드 인스턴스에 충분한 RAM, CPU 및 저장소 리소스를 할당하여 잠재적인 리소스 부족을 방지하십시오.
2. 로드 밸런서
로드 밸런서를 구현하여 리소스 간 네트워크 트래픽을 공평하게 분배하십시오. 이를 통해 수요에 의해 애플리케이션이 과부하되지 않도록 보장하십시오. 웹 서버에 많은 트래픽이 발생하여 지연이 발생하고 성능에 영향을 미치는 경우를 가정해 보겠습니다.
A perfect solution would be to implement horizontal scaling with a total of 4 web servers sitting behind a load balancer. The load balancer will distribute network traffic across the 4 web servers and ensure none is overwhelmed by the workload.
3. 캐싱
캐싱 솔루션을 사용하여 애플리케이션에 의해 파일에 빠르게 액세스하십시오. 캐시는 자주 읽히는 데이터를 저장하여 성능에 영향을 미칠 수 있는 지속적인 데이터 조회를 제거합니다. 데이터가 이미 캐시되어 있기 때문에 지연 시간과 워크로드를 줄이며 응답 시간을 개선합니다.
캐싱은 응용 프로그램 수준, 데이터베이스 수준 등 다양한 수준에서 구현할 수 있습니다. 인기있는 캐싱 도구로는 Redis, Memcached, 그리고 Varnish cache가 있습니다.
4. 성능 모니터링
마지막으로, 서버 및 응용 프로그램의 성능을 모니터링하는 것이 중요합니다. 클라우드 공급자는 웹 브라우저에서 클라우드 서버를 관찰할 수 있는 원격 도구를 제공합니다.
다음 텍스트를 한국어로 번역하겠습니다:
무료이며 오픈 소스 모니터링 도구를 설치하여 응용 프로그램 및 서버를 지속적으로 모니터링할 수 있습니다. 이러한 응용 프로그램의 예로는 Grafana, Netdata, Prometheus 등이 있습니다.
결론
클라우드에서 가용성, 확장성 및 성능이 얼마나 중요한지 강조할 수 없습니다. 이 세 가지 요소는 클라우드 공급 업체에서 제공하는 서비스 품질을 결정하고 궁극적으로 비즈니스의 성공 또는 실패를 결정합니다.
Source:
https://www.tecmint.com/cloud-availability-performance-and-scalability/