이 블로그는 기업이 실제로 직면하는 문제를 다루는 새로운 블로그 시리즈의 첫 글로, Volterra의 애플리케이션 전송 네트워크(ADN)가 이러한 문제를 어떻게 해결하는지 설명합니다. 이번 글에서는 전 세계 온라인 기업이 매일 마주하는 웹 애플리케이션 성능의 핵심 과제를 자세히 살펴봅니다. 대다수 소비자가 재택근무를 하면서 이 문제는 더욱 심화되고 있습니다. 여기서는 애플리케이션을 다시 작성하지 않고도 Volterra를 통해 기업이 웹 앱의 ‘거리 제약을 해소’하여 애플리케이션 성능을 77% 향상할 수 있는 방법을 설명합니다.
웹 앱 성능이란 무엇인가요?
웹 앱 성능은 일반적으로 최종 사용자가 페이지의 콘텐츠를 볼 수 있게 되기까지 걸리는 시간으로 측정합니다. 웹 개발자는 First Contentful Paint, Largest Contentful Paint, Document Complete 등의 여러 지표를 사용하여 웹 앱 성능을 측정합니다. 이 블로그에서는 웹 앱의 성능을 측정하는 지표로 ‘Document Complete’를 사용했습니다. 웹 개발자는 Web Page Test, Google Lighthouse, Rigor 등의 도구를 사용하여 이러한 지표를 측정합니다.
웹 앱 성능이 중요한 이유는 무엇인가요?
웹 앱 성능이 조금만 저하되어도 사용자 경험에 큰 영향을 미치며, 결과적으로 온라인 포털을 통한 매출에도 타격을 줍니다. 전자상거래 대기업 Amazon은 애플리케이션 성능이 1초 저하될 경우 16억 달러의 매출 손실이 발생한다고 보고했습니다. 다소 오래된 다음 보고서에서 Akamai가 밝힌 바와 같이, 여러 업종의 온라인 기업에서도 이와 유사한 경제적 영향이 나타납니다. Google과 Microsoft도 이와 비슷한 규모의 경제적 영향을 보고했습니다.

이러한 데이터는 온라인 기업들이 웹 애플리케이션 성능을 최우선으로 고려하고 있음을 분명히 보여줍니다.
어떤 과제가 있을까요?
전자상거래 분야의 온라인 기업을 구체적인 예로 들어보겠습니다. 많은 전자상거래 기업은 하나 또는 소수의 데이터 센터에서 웹 애플리케이션을 운영하며, 이러한 데이터 센터가 해당 기업의 사용자가 거주하는 모든 국가에 있는 것은 아닙니다. 사용자가 데이터 센터와 다른 국가나 지역에 있는 경우, 사용자와 데이터 센터 간의 높은 네트워크 지연 시간으로 인해 페이지를 불러오는 데 약 6~12초가 걸릴 수 있습니다. 앞서 언급했듯이 페이지 로드 시간이 5초를 넘으면 이탈 확률이 90%까지 증가합니다.
그림 2와 같이 웹 앱의 페이지 로드 과정을 세부적으로 살펴보겠습니다.

- 먼저 보안 SSL 세션이 설정되며, 이를 위해 사용자의 브라우저와 웹 앱 간에 6개의 메시지를 주고받아야 합니다.
- 다음으로, 웹 앱은 일반적으로 사용자의 브라우저에 저장된 쿠키를 사용하여 해당 사용자가 전자상거래 업체의 계정을 보유하고 있는지 확인합니다.
- 쿠키를 기반으로 사용자가 계정을 보유하고 있으면 로그인 페이지가 표시되고, 그렇지 않으면 비회원 결제 페이지가 표시됩니다.
지연 시간이 긴 링크(대서양 또는 태평양 횡단 링크일 수 있음)를 통해 전송할 때 보안 SSL 세션을 설정하는 데만 6개의 메시지가 필요하므로 페이지 로드 시간이 길어지고, 결과적으로 사용자 경험이 저하됩니다.
Volterra ADN은 어떻게 앱 성능을 개선할 수 있을까요?
이미지를 압축하거나 종속성을 최적화하여 페이지 로드 시간을 단축하는 등 애플리케이션을 최적화함으로써 웹 앱 성능을 개선하는 다양한 기법이 있습니다. 하지만 애플리케이션 설계에 영향을 미치는 비즈니스 요구 사항 때문에 이러한 최적화를 적용하지 못하는 경우가 많습니다. 최적화가 가능하더라도 앱을 개발한 개발자가 이미 조직을 떠났거나 새로운 서비스 개발로 바쁜 경우에는 현실적인 선택지가 아닐 수 있습니다. 따라서 전자상거래 기업의 DevOps 팀은 애플리케이션을 변경하지 않고도 앱 성능을 개선할 수 있는 솔루션을 중요하게 생각합니다.
Volterra는 VoltMesh와 VoltStack이라는 두 가지 제품을 제공합니다. 이 제품들을 Volterra의 ADN과 함께 사용하면 애플리케이션 성능을 최대 75%까지 향상할 수 있습니다(다음 섹션의 데모 참조). Volterra의 VoltMesh는 전 세계에 분산된 네트워킹 및 보안 제품으로, Volterra의 ADN에 구성하면 애플리케이션 가속 기능도 제공합니다. Volterra의 VoltStack은 분산형 애플리케이션 배포 및 수명 주기 관리 기능을 제공하여, 사용자가 애플리케이션의 일부를 Volterra의 ADN으로 오프로드함으로써 애플리케이션 성능을 더욱 향상할 수 있도록 지원합니다.
VoltMesh와 VoltStack은 다음 세 가지 방식으로 전자상거래 기업의 웹 애플리케이션 성능 문제를 해결합니다
솔루션 1: Volterra ADN에서 SSL 종료(일명 TLS 오프로딩)
웹 앱 성능을 개선하는 가장 간단한 방법은 Volterra의 글로벌 ADN에서 SSL 세션을 종료하는 것입니다. SSL 세션을 설정하기 위한 6개의 메시지는 해당 국가 내 글로벌 네트워크 에지로 전송되므로 대서양 또는 태평양 횡단 링크를 거치지 않습니다. 원격 Volterra 글로벌 네트워크 사이트와 오리진 서버 간에는 SSL 세션이 지속적으로 유지되어 성능이 더욱 향상됩니다. 이는 그림 3과 같이 시각화할 수 있습니다.

솔루션 2: 쿠키 처리와 같이 지연 시간에 민감한 처리를 Volterra ADN으로 이전
성능을 더욱 향상하기 위해 기업은 앱에서 지연 시간에 민감한 부분을 ADN에 배포할 수 있습니다. 웹 앱에서 지연 시간에 민감한 부분의 예로는 쿠키 처리, GraphQL, BFF(Backend-for-Frontend) 등이 있습니다. 전자상거래 기업의 경우 일반적으로 쿠키를 처리하여 사용자에게 어떤 페이지를 표시할지 결정합니다. 예를 들어 사용자에게 계정이 있으면 로그인 페이지를 표시하고, 그렇지 않으면 비회원 페이지를 표시합니다. 전 세계 반대편에 있는 중앙 집중식 데이터 센터나 클라우드에서 쿠키를 처리하는 것보다 ADN에서 쿠키를 처리하면 성능이 크게 향상됩니다. 이는 그림 4와 같이 시각화할 수 있습니다.

솔루션 3: 웹 앱의 프런트엔드(예: 제품 카탈로그) 자체를 엣지, 즉 오프라인 매장으로 이동
Macy’s, Home Depot, Target와 같은 많은 유통업체는 오프라인 매장도 운영하며, 소비자는 매장 안에서 온라인 제품 카탈로그를 살펴보면서 상품 위치를 확인하고 할인/쿠폰을 이용합니다. 사용자 경험을 개선하기 위해 웹 앱의 프런트엔드만 매장 내 컴퓨팅 환경으로 이전할 수 있습니다. 데이터베이스 등 앱의 나머지 구성 요소는 프런트엔드 제품 카탈로그만큼 자주 액세스되지 않으므로 백엔드 데이터 센터에 그대로 둘 수 있습니다. 이는 그림 5와 같이 시각화할 수 있습니다.

모든 솔루션에서 고려해야 할 핵심 아키텍처 원칙
이 문제는 근본적으로 서로 다른 여러 클라우드에 걸친 분산 컴퓨팅 문제입니다. DevOps 팀은 퍼블릭 클라우드 제공업체, CDN 제공업체 또는 엣지 제공업체 등 여러 공급업체의 개별 솔루션을 조합해 직접 구축하거나, 분산 클라우드 서비스 플랫폼 제공업체의 패키지형 솔루션을 구매할 수 있습니다. 관련 과제는 그림 6에 나와 있습니다.

DevOps 팀이 솔루션을 평가할 때 고려해야 할 핵심 아키텍처 원칙은 다음과 같습니다.
- 여러 클라우드에서 일관된 애플리케이션 런타임 환경: DevOps 팀의 애플리케이션은 프라이빗 데이터 센터 또는 퍼블릭 클라우드일 수 있는 백엔드 클라우드와 엣지 위치 및 오프라인 매장 위치에 분산되며, 각 위치의 애플리케이션 런타임 환경은 완전히 다를 수 있습니다. DevOps 팀은 이렇게 분산된 모든 클라우드에서 일관된 애플리케이션 런타임 환경을 제공하기 위해 Kubernetes를 활용하는 솔루션을 적극적으로 고려해야 합니다. Kubernetes는 클라우드 환경을 표준화하여 애플리케이션의 일부를 클라우드 간에 손쉽게 이동할 수 있도록 합니다.
- 지리적 근접성 기반 트래픽 라우팅: 애플리케이션의 프런트엔드는 클라우드, 엣지 또는 오프라인 매장의 엣지 등 서로 다른 위치에 배포될 수 있으므로, 모든 솔루션은 사용자 트래픽이 프런트엔드 서비스가 배포된 가장 가까운 위치로 전달되도록 해야 합니다. 또한 고려하는 솔루션은 DevOps 팀이 인터넷 라우팅 정책을 변경하지 않아도 되는 것이어야 합니다.
- 글로벌 부하 분산: 백엔드 서비스가 전 세계 여러 위치에 분산되어 있을 수 있으므로, 고려하는 모든 솔루션은 글로벌 부하 분산 기능을 제공해야 합니다.
- 여러 클라우드에 걸쳐 일관된 애플리케이션 및 네트워크 보안 정책: 애플리케이션 구성 요소의 위치는 리전에 따라 달라질 수 있지만, 고려하는 모든 솔루션은 프런트엔드 서비스가 배포되는 클라우드와 관계없이 일관된 애플리케이션 및 네트워크 보안 정책을 적용할 수 있어야 합니다.
- 여러 클라우드와 애플리케이션 및 네트워크 연결 전반을 아우르는 단일 창 기반의 가시성: 분산 클라우드 환경에서는 여러 클라우드에 걸친 애플리케이션 및 연결 문제를 해결하기가 매우 어렵습니다. 고려하는 모든 솔루션은 여러 클라우드의 연결, 보안 및 애플리케이션 배포 전반을 단일 창에서 관찰할 수 있는 가시성을 제공해야 합니다.
Volterra 솔루션을 통해 달성한 성과
테스트 환경
다음에 설명하는 테스트 설정은 이전 섹션에서 설명한 각 Volterra 솔루션이 제공하는 성능 향상을 입증하는 데 사용되었습니다:
- 사용된 웹 앱은 Online Boutique로, Google에서 제공하는 클라우드 네이티브 마이크로서비스 데모 애플리케이션입니다. 이 웹 앱은 그림 7과 같이 11개의 마이크로서비스로 구성됩니다.

- 웹 앱 성능은 webpagetest.org를 사용하여 측정했습니다.
- webpagetest.org에서 웹 앱 성능을 측정하는 데 사용된 지표는 ‘Document Complete’였습니다.
- 해당 기업은 파리에 데이터 센터를 둔 유럽의 전자상거래 회사입니다.
- 사용자(또는 클라이언트)는 항상 샌프란시스코에 있습니다.
테스트 시나리오 및 결과
다음 네 가지 시나리오를 테스트했으며, 각 시나리오별 성능 개선 사항을 설명합니다.
기준 시나리오: 먼저 그림 8과 같이 사용자는 샌프란시스코에 있고 웹 앱은 전적으로 파리 데이터 센터에서 실행되는 환경을 기준으로 웹 앱의 성능을 측정했습니다. 기준 시나리오에서 웹 앱의 성능은 3.5초로 측정되었습니다.

솔루션 1 테스트 시나리오: 솔루션 1 테스트에서 사용자는 여전히 샌프란시스코에 있고 웹 앱도 여전히 파리 데이터 센터에서 실행되지만, SSL 세션은 산호세의 Volterra ADN에서 실행되는 VoltMesh 리버스 프록시에서 종료됩니다. 이 시나리오는 그림 9에 나와 있습니다.

VoltMesh는 산호세 PoP에서 실행되는 리버스 프록시와 파리 데이터 센터에서 실행되는 웹 앱 간에 지속적인 SSL 세션을 자동으로 생성합니다. 웹 앱의 성능은 2.9초로 향상되었으며, 이는 약 18% 개선된 수치입니다.
솔루션 2 테스트 시나리오: 솔루션 2 테스트에서는 프런트엔드와 통화 마이크로서비스를 산호세의 ADN에 배포합니다. 나머지 마이크로서비스와 데이터베이스는 계속 파리 데이터 센터에서 실행됩니다. 이 시나리오는 그림 10에 나와 있습니다.

프런트엔드 및 통화 마이크로서비스만 이전하는 이유는 사용자가 가볍게 둘러보는 동안에는 이 마이크로서비스들만 사용되기 때문입니다. 웹 앱의 성능은 2초로 향상되며, 이는 솔루션 1의 결과보다 31% 개선된 수치입니다.
솔루션 3 테스트 시나리오: 솔루션 3 테스트에서는 프런트엔드 및 통화 마이크로서비스를 오프라인 매장의 엣지에 있는 범용 Intel NUC(가상 코어 4개)에 배포했습니다.

프런트엔드 및 통화 마이크로서비스만 이전하는 이유는 실제 매장의 엣지 환경에서 사용자가 가볍게 둘러보는 동안에는 이 마이크로서비스들만 사용되기 때문입니다. 웹 앱의 성능은 0.8초로 향상되며, 이는 솔루션 2의 결과보다 60% 개선된 수치입니다.
결과 요약 및 경제적 가치
테스트 결과와 그에 따른 경제적 가치는 그림 12에 요약되어 있습니다. 경제적 가치는 초 단위의 개선 폭에 각 1초의 개선이 조직에 제공하는 가치를 적용하여 추산할 수 있습니다. 예를 들어 Amazon은 1초의 개선마다 16억 달러의 경제적 가치가 발생한다고 평가합니다. 따라서 솔루션 3은 기준선 대비 43억 달러의 경제적 가치를 제공합니다.

이러한 결과에서 알 수 있듯이, DevOps 팀은 애플리케이션에 동일한 수준의 보안 보호를 유지하면서도 애플리케이션을 다시 작성하지 않고 이 블로그에서 제안한 세 가지 옵션을 활용해 성능을 크게 향상할 수 있습니다. 분산 클라우드 플랫폼으로 해결할 수 있는 실제 고객 사용 사례에 대해 자세히 알아보고 싶거나 저와 공유할 실제 고객 사용 사례가 있다면 언제든지 LinkedIn 또는 Twitter를 통해 연락해 주세요.
작성자 소개

관련 블로그 게시물
성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A
F5의 ‘성평등을 향한 여정’ 시리즈 네 번째 Q&A에서는 Rachael Shah와 NGINX 제품 마케팅 책임자 Jenn Gile이 사이버 보안 직종에 대한 오해를 바로잡고, 사이버 보안 분야의 성별 격차를 해소하기 위한 조언과 그 이점에 대해 이야기합니다.
TLS 검사에서 피터 파커 원칙 다루기
“큰 힘에는 큰 책임이 따른다.” 볼테르와 처칠도 이와 비슷한 말을 남겼지만, 이 문구는 스파이더맨 코믹스에서 벤 삼촌의 말로 가장 널리 알려져 있습니다. 물론 이 문구가 문화적으로 널리 통용되는 이유 중 하나는 TLS 검사를 비롯해 수많은 상황과 주제에 적용할 수 있기 때문입니다.
Venafi와 F5를 통한 머신 아이덴티티 보호
‘머신 아이덴티티’란 간단히 말해 자동화된 프로세스가 자신의 신원을 식별할 수 있도록 하고, 다른 자동화 시스템과 프로세스가 관련 리소스에 적절한 수준의 접근 권한을 부여하도록 하는 방법을 의미합니다. 이 개념 자체는 새로운 것이 아닙니다. 비교적 새로운 점은 이를 구현해야 하는 규모입니다.
마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다
물론 데이터 유출은 더 큰 비용을 초래할 수 있고(적어도 지금은), 실패 사실을 세상에 드러낼 수밖에 없게 합니다(통지 의무가 있으니까요). 하지만 보안을 단순히 데이터 노출 문제로만 봐서는 안 됩니다. 요즘은 데이터가...
내 클라우드에서 나가!
F5의 Jay Kelley가 전하는 최신 소식에는 Microsoft Office 365용 신규 ID 및 액세스 솔루션을 배포할 때 고려해야 할 사항이 정리되어 있습니다.
Shift(웹 앱) 보안 레터
웹 앱 보안을 개발 초기 단계로 앞당기세요. F5 블로그에서 DevOps 파이프라인 초기에 보안을 통합하여 취약점을 예방하고 시간을 절약하는 방법을 알아보세요.