웹사이트 검색

LFCA: 클라우드 가용성, 성능 및 확장성에 대해 알아보기 - 14부


LFCA 시리즈의 이전 주제에서는 클라우드 컴퓨팅, 다양한 유형과 클라우드, 클라우드 서비스를 소개하고 클라우드 컴퓨팅과 관련된 몇 가지 이점을 안내했습니다.

귀하의 비즈니스가 여전히 기존 IT 컴퓨팅 환경을 사용하고 있다면 이제 수준을 높이고 클라우드로 전환할 때입니다. 2021년 말까지 전체 워크로드의 90% 이상이 클라우드에서 처리될 것으로 예상됩니다.

클라우드 컴퓨팅 도입과 관련된 주요 이점 중에는 향상된 성능, 고가용성 및 확장성이 있습니다. 실제로 우리는 클라우드 기술 사용의 주요 이점 중 하나로 이러한 점을 간과했습니다.

이 주제에서는 클라우드 가용성, 성능 및 확장성에 중점을 두고 이 세 가지가 어떻게 통합되어 고객 요구를 충족하고 사용자가 세계 어느 곳에서나 필요할 때 데이터에 액세스할 수 있도록 보장하는 방법을 이해하려고 합니다.

1. 클라우드 가용성

조직의 IT 애플리케이션 및 서비스는 매우 중요하며 서비스 중단은 수익에 큰 영향을 미칠 수 있습니다. 고객은 어느 위치에서든 주어진 시간에 24시간 내내 서비스에 액세스할 수 있기를 기대합니다. 이것이 바로 클라우드 기술이 제공하고자 하는 것입니다.

고가용성은 클라우드 컴퓨팅의 궁극적인 목표입니다. 전례 없는 서버 가동 중지 시간이나 네트워크 저하로 인해 발생할 수 있는 중단 상황에도 불구하고 회사 서비스의 가능한 최대 가동 시간을 제공하려고 합니다.

중복 및 장애 복구 시스템을 통해 고가용성이 가능해졌습니다. 이는 여러 서버 또는 시스템이 동일한 작업을 수행하여 중복성을 제공하는 클러스터 환경에서 발생합니다.

서버가 다운되더라도 나머지 서버는 계속 실행되어 영향을 받은 서버에서 제공하는 서비스를 제공할 수 있습니다. 중복성의 완벽한 예는 클러스터의 여러 데이터베이스 서버에 걸친 데이터 복제입니다. 클러스터의 기본 데이터베이스 서버에 문제가 발생하는 경우 오류에도 불구하고 다른 데이터베이스 서버가 사용자에게 필요한 데이터를 계속 제공합니다.

중복성은 단일 장애 지점을 제거하고 서비스 및 애플리케이션의 가용성을 99.999% 보장합니다. 클러스터링은 또한 서버 간의 로드 밸런싱을 제공하고 워크로드가 공평하게 분산되어 서버가 압도당하지 않도록 합니다.

2. 클라우드 확장성

클라우드 컴퓨팅의 또 다른 특징은 확장성입니다. 확장성은 변화하는 수요에 맞게 클라우드 리소스를 조정하는 능력입니다. 간단히 말해, 서비스 품질 저하나 가동 중지 시간 없이 수요를 충족하기 위해 필요할 때 리소스를 원활하게 늘리거나 줄일 수 있습니다.

조회수와 트래픽이 늘어나기 시작하는 블로그를 운영하고 있다고 가정해 보세요. 스토리지, RAM, CPU 등의 더 많은 컴퓨팅 리소스를 클라우드 컴퓨팅 인스턴스에 쉽게 추가하여 추가 워크로드를 처리할 수 있습니다. 반대로 필요한 경우 리소스를 축소할 수 있습니다. 이를 통해 필요한 만큼만 비용을 지불할 수 있으며, 이는 클라우드가 제공하는 규모의 경제를 강조합니다.

확장성은 수직 확장과 수평 확장의 두 가지입니다.

수직 확장

'확장'이라고도 불리는 수직 확장에는 추가 워크로드를 수용하기 위해 클라우드 컴퓨팅 인스턴스에 RAM, 스토리지, CPU와 같은 더 많은 리소스를 추가하는 작업이 포함됩니다. 이는 RAM을 업그레이드하거나 추가 하드 드라이브 또는 SSD를 추가하기 위해 실제 PC 또는 서버의 전원을 끄는 것과 같습니다.

수평적 확장

'수평 확장'이라고도 알려진 수평적 확장에는 여러 서버에 작업 부하를 분산시키기 위해 기존 서버 풀에 더 많은 서버를 추가하는 작업이 포함됩니다. 수평적 확장을 사용하면 수직적 확장과 달리 단일 서버의 용량에 제한이 없습니다. 이를 통해 확장성이 향상되고 가동 중지 시간이 줄어듭니다.

Scale Up보다 Scale Out이 더 바람직합니다.

그 이유는 다음과 같습니다. 수평적 확장을 사용하면 기본적으로 기존 리소스 풀에 서버나 스토리지와 같은 더 많은 리소스를 추가하게 됩니다. 이를 통해 여러 컴퓨팅 인스턴스의 성능과 성능을 하나로 결합할 수 있으므로 단일 서버에 리소스를 추가하는 것보다 더 나은 성능을 얻을 수 있습니다. 추가 서버는 리소스 부족을 처리할 필요가 없음을 의미합니다.

또한 수평 확장은 한 서버가 영향을 받더라도 나머지 서버가 필요한 서비스에 대한 액세스를 계속해서 입증하는 방식으로 중복성과 내결함성을 제공합니다. 수직적 확장은 단일 실패 지점과 연관되어 있습니다. 컴퓨팅 인스턴스가 충돌하면 모든 것이 함께 중단됩니다.

수평 확장은 애플리케이션이 하나의 큰 단위로 구축되는 수직 확장과 달리 최대한의 유연성을 제공합니다. 이로 인해 전체 시스템을 재부팅하지 않고도 코드 섹션을 관리, 업그레이드 또는 변경하는 것이 더욱 어려워졌습니다. 수평 확장을 통해 애플리케이션을 분리할 수 있으며 가동 중지 시간을 최소화하면서 원활한 업그레이드가 가능합니다.

3. 클라우드 성능

애플리케이션 성능이 고객 요구 사항을 충족하는지 확인하는 것은 상당히 어려운 작업일 수 있습니다. 특히 서로 지속적으로 통신해야 하는 다양한 환경에 여러 구성 요소가 있는 경우 더욱 그렇습니다.

대기 시간과 같은 문제는 성능에 나타나고 영향을 미칠 가능성이 높습니다. 또한 다양한 개체가 리소스를 공유하는 경우 성능을 예측하기가 쉽지 않습니다. 그럼에도 불구하고 다음 조치를 구현하면 여전히 높은 성능을 달성하고 계속해서 유지할 수 있습니다.

1. 클라우드 인스턴스

애플리케이션 및 서비스의 워크로드를 처리하기에 충분한 리소스를 갖춘 올바른 클라우드 인스턴스를 사용하십시오. 리소스 집약적인 애플리케이션의 경우 리소스 부족을 방지하려면 클라우드 인스턴스에 충분한 RAM, CPU 및 스토리지 리소스를 프로비저닝해야 합니다.

2. 로드 밸런서

리소스 간에 네트워크 트래픽을 균등하게 분배하기 위해 로드 밸런서를 구현합니다. 이렇게 하면 애플리케이션이 수요로 인해 압도당하지 않게 됩니다. 웹 서버가 지연을 일으키고 성능에 영향을 미치는 많은 트래픽을 받고 있다고 가정해 보겠습니다.

완벽한 솔루션은 로드 밸런서 뒤에 총 4개의 웹 서버가 있는 수평 확장을 구현하는 것입니다. 로드 밸런서는 4개의 웹 서버에 네트워크 트래픽을 분산하고 워크로드로 인해 과부하가 발생하지 않도록 합니다.

3. 캐싱

캐싱 솔루션을 사용하여 애플리케이션의 파일 액세스 속도를 높입니다. 캐시는 자주 읽는 데이터를 저장하므로 성능에 영향을 미칠 수 있는 지속적인 데이터 조회를 제거합니다. 데이터가 이미 캐시되어 있으므로 대기 시간과 작업 부하가 줄어들어 응답 시간이 향상됩니다.

캐싱은 애플리케이션 레벨, 데이터베이스 레벨 등 다양한 레벨에서 구현될 수 있습니다. 널리 사용되는 캐싱 도구로는 Redis, Memcached 및 Varnish 캐시가 있습니다.

4. 성능 모니터링

마지막으로, 서버와 애플리케이션의 성능을 모니터링하십시오. 클라우드 공급자는 웹 브라우저에서 클라우드 서버를 감시하는 데 도움이 되는 기본 도구를 제공합니다.

또한, 스스로 주도적으로 애플리케이션과 서버를 감시하는 데 도움이 되는 무료 오픈 소스 모니터링 도구를 설치할 수 있습니다. 이러한 애플리케이션의 예로는 Grafana, Netdata, Prometheus 등이 있습니다.

결론

클라우드에서 가용성, 확장성, 성능이 얼마나 중요한지는 아무리 강조해도 지나치지 않습니다. 세 가지 요소는 클라우드 공급업체로부터 얻을 수 있는 서비스 품질을 결정하고 궁극적으로 비즈니스의 성공 또는 실패를 결정합니다.