vCloud Air 성능 향상을 위한 6가지 팁

VMware의 클라우드 오퍼링인 vCloud Air 는 VMware가 가상화에 뿌리를 두고 있는 몇 가지 측면을 그대로 유지하고 있습니다. NGINX Plus 와 NGINX 오픈소스는 클라우드 구현과 기업 소프트웨어의 현장 배포 사이의 간극을 좁히는 데 도움이 됩니다.

vCloud Air는 vCentervRealize와 같은 VMware 자체 관리 도구를 선호하며, 이는 고객의 하드웨어와 방화벽 내부에서 실행되는 고객의 개인 클라우드와 원활하게 상호 운용됩니다.

NGINX는 AWS에서 매우 인기가 있으며, 모든 AWS 구현의 40%에서 사용됩니다. (이는 전 세계에서 가장 바쁜 100만 개의 웹 사이트에서 NGINX 사용량과 일치합니다.)
vCloud Air 에 대한 통계는 제공되지 않지만, NGINX는 VMware 세계에서도 점점 인기가 있는 것으로 보입니다.

해당 포스트에서 제공하는 vCloud Air 성능 향상 팁이 현재 성능을 향상시키는 데 도움이 되고, 미래의 성장과 개선을 위한 새로운 도구와 접근 방식을 소개하는 데 도움이 되기를 바랍니다.

목차

1. vCloud Air 성능 계획
 1-1. 클라우드 이동 계획 고려
2. vCloud Air 구현 최적화
3. vCloud Air Reverse Proxy 서버 구현
4. 정적 및 동적 파일 Cache
5. vCloud Air 로드 밸런싱 구현
6. vCloud Air 앱 성능 벤치마킹 및 모니터링
7. 결론

1. vCloud Air 성능 계획

클라우드 컴퓨팅은 조직이 문제를 더 빠르고 적은 비용으로 해결할 수 있도록 도와주지만, 모든 형태의 컴퓨팅에는 도전 과제가 있습니다. 기존 투자를 최대한 활용하고 새로운 투자를 현명하게 진행하기 위해 신중하게 계획해야 합니다.

이 문제는 특히 VMware 고객들에게 더욱 중요한 문제입니다.
많은 고객들이 기존 애플리케이션을 확장하거나, 레거시 도구, 소프트웨어 라이선스 및 워크플로우 접근 방식을 사용하는 개발자들이 클라우드로의 전환을 원활하게 하기 위해 vCloud Air 를 사용하고 있습니다.
영국에서 최근 발표된 공공 부문의 클라우드 컴퓨팅 도입에 관한 보고서에 따르면, 응답자의 80% 이상이 클라우드 배포에서 어느 정도의 숨겨진 비용을 발견했다고 보고되었습니다.

조사 대상자 중 44%에 영향을 미치는 가장 큰 문제는 기존 IT 인프라와 새로운 클라우드 플랫폼 간의 상호 운용성입니다.
이는 VMware가 vCloud Air 를 통해 기존 고객들에게 일을 더 쉽게 작업할 수 있기를 바라는 영역입니다.
기존의 내부 배포가 합리적인 경우, vCloud Air 선택과 다른 공급업체가 제공하는 “순수 클라우드” 접근 방식이 장기적으로 더 나은 경우가 있을 수 있습니다.

1-1. 클라우드 이동 계획 고려

클라우드로의 원활한 이전을 위해 다음 계획을 고려해보세요.

  1. 작게 시작 – 현재 클라우드에서 가장 명백하게 의미가 있는 애플리케이션, 예를 들어 현재 클라우드에서 잘 작동하는 앱과 유사한 새로운 앱을 사용하세요. DevOps 접근 방식을 사용하고 현재의 작업 방식에 얼마나 많은 변화가 필요한지 확인하세요.
  2. 예측 – 3-5년 동안의 시간표를 기반으로 필요한 것이 어디로 향하고 있는지 확인하세요. (경쟁 환경과 고객 기대가 대부분의 기업에서 IT 혁신으로 인해 빠르게 변화하고 있으므로 쉽지 않습니다.) 향후 IT 서비스에 가장 적합한 아키텍처를 식별하세요, 특히 어떤 사설 클라우드 서비스와 공용 클라우드 서비스를 혼합할 것인지 식별하십시오.
  3. 역추적 – 어디로 가고 싶은지 알게 되면, 미래의 자신을 상상하고 현재의 환경에서 새로운 환경에 도달하는 방법을 설명하세요. 현재 사용 가능한 기술 중에서 빠르게 포기할 것, 전환을 용이하게하기 위해 일시적으로 채택할 것, 그리고 앞으로 의지할 것을 식별하세요.
  4. 재교육 및 고용 – 내부 인재를 현재의 위치에서 향하는 곳에 장착시킬 프로젝트와 기술 개발로 이동시키고, 어떤 부분을 채우기 위해 고용해야 할지 확인하세요.

여기에 나열된 팁들과 NGINX 블로그의 대부분의 제안은 공통적인 패턴을 따릅니다.
기존 애플리케이션에 최소한의 초기 변경을 가하면서, 빠르고 비용 효율적으로 마이크로서비스 유형의 아키텍처로 전환을 시작합니다.
이러한 접근 방식은 매우 유연하며 내부, 사설 클라우드 및 공용 클라우드 배포에서 반복적으로 사용할 수 있습니다.

장기적인 요구 사항 중 많은 부분이 마이크로서비스 접근 방식을 통해 가장 잘 충족될 것으로 예상됩니다.
대규모 애플리케이션을 반응성이 뛰어나고 재사용 가능한 서비스의 집합으로 분해하여 고객 요구 사항을 충족시키기 위해 혼합 및 조합할 수 있습니다. 또한 서비스 지향 아키텍처 (SOA) 접근 방식의 요소를 사용할 수도 있습니다.

여기에 나열된 팁들과 NGINX 블로그의 대부분의 제안은 공통적인 패턴을 따릅니다.
기존 애플리케이션에 최소한의 초기 변경을 가하면서, 빠르고 비용 효율적으로 마이크로서비스 유형의 아키텍처로 전환을 시작합니다. 이렇게 하면 즉시 비용을 절감할 수도 있습니다.
그런 다음 시간이 지남에 따라 기회가 있을 때 추가적인 변경을 수행할 수 있습니다. 이 접근 방식은 매우 유연하며 내부, 개인 클라우드 및 공용 클라우드 배포에서 반복적으로 사용할 수 있습니다.

2. vCloud Air 구현 최적화

VCloud Air 구현은 물리적 서버와 마찬가지로 조정과 조정이 필요합니다.
실제로 vCloud Air 는 다른 일부 공용 클라우드보다 더 기계에 의존적일 수 있습니다. vCloud Air 환경의 작동을 개선하기 위해 다음 단계를 고려해보세요.

  • 네트워킹에 VMXNET3 네트워킹 사용 – VMXNET3는 최신의 비표준 가상 네트워크 어댑터입니다. VMware 관리 도구를 설치하세요. 이 도구는 직접적으로 성능을 향상시키지는 않지만 파일 관리를 쉽게 할 수 있게 해줍니다.
    다른 클라우드로의 이식성은 줄어들 수 있습니다. NGINX는 이 환경 내에서 엔진으로 실행될 수 있습니다.
  • 필요한 메모리와 CPU 확보 – vCenter에서 VM이 사용할 서버 리소스를 필요한 만큼 예약할 수 있습니다.
    전체 물리적 머신을 포함하여 필요한 리소스의 최대치를 알고 있다면, 미리 모든 리소스를 할당하는 것이 성능을 향상시킵니다.
    미리 할당함으로써 작업 공간이 커지고 줄어들 때 CPU 또는 메모리를 재할당하는 작업으로 작업이 중단되지 않습니다.
  • 필요한 모든 디스크 가져오기 – CPU와 메모리와 마찬가지로, 사용할 가능성이 있는 최대 디스크 공간을 미리 할당함으로써 디스크 공간 할당 및 해제 작업이 필요하지 않습니다.

물론, 이러한 단계 중 일부는 필요한 만큼 사용한 다음 다시 돌려주는 가상화의 전제를 약화시킵니다.
그러나 관리 소프트웨어가 갖고 있지 않은 애플리케이션에 대한 정보를 가지고 있습니다.
이 정보를 사용하여 관리 소프트웨어에 대한 지속적인 조정의 필요성을 줄일 수 있습니다.

3. vCloud Air Reverse Proxy 서버 구현

Reverse Proxy 서버는 애플리케이션 서버 앞에 배치하는 서버입니다.
Reverse Proxy 서버는 인터넷 클라이언트(일반적으로 웹 브라우저)로부터 트래픽을 받아들이며, 웹사이트로의 단일 진입점 역할을 합니다.
Reverse Proxy 서버는 요청을 백엔드 서버로 분배합니다(일부는 자체적으로 처리할 수도 있음).

Reverse Proxy 서버는 애플리케이션 서버를 인터넷 트래픽으로부터 직접 격리시키는 역할을 하며, 또한 사용자인 인터넷 클라이언트도 애플리케이션 서버로부터 직접 노출되지 않도록 격리시킵니다. Reverse Proxy 서버는 다음과 같은 많은 이점을 제공합니다.

  • 과부하나 충돌이 발생한 서버가 아닌 처리할 수 있는 서버로 트래픽을 전달할 수 있습니다.
  • 정적 파일을 캐시하여 애플리케이션 서버가 해당 요청을 처리하지 않아도 되도록 할 수 있습니다.
  • SSL/TLS 및 HTTP/2와 같은 새로운 프로토콜을 지원할 수 있습니다.
  • 서로 다른 유형과 용량의 서버를 리소스 영역으로서 모니터링하고 관리할 수 있는 중심점을 제공합니다. 이는 한 번에 하나의 장치(물리적 또는 가상)가 아닌 것입니다.

Reverse Proxy 서버를 구현하는 것은 마이크로서비스 기반 아키텍처(MSA)로 전환하는 첫 번째이자 가장 중요한 단계입니다.
이를 통해 마이크로서비스를 구현하기 위해 필요한 다른 큰 그림 단계를 수행할 수 있는 아키텍처적 유연성을 제공하며, 고가용성과 같은 주요한 마이크로서비스 이점을 제공하고 개별 앱을 마이크로서비스로 이동시키는 동안 별도의 디버깅 서버와 같은 특수 서비스를 추가할 수 있습니다.
또한, 개별 앱을 마이크로서비스로 이동시키는 속도는 사용자의 판단에 따라 조절할 수 있습니다.

NGINX 리버스 프록시 서버와 같은 리버스 프록시 서버는 트래픽을 분산하고 유연성을 제공합니다.

Reverse Proxy 서버는 직접 제어하는 서버를 사용할 때보다 클라우드에서 더 중요합니다.
클라우드에서는 성능과 가용성을 예측하기가 더 어렵기 때문에, 기존 리소스의 성능이 좋지 않을 때 새로운 리소스를 생성하는 것이 클라우드에서는 더 쉽습니다.
Reverse Proxy 서버를 사용하면 특정 리소스의 상태와 관계없이 작업을 수행할 수 있는 유연성을 제공합니다.

4. 정적 및 동적 파일 Cache

리버스 프록시 서버로 NGINX를 사용하는 큰 장점 중 하나는 정적 파일을 캐시할 수 있는 능력입니다.
캐싱을 통해 많은 웹사이트에서 약 절반에 해당하는 파일 요청이 리버스 프록시 서버에서 처리되어 애플리케이션 서버의 부담을 크게 줄일 수 있습니다.

캐시된 파일의 저장 공간 및 검색 성능은 비교적 예측 가능하여 애플리케이션의 성능 변동성과 페이지 로딩 시간을 줄일 수 있습니다.

성능을 최적화하기 위해 캐시된 파일을 다른 위치로 이동할 수 있습니다. 또한, 특정 CPU, 메모리 및 저장소 요구 사항에 맞는 클라우드 인스턴스를 선택하는 것도 중요합니다.

리버스 프록시 서버를 캐싱에 사용하고 애플리케이션을 실행하는 별도의 서버를 사용함으로써 두 인스턴스를 최적화할 수 있습니다.

  • 리버스 프록시 서버는 NGINX를 실행하며, NGINX는 많은 동시 사용자를 지원할 때에도 메모리를 보수적으로 사용하여 제한적이고 예측 가능한 RAM 요구 사항이 있습니다.
    캐싱에 사용될 때, 서버는 정적 파일의 디스크 공간 요구 사항의 합으로 예측 가능한 큰 디스크 요구 사항이 있습니다.
  • 애플리케이션 서버는 PHP와 같은 애플리케이션 소프트웨어를 실행하므로 가변적이고 예측하기 어려운 RAM 요구 사항이 있습니다.
    정적 파일은 모두 캐싱 서버에 있으므로 제한적인 디스크 액세스 요구 사항이 있습니다

이러한 업무 분담은 동시에 비용을 절약하고 성능을 향상시킬 수 있습니다.
인스턴스가 최적화되면 런타임 중 성능을 향상시키기 위해 필요한 리소스를 미리 확보할 수 있습니다.
또한, 이러한 세밀하게 조정된 인스턴스는 전체 리소스 사용량을 줄이고 이로 인해 비용을 절감할 수 있습니다.

동적 파일은 약간 덜 동적으로 만들어져서 캐시될 수도 있습니다. 이를 마이크로캐싱이라고 합니다.
예를 들어, 애플리케이션 서버가 초당 10개의 요청을 받는다면, 해당 페이지를 1초 동안만 캐시할 수 있습니다. 첫 번째 요청은 새로운 페이지를 생성하지만, 그 다음 9개의 요청은 캐시에서 가져옵니다. 1초가 지나기 전까지는 새로운 페이지를 다시 생성할 필요가 없습니다.

5. vCloud Air 로드 밸런싱 구현

로드 밸런싱은 여러 애플리케이션 서버에 요청을 분산시켜 하나의 서버가 병목 현상이 되는 것을 막는 것을 목표로 합니다.
클라우드 환경에서 서버 성능은 직접 제어하는 서버를 사용할 때보다 더 가변적입니다. 따라서 클라우드에서 로드 밸런싱은 다른 곳보다 더 중요합니다.

로드 밸런싱은 클라우드 환경에서 발생할 수 있는 여러 성능 문제를 해결하는 데 도움이 됩니다.

  • 메모리 부족 – 인스턴스에서 메모리가 부족해지는 일이 너무나 쉽게 발생할 수 있습니다.
    로드 밸런싱은 여기에 나열된 다른 팁과 함께 각 인스턴스에 대한 요구 사항을 사용 가능한 메모리에 맞게 조정하는 데 도움을 줍니다.
  • 일관되지 않은 성능 – 동일한 유형의 인스턴스들은 성능이 다를 수 있습니다.
    로드 밸런싱은 일시적인 문제, 시간이 지남에 따른 성능 저하 또는 과부하로 인한 병목 현상을 피할 수 있도록 도와줍니다.
  • 대역폭 제약 – 클라우드 스토리지 볼륨은 하드웨어 디스크보다 대역폭이 적을 수 있습니다.
    로드 밸런싱과 여기에 나열된 다른 팁은 인스턴스 간에 대역폭 요구를 분산시키는 데 도움을 줍니다.

vCloud Air 는 vCloud 내에서 로드 밸런싱을 위한 여러 옵션을 제공합니다.
이러한 옵션들은 유용하지만 다른 곳에서 제공되는 로드 밸런싱 및 기타 옵션들만큼 강력하지는 않습니다.

NGINX 오픈소스와 NGINX Plus 는 모두 로드 밸런싱을 지원합니다. NGINX에서의 로드 밸런싱은 특정 클라우드나 서버 공급업체와는 독립적입니다. 더 많은 제어를 위해서는 NGINX Plus 를 사용하세요. NGINX Plus 는 더 뛰어난 구성 제어, 정확한 로깅, 더 많은 로드 밸런싱 옵션, 애플리케이션 Health Checks, 세션 지속성, SSL Termination, HTTP/2 Termination, WebSocket 지원, 캐싱 및 로드 밸런싱된 서버 그룹의 동적 구성 등을 제공합니다.

6. vCloud Air 앱 성능 벤치마킹 및 모니터링

클라우드로의 이동을 위한 이유는 유연성, 더 큰 성능 및 비용 절감입니다. 클라우드 기반 앱의 비용은 기존 호스팅 앱과는 매우 다릅니다.
클라우드 구현과 다른 구현을 비교하고 사용자에게 더 나은 서비스를 제공하기 위해 앱 성능을 벤치마크하고 모니터링해야 합니다.

설정한 기준과 비교하기 위해 분 단위로 측정하고 비교할 수 있는 여러 매개변수가 있습니다. 이에는 다음이 포함됩니다.

  • 화면에 첫 번째 바이트가 나타나는 시간
  • 전체 페이지의 로드 시간
  • 시작된 트랜잭션 수
  • 완료된 트랜잭션 수

또한 앱 개발 시간과 지원 요구 사항을 측정하고 모니터링하여 전체적인 상황을 파악할 수도 있습니다.
이 정보를 가지고 있으면 병목 현상을 완화하기 위해 사용 가능한 자원을 늘릴 수 있을 뿐만 아니라 불필요한 자원을 줄여 비용을 절감할 수도 있습니다.

vCloud Air 에는 기본 메트릭을 포함한 모니터링 탭이 있습니다. 또한 vRealize Operations Manager를 사용하여 로컬 서버와 애플리케이션을 모니터링할 수도 있습니다.
vCenter Hyperic은 온프레미스 및 vCloud Air 인스턴스 전체에서 모니터링 정보를 수집하고 vRealize Operations Manager로 반환합니다.

NGINX Plus 는 Advanced Health Checks 및 정교한 Live activity Monitoring을 추가합니다. NGINX Plus 대시보드를 직접 확인하거나 NGINX Plus 통계를 다른 대시보드 및 제3자 도구에 제공할 수 있습니다.
서버, 그룹 별 전체 배포 범위에서 연결, request, uptime 등의 통계를 얻을 수 있습니다.

7. 결론

vCloud Air 는 앱 배포 옵션을 크게 향상시킬 수 있습니다. 여기 제안된 단계들은 vCloud Air 의 성능을 향상시키면서 비용을 절약하는 가치있는 방법입니다.

이러한 단계들은 비클라우드 및 혼합 배포에도 가치가 있습니다.
예를 들어, 리버스 프록시 서버를 사용하는 것과 같은 유연성을 통해 모든 종류의 환경에서 리소스를 혼합하여 사용할 수 있습니다.

NGINX Plus 는 클라우드 및 혼합 배포에 특히 유용한 도구로, 부하 분산 옵션과 모니터링 개선 사항을 포함하고 있습니다. 30일 무료 평가판을 시작하거나 사용 사례에 대해 논의하기 위해 NGINX STORE에 문의하십시오.

아래 뉴스레터를 구독하고 NGINX와 NGINX STORE의 최신 정보들을 빠르게 전달 받아보세요.