Azure CDN을 통해 동적 사이트 가속Dynamic site acceleration via Azure CDN

소셜 미디어소셜 미디어, 전자 상거래 및 하이퍼 개인 설정 웹의 폭발적 증가로 인해 최종 사용자에게 제공되는 콘텐츠의 증가율도 실시간으로 빠르게 성장합니다.With the explosion of social media, electronic commerce, and the hyper-personalized web, a rapidly increasing percentage of the content served to end users is generated in real time. 사용자는 브라우저, 위치, 장치 또는 네트워크와 독립된 빠르고 안정적인 개인 설정 웹 환경을 기대합니다.Users expect a fast, reliable, and personalized web experience, independent of their browser, location, device, or network. 그러나 이러한 환경을 구성하는 매우 혁신적인 기능도 페이지 다운로드 속도를 저하시키고 소비자 환경의 품질을 위험에 노출합니다.However, the very innovations that make these experiences so engaging also slow page downloads and put the quality of the consumer experience at risk.

표준 CDN(콘텐츠 배달 네트워크) 기능에는 고정 파일의 배달 속도를 향상시키기 위해 파일을 최종 사용자에게 가깝게 캐시하는 기능이 포함됩니다.Standard content delivery network (CDN) capability includes the ability to cache files closer to end users to speed up delivery of static files. 그러나 동적 웹 응용 프로그램에서 서버가 사용자 동작에 대한 응답으로 콘텐츠를 생성하기 때문에 에지 위치에 해당 콘텐츠를 캐싱할 수 없습니다.However, with dynamic web applications, caching that content in edge locations isn't possible because the server generates the content in response to user behavior. 이러한 콘텐츠의 배달 속도를 향상시키는 작업은 기존의 에지 캐싱보다 더 복잡하고 배달할 전체 데이터 경로에 있는 각 요소를 처음부터 세밀하게 조정하는 종단 간 솔루션이 필요합니다.Speeding up the delivery of such content is more complex than traditional edge caching and requires an end-to-end solution that finely tunes each element along the entire data path from inception to delivery. Azure CDN DSA(동적 사이트 가속) 최적화를 사용하여 동적 콘텐츠가 포함된 웹 페이지의 성능이 크게 향상되었습니다.With Azure CDN dynamic site acceleration (DSA) optimization, the performance of web pages with dynamic content is measurably improved.

Akamai의 Azure CDNVerizon의 Azure CDN은 끝점을 만드는 동안 최적화 목표 메뉴를 통해 DSA 최적화를 제공합니다.Azure CDN from Akamai and Azure CDN from Verizon both offer DSA optimization through the Optimized for menu during endpoint creation.

중요

Akamai의 Azure CDN 프로필의 경우 CDN 엔드포인트를 만든 후에 최적화를 변경할 수 있습니다.For Azure CDN from Akamai profiles, you are allowed to change the optimization of a CDN endpoint after it has been created.

Verizon의 Azure CDN 프로필의 경우 CDN 엔드포인트를 만든 후에 최적화를 변경할 수 없습니다.For Azure CDN from Verizon profiles, you cannot change the optimization of a CDN endpoint after it has been created.

동적 파일 배달을 가속화하도록 CDN 엔드포인트 구성CDN endpoint configuration to accelerate delivery of dynamic files

동적 파일 배달을 최적화하도록 CDN 엔드포인트를 구성하려면 Azure Portal, REST API 또는 클라이언트 SDK 중 하나를 사용하여 프로그래밍 방식으로 동일한 작업을 수행하면 됩니다.To configure a CDN endpoint to optimize delivery of dynamic files, you can either use the Azure portal, the REST APIs, or any of the client SDKs to do the same thing programmatically.

Azure Portal을 사용하여 DSA 최적화를 위해 CDN 엔드포인트를 구성하려면:To configure a CDN endpoint for DSA optimization by using the Azure portal:

  1. CDN 프로필 페이지에서 엔드포인트를 선택합니다.In the CDN profile page, select Endpoint.

    새 CDN 엔드포인트 추가

    엔드포인트 추가 창이 나타납니다.The Add an endpoint pane appears.

  2. 최적화 목표에서 동적 사이트 가속을 선택합니다.Under Optimized for, select Dynamic site acceleration.

    DSA를 사용하여 새 CDN 엔드포인트 만들기

  3. 프로브 경로의 경우 파일에 올바른 경로를 입력합니다.For Probe path, enter a valid path to a file.

    프로브 경로는 DSA에 지정된 기능이고 생성을 위해 유효한 경로가 필요합니다.Probe path is a feature specific to DSA, and a valid path is required for creation. DSA는 원본 서버에 위치한 작은 프로브 경로 파일을 사용하여 CDN에 대한 네트워크 라우팅 구성을 최적화합니다.DSA uses a small probe path file placed on the origin server to optimize network routing configurations for the CDN. 프로브 경로 파일의 경우 사이트에 샘플 파일을 다운로드하고 업로드하거나 크기가 약 10KB인 원본의 기존 자산을 사용할 수 있습니다.For the probe path file, you can download and upload the sample file to your site, or use an existing asset on your origin that is about 10 KB in size.

  4. 다른 필수 엔드포인트 옵션(자세한 내용은 새 CDN 엔드포인트 만들기 참조)을 입력한 다음, 추가를 선택합니다.Enter the other required endpoint options (for more information, see Create a new CDN endpoint), then select Add.

    CDN 엔드포인트를 만든 후에 특정 조건에 맞는 모든 파일에 대해 DSA 최적화를 적용합니다.After the CDN endpoint is created, it applies the DSA optimizations for all files that match certain criteria.

DSA에 대한 기존 엔드포인트를 구성하려면(Akamai의 Azure CDN 프로필만 해당):To configure an existing endpoint for DSA (Azure CDN from Akamai profiles only):

  1. CDN 프로필 페이지에서 수정하려는 CDN 엔드포인트를 선택합니다.In the CDN profile page, select the endpoint you want to modify.

  2. 왼쪽 창에서 최적화를 선택합니다.From the left pane, select Optimization.

    최적화 페이지가 나타납니다.The Optimization page appears.

  3. 최적화 목표에서 동적 사이트 가속을 선택한 다음, 저장을 선택합니다.Under Optimized for, select Dynamic site acceleration, then select Save.

참고

DSA 사용 시 별도 요금이 발생합니다.DSA incurs extra charges. 자세한 정보는 Content Delivery Network 가격 책정을 참조하세요.For more information, see Content Delivery Network pricing.

Azure CDN을 사용하여 DSA 최적화DSA Optimization using Azure CDN

Azure CDN의 동적 사이트 가속은 다음 기술을 사용하여 동적 자산 배달 속도를 향상시킵니다.Dynamic Site Acceleration on Azure CDN speeds up delivery of dynamic assets by using the following techniques:

경로 최적화Route Optimization

인터넷이 매우 동적이기 때문에 경로 최적화가 중요합니다. 여기서 트래픽 및 일시적인 중단은 지속적으로 네트워크 토폴로지를 변경합니다.Route optimization is important because the Internet is a dynamic place, where traffic and temporarily outages are constantly changing the network topology. BGP(경계 게이트웨이 프로토콜)는 인터넷의 라우팅 프로토콜이지만 중계 PoP(Point of Presence) 서버를 통한 더 빠른 경로가 있을 수 있습니다.The Border Gateway Protocol (BGP) is the routing protocol of the Internet, but there may be faster routes via intermediary Point of Presence (PoP) servers.

경로 최적화는 사이트에 계속 액세스할 수 있고 동적 콘텐츠를 가능한 가장 빠르고 가장 안정적인 경로를 통해 최종 사용자에게 배달하도록 원본에 최적인 경로를 선택합니다.Route optimization chooses the most optimal path to the origin so that a site is continuously accessible and dynamic content is delivered to end users via the fastest and most reliable route possible.

Akamai 네트워크는 원본과 CDN 에지 간에 가장 빠른 경로를 결정하기 위해 오픈 인터넷에 기본 BGP 경로를 사용할 뿐만 아니라 실시간 데이터를 수집하고 Akamai 서버에서 다른 노드를 통한 다양한 경로를 비교하는 기술을 사용합니다.The Akamai network uses techniques to collect real-time data and compare various paths through different nodes in the Akamai server, as well as the default BGP route across the open Internet to determine the fastest route between the origin and the CDN edge. 이러한 기술은 인터넷 정체 지점과 긴 경로를 회피합니다.These techniques avoid Internet congestion points and long routes.

마찬가지로, Verizon 네트워크는 Anycast DNS, 고용량 지원 PoP 및 상태 점검 조합을 사용하여 클라이언트에서 원본까지 최상의 경로 데이터에 대한 최적의 게이트웨이를 결정합니다.Similarly, the Verizon network uses a combination of Anycast DNS, high capacity support PoPs, and health checks, to determine the best gateways to best route data from the client to the origin.

결과적으로 완전히 동적인 트랜잭션 콘텐츠를 캐시할 수 없는 경우에도 보다 빠르고 안정적으로 최종 사용자에게 전달할 수 있습니다.As a result, fully dynamic and transactional content is delivered more quickly and more reliably to end users, even when it is uncacheable.

TCP 최적화TCP Optimizations

TCP(Transmission Control Protocol)는 IP 네트워크의 응용 프로그램 간에 정보를 전달하는 데 사용되는 인터넷 프로토콜 모음의 표준입니다.Transmission Control Protocol (TCP) is the standard of the Internet protocol suite used to deliver information between applications on an IP network. 기본적으로 대규모의 비효율성이 발생하는 네트워크 정체를 방지하는 제한뿐만 아니라 TCP 연결을 설정하는 데 몇 가지 요청이 필요합니다.By default, several back-and-forth requests are required to set up a TCP connection, as well as limits to avoid network congestions, which result in inefficiencies at scale. Akamai의 Azure CDN은 3개의 영역을 최적화하여 이 문제를 다룹니다.Azure CDN from Akamai handles this problem by optimizing in three areas:

TCP 느린 시작 제거Eliminating TCP slow start

TCP 느린 시작은 네트워크를 통해 전송되는 데이터 양을 제한하여 네트워크 정체를 방지하는 TCP 프로토콜의 알고리즘입니다.TCP slow start is an algorithm of the TCP protocol that prevents network congestion by limiting the amount of data sent over the network. 이 기능은 최대값에 도달하거나 패킷 손실이 감지될 때까지 먼저 발신자와 수신자 사이의 작은 정체 창 크기로 시작합니다.It starts off with small congestion window sizes between sender and receiver until the maximum is reached or packet loss is detected.

Akamai의 Azure CDNVerizon의 Azure CDN은 모두 다음 세 가지 단계에서 TCP 느린 시작을 제거합니다.Both Azure CDN from Akamai and Azure CDN from Verizon profiles eliminate TCP slow start with the following three steps:

  1. 상태 및 대역폭 모니터링을 사용하여 에지 PoP 서버 간 연결의 대역폭을 측정합니다.Health and bandwidth monitoring is used to measure the bandwidth of connections between edge PoP servers.

  2. 에지 PoP 서버 간에 메트릭이 공유되므로 서버는 주위의 다른 PoP의 네트워크 조건 및 서버 상태에 대해 알게 됩니다.Metrics are shared between edge PoP servers so that each server is aware of the network conditions and server health of the other PoPs around them.

  3. CDN 에지 서버는 근접한 다른 CDN 에지 서버와 통신할 때 최적의 창 크기와 같은 일부 전송 매개 변수에 대해 가정합니다.The CDN edge servers make assumptions about some transmission parameters, such as what the optimal window size should be when communicating with other CDN edge servers in its proximity. 이 단계는 CDN 에지 서버 간의 연결 상태가 더 많은 패킷의 데이터를 전송할 수 있는 경우 초기 정체 창 크기를 늘릴 수 있음을 의미합니다.This step means that the initial congestion window size can be increased if the health of the connection between the CDN edge servers is capable of higher packet data transfers.

영구 연결 활용Leveraging persistent connections

CDN을 사용하면 원본에 직접 연결된 사용자와 비교하여 원본 서버에 연결된 고유한 컴퓨터 수가 줄어듭니다.Using a CDN, fewer unique machines connect to your origin server directly compared with users connecting directly to your origin. 또한 Azure CDN은 사용자 요청을 함께 풀링하여 원본과 연결 수를 줄입니다.Azure CDN also pools user requests together to establish fewer connections with the origin.

위에서 언급한 대로 몇몇 핸드셰이크 요청은 TCP 연결을 설정해야 합니다.As previously mentioned, several handshake requests are required to establish a TCP connection. Keep-Alive HTTP 헤더에서 구현하는 영구 연결은 여러 HTTP 요청에 기존 TCP 연결을 다시 사용하여 왕복 시간을 저장하고 배달 속도를 향상시킵니다.Persistent connections, which are implemented by the Keep-Alive HTTP header, reuse existing TCP connections for multiple HTTP requests to save round-trip times and speed up delivery.

또한 Verizon의 Azure CDN은 TCP 연결을 통해 정기적인 연결 유지 패킷을 보내서 열린 연결이 닫히지 않게 방지합니다.Azure CDN from Verizon also sends periodic keep-alive packets over the TCP connection to prevent an open connection from being closed.

TCP 패킷 매개 변수 조정Tuning TCP packet parameters

또한 Akamai의 Azure CDN은 다음 기술을 사용하여 서버 간 연결을 제어하는 매개 변수를 조정하고 사이트에 포함된 콘텐츠를 검색하는 데 필요한 긴 장거리 왕복 시간을 감소시킵니다.Azure CDN from Akamai tunes the parameters that govern server-to-server connections and reduces the amount of long-haul round trips required to retrieve content embedded in the site by using the following techniques:

  • 초기 정체 창을 증가시키면 승인을 기다리지 않고 더 패킷을 이동할 수 있습니다.Increasing the initial congestion window so that more packets can be sent without waiting for an acknowledgement.
  • 초기 재전송 시간 제한을 감소시키면 손실을 감지하고 재전송을 더 빠르게 수행할 수 있습니다.Decreasing the initial retransmit timeout so that a loss is detected, and retransmission occurs more quickly.
  • 전송 중에 손실된 패킷을 가정하기 전에 대기 시간을 줄이기 위해 최소 및 최대 재전송 시간 제한을 감소시킵니다.Decreasing the minimum and maximum retransmit timeout to reduce the wait time before assuming packets were lost in transmission.

개체 사전 인출(Akamai의 Azure CDN에만 해당)Object prefetch (Azure CDN from Akamai only)

대부분의 웹 사이트는 이미지 및 스크립트와 같은 다양한 리소스를 참조하는 HTML 페이지로 구성됩니다.Most websites consist of an HTML page, which references various other resources such as images and scripts. 일반적으로 클라이언트가 웹 페이지를 요청하면 브라우저는 먼저 HTML 개체를 다운로드하고 구문을 분석한 다음 전체 페이지를 로드하는 데 필요한 연결된 자산을 추가로 요청합니다.Typically, when a client requests a webpage, the browser first downloads and parses the HTML object, and then makes additional requests to linked assets that are required to fully load the page.

사전 인출은 HTML이 브라우저에 제공되는 반면 브라우저에서 이러한 개체를 요청하기 전에 HTML 페이지에 포함된 이미지 및 스크립트를 검색하는 기술입니다.Prefetch is a technique to retrieve images and scripts embedded in the HTML page while the HTML is served to the browser, and before the browser even makes these object requests.

사전 인출 옵션을 사용하면 CDN이 HTML 기반 페이지를 클라이언트의 브라우저에 제공하는 시점에 켜집니다. CDN은 HTML 파일의 구문을 분석하고, 연결된 리소스를 추가로 요청하고, 해당 캐시에 저장합니다.With the prefetch option turned on at the time when the CDN serves the HTML base page to the client’s browser, the CDN parses the HTML file and make additional requests for any linked resources and store it in its cache. 클라이언트에서 연결된 자산을 요청하는 경우 CDN 에지 서버에는 이미 요청된 개체가 있으므로 원본에 왕복하지 않고 즉시 제공할 수 있습니다.When the client makes the requests for the linked assets, the CDN edge server already has the requested objects and can serve them immediately without a round trip to the origin. 이 최적화는 캐시할 수 있는 콘텐츠 및 캐시할 수 없는 콘텐츠에 모두 제공됩니다.This optimization benefits both cacheable and non-cacheable content.

적응 이미지 압축(Akamai의 Azure CDN에만 해당)Adaptive image compression (Azure CDN from Akamai only)

특히 모바일과 같은 일부 장치는 때때로 네트워크 속도가 저하되는 경우가 있습니다.Some devices, especially mobile ones, experience slower network speeds from time to time. 이러한 시나리오에서는 사용자가 고해상도 이미지를 오래 기다리지 않고 해당 웹 페이지에서 작은 이미지를 신속하게 수신할 수 있다는 장점이 있습니다.In these scenarios, it is more beneficial for the user to receive smaller images in their webpage more quickly rather than waiting a long time for full resolution images.

이 기능은 자동으로 네트워크 품질을 모니터링하여 네트워크가 느려지는 경우 배달 속도를 개선하기 위해 표준 JPEG 압축 메서드를 사용합니다.This feature automatically monitors network quality, and employs standard JPEG compression methods when network speeds are slower to improve delivery time.

적응 이미지 압축Adaptive Image Compression 파일 확장명File Extensions
JPEG 압축JPEG compression .jpg, .jpeg, .jpe, .jig, .jgig, .jgi.jpg, .jpeg, .jpe, .jig, .jgig, .jgi

구성Caching

DSA를 사용하면 원본이 응답에서 Cache-Control 또는 Expires 헤더를 포함하는 경우에도 캐싱이 CDN에서 기본적으로 해제됩니다.With DSA, caching is turned off by default on the CDN, even when the origin includes Cache-Control or Expires headers in the response. DSA는 각 클라이언트에 고유하기 때문에 캐시되지 않아야 하는 동적 자산에 일반적으로 사용됩니다.DSA is typically used for dynamic assets that should not be cached because they are unique to each client. 캐싱은 이 동작을 손상시킬 수 있습니다.Caching can break this behavior.

고정 자산과 동적 자산이 혼합된 웹 사이트가 있는 경우 최상의 성능을 얻기 위해서는 하이브리드 접근 방식을 취하는 것이 가장 좋습니다.If you have a website with a mix of static and dynamic assets, it is best to take a hybrid approach to get the best performance.

Verizon의 Azure CDN 표준Akamai의 Azure CDN 표준 프로필의 경우, 캐싱 규칙을 사용하여 특정 DSA 엔드포인트에 대한 캐싱을 설정할 수 있습니다.For Azure CDN Standard from Verizon and Azure CDN Standard from Akamai profiles, you can turn on caching for specific DSA endpoints by using caching rules.

캐싱 규칙에 액세스하려면To access caching rules:

  1. CDN 프로필 페이지의 설정 아래에서 캐싱 규칙을 선택합니다.From the CDN profile page, under settings, select Caching rules.

    CDN 캐싱 규칙 단추

    캐싱 규칙 페이지가 열립니다.The Caching rules page opens.

  2. DSA 엔드포인트에 대한 캐싱을 설정하려면 전역 또는 사용자 지정 캐싱 규칙을 만듭니다.Create a global or custom caching rule to turn on caching for your DSA endpoint.

Verizon의 Azure CDN 프리미엄 프로필만 규칙 엔진을 사용하여 특정 DSA 엔드포인트에 대한 캐싱을 설정합니다.For Azure CDN Premium from Verizon profiles only, you turn on caching for specific DSA endpoints by using the rules engine. 생성되는 모든 규칙은 DSA에 최적화된 프로필의 해당 엔드포인트에만 영향을 줍니다.Any rules that are created affect only those endpoints of your profile that are optimized for DSA.

규칙 엔진에 액세스하려면To access the rules engine:

  1. CDN 프로필 페이지에서 관리를 선택합니다.From the CDN profile page, select Manage.

    CDN 프로필 관리 단추

    CDN 관리 포털이 열립니다.The CDN management portal opens.

  2. CDN 관리 포털에서 ADN을 선택한 다음, 규칙 엔진을 선택합니다.From the CDN management portal, select ADN, then select Rules Engine.

    DSA에 대한 규칙 엔진

또는 동적 자산을 제공하는 DSA를 사용하여 최적화된 엔드포인트와 일반 웹 배달 등의 고정 최적화 형식을 사용하여 최적화된 다른 엔드포인트 등 두 개의 CDN 엔드포인트를 사용하여 캐싱 가능한 자산을 제공할 수 있습니다.Alternatively, you can use two CDN endpoints: one endpoint optimized with DSA to deliver dynamic assets and another endpoint optimized with a static optimization type, such as general web delivery, to delivery cacheable assets. 웹 페이지 URL을 수정하여 사용하려는 CDN 엔드포인트의 자산에 직접 연결합니다.Modify your webpage URLs to link directly to the asset on the CDN endpoint you plan to use.

예: mydynamic.azureedge.net/index.html은 동적 페이지이고 DSA 엔드포인트에서 로드됩니다.For example: mydynamic.azureedge.net/index.html is a dynamic page and is loaded from the DSA endpoint. html 페이지는 mystatic.azureedge.net/banner.jpgmystatic.azureedge.net/scripts.js 등의 정적 CDN 엔드포인트에서 로드한 JavaScript 라이브러리 또는 이미지와 같은 여러 정적 자산을 참조합니다.The html page references multiple static assets such as JavaScript libraries or images that are loaded from the static CDN endpoint, such as mystatic.azureedge.net/banner.jpg and mystatic.azureedge.net/scripts.js.