다음을 통해 공유


Azure Storage Blob과 함께 Azure Front Door 사용

Azure Front Door는 Azure Storage Blob의 정적 콘텐츠 배달을 가속화하고 안전하고 확장 가능한 아키텍처를 지원합니다. 정적 콘텐츠 배달은 웹 사이트 호스팅 및 파일 배달을 비롯한 다양한 사용 사례에 유용합니다.

아키텍처

Diagram of Azure Front Door with a blob storage origin.

이 참조 아키텍처에서는 단일 원본을 사용하여 스토리지 계정과 Front Door 프로필을 배포합니다.

데이터 흐름

시나리오를 통한 데이터 흐름은 다음과 같습니다.

  1. 클라이언트는 사용자 지정 도메인 이름과 Front Door 제공 TLS 인증서를 사용하여 Azure Front Door에 대한 보안 연결을 설정합니다. 클라이언트의 연결은 근처의 Front Door POP(현재 위치)에서 종료됩니다.
  2. Front Door WAF(웹 애플리케이션 방화벽)가 요청을 검사합니다. WAF에서 요청의 위험 수준이 너무 높다고 판단하면 요청을 차단하고 Front Door는 HTTP 403 오류 응답을 반환합니다.
  3. Front Door PoP의 캐시에 이 요청에 대한 유효한 응답이 포함되어 있으면 Front Door는 즉시 응답을 반환합니다.
  4. 그렇지 않은 경우 PoP는 Microsoft의 백본 네트워크를 사용하여 전 세계 어디에 있든 원본 스토리지 계정으로 요청을 보냅니다. PoP는 별도의 수명이 긴 TCP 연결을 사용하여 스토리지 계정에 연결합니다. 이 시나리오에서는 Private Link를 사용하여 스토리지 계정에 안전하게 연결합니다.
  5. 스토리지 계정은 Front Door PoP에 응답을 보냅니다.
  6. PoP는 응답을 수신하면 후속 요청을 위해 캐시에 저장합니다.
  7. PoP는 클라이언트에 응답을 반환합니다.
  8. 인터넷을 통해 스토리지 계정에 직접 요청하는 모든 요청은 Azure Storage 방화벽에 의해 차단됩니다.

구성 요소

  • Azure Storage는 정적 콘텐츠를 Blob에 저장합니다.
  • Azure Front Door는 클라이언트로부터 인바운드 연결을 수신하여 WAF로 검사하고 요청을 스토리지 계정으로 안전하게 전달하고 응답을 캐시합니다.

대안

다른 클라우드 스토리지 공급자에 정적 파일이 있거나 자신이 소유하고 유지 관리하는 인프라에서 정적 콘텐츠를 호스팅하는 경우 이 시나리오의 대부분이 계속 적용됩니다. 그러나 원본 서버로 들어오는 트래픽을 보호하여 해당 트래픽이 Front Door를 통해 들어오는지 확인하는 방법을 고려해야 합니다. 스토리지 공급자가 Private Link를 지원하지 않는 경우 Front Door 서비스 태그를 허용 목록에 추가하고 X-Azure-FDID 헤더를 검사하는 것과 같은 대체 방식을 사용하는 것이 좋습니다.

시나리오 정보

정적 콘텐츠 배달은 다음 예와 같은 다양한 상황에서 유용합니다.

  • 웹 애플리케이션용 이미지, CSS 파일 및 JavaScript 파일을 제공합니다.
  • PDF 파일 또는 JSON 파일과 같은 파일 및 문서를 제공합니다.
  • 스트리밍되지 않는 동영상을 제공합니다.

본질적으로 정적 콘텐츠는 자주 변경되지 않습니다. 정적 파일의 크기도 클 수 있습니다. 이러한 특성으로 인해 캐시하기에 좋은 후보가 되므로 성능이 개선되고 요청 처리 비용이 절감됩니다.

복잡한 시나리오에서는 단일 Front Door 프로필이 정적 콘텐츠와 동적 콘텐츠를 제공할 수 있습니다. 각 원본 형식에 대해 별도의 원본 그룹을 사용할 수 있으며 Front Door의 라우팅 기능을 사용하여 들어오는 요청을 올바른 원본으로 라우팅할 수 있습니다.

고려 사항

확장성 및 성능

CDN(콘텐츠 배달 네트워크)인 Front Door는 전 세계적으로 분산된 PoP 네트워크에서 콘텐츠를 캐시합니다. PoP에서 응답의 캐시된 복사본을 사용할 수 있는 경우 Front Door는 캐시된 응답으로 빠르게 응답할 수 있습니다. 캐시에서 콘텐츠를 반환하면 솔루션 성능이 개선되고 원본의 로드가 줄어듭니다. PoP에 유효한 캐시된 응답이 없는 경우 Front Door의 트래픽 가속 기능은 원본에서 콘텐츠를 제공하는 시간을 줄입니다.

보안

인증

Front Door는 인터넷에 연결되도록 설계되었으며 이 시나리오는 공개적으로 사용 가능한 Blob에 최적화되어 있습니다. blob에 대한 액세스를 인증해야 하는 경우 공유 액세스 서명을 사용하는 것이 좋으며, 쿼리 문자열 사용 쿼리 문자열 동작을 사용하도록 설정하여 Front Door가 인증되지 않은 클라이언트에 요청을 제공하지 않도록 합니다. 그러나 이 방식은 서로 다른 공유 액세스 서명이 있는 각 요청을 원본에 별도로 보내야 하기 때문에 Front Door 캐시를 효과적으로 사용하지 못할 수 있습니다.

원본 보안

Front Door는 Private Link를 사용하여 Azure Storage 계정에 안전하게 연결합니다. 스토리지 계정은 인터넷에서 직접 액세스를 거부하고 Front Door에서 사용하는 프라이빗 엔드포인트 연결을 통한 요청만 허용하도록 구성됩니다. 이 구성을 사용하면 모든 요청이 Front Door에서 처리되고 스토리지 계정의 콘텐츠가 인터넷에 직접 노출되는 것을 방지할 수 있습니다. 그러나 이 구성에는 Azure Front Door의 프리미엄 계층이 필요합니다. 표준 계층을 사용하는 경우 스토리지 계정에 공개적으로 액세스할 수 있어야 합니다. 공유 액세스 서명을 사용하여 스토리지 계정에 대한 요청을 보호하고 클라이언트가 모든 요청에 서명을 포함하도록 하거나 Front Door 규칙 엔진을 사용하여 Front Door에 연결합니다.

사용자 지정 도메인 이름

Front Door는 사용자 지정 도메인 이름을 지원하며 해당 도메인에 대한 TLS 인증서를 발급 및 관리할 수 있습니다. 사용자 지정 도메인을 사용하면 클라이언트가 신뢰할 수 있고 친숙한 도메인 이름에서 파일을 수신하고 TLS가 Front Door에 대한 모든 연결을 암호화하도록 할 수 있습니다. Front Door에서 TLS 인증서를 관리하면 유효하지 않거나 오래된 TLS 인증서로 인한 중단 및 보안 문제를 방지할 수 있습니다.

Azure Storage는 사용자 지정 도메인 이름도 지원하지만 사용자 지정 도메인을 사용할 때는 HTTPS를 지원하지 않습니다. Front Door는 스토리지 계정과 함께 사용자 지정 도메인 이름을 사용하기 위한 가장 좋은 방법입니다.

웹 애플리케이션 방화벽

Front Door WAF의 관리 규칙 집합은 일반적이고 새로운 보안 위협에 대한 요청을 검사합니다. 정적 및 동적 애플리케이션 모두에 WAF 및 관리 규칙을 사용하는 것이 좋습니다.

또한 이러한 기능이 필요한 경우 Front Door WAF를 사용하여 속도 제한지역 필터링을 수행할 수도 있습니다.

복원력

Front Door는 고가용성 서비스이며 전역적으로 분산된 아키텍처로 인해 단일 Azure 지역 및 PoP의 오류에 대한 복원력이 뛰어납니다.

Front Door 캐시를 사용하면 스토리지 계정의 부하가 줄어듭니다. 또한 스토리지 계정을 사용할 수 없는 경우 Front Door는 애플리케이션이 복구될 때까지 캐시된 응답을 계속 제공할 수 있습니다.

스토리지 계정의 복원력을 고려하면 전체 솔루션의 복원력을 더욱 개선할 수 있습니다. 자세한 내용은 Azure Storage 중복성을 참조하세요. 또는 여러 스토리지 계정을 배포하고, Front Door 원본 그룹에서 여러 원본을 구성하고, 각 원본의 우선 순위를 구성하여 원본 간의 장애 조치(failover)를 구성할 수 있습니다. 자세한 내용은 Azure Front Door의 원본 및 원본 그룹을 참조하세요.

비용 최적화

캐싱은 정적 콘텐츠 제공 비용을 줄이는 데 도움이 될 수 있습니다. Front Door의 PoP는 응답 복사본을 저장하고 후속 요청에 대해 캐시된 응답을 배달할 수 있습니다. 캐싱을 사용하면 원본에 대한 요청 부하가 줄어듭니다. 대규모 정적 콘텐츠 기반 솔루션, 특히 대용량 파일을 제공하는 솔루션에서 캐싱을 사용하면 트래픽 비용을 상당히 줄일 수 있습니다.

이 솔루션에서 Private Link를 사용하려면 Front Door의 프리미엄 계층을 배포해야 합니다. 스토리지 계정으로 직접 이동하는 트래픽을 차단할 필요가 없는 경우 표준 계층을 사용할 수 있습니다. 자세한 내용은 원본 보안을 참조하세요.

시나리오 배포

Bicep 또는 JSON ARM 템플릿을 사용하여 이 시나리오를 배포하려면 이 빠른 시작을 참조하세요.

Terraform을 사용하여 이 시나리오를 배포하려면 이 빠른 시작을 참조하세요.

다음 단계

Front Door 프로필 만들기 방법에 대해 알아봅니다.