Azure Storage Blob에서 Azure Front Door 사용
Azure Front Door는 Azure Storage Blob에서 정적 콘텐츠의 배달을 향상시켜 안전하고 확장 가능한 아키텍처를 제공합니다. 이 설정은 웹 사이트 호스팅 및 파일 배달과 같은 다양한 사용 사례에 적합합니다.
아키텍처
이 참조 아키텍처에서는 단일 원본이 있는 스토리지 계정 및 Azure Front Door 프로필이 배포됩니다.
데이터 흐름
시나리오를 통한 데이터 흐름은 다음과 같습니다.
- 클라이언트는 사용자 지정 도메인 이름 및 Front Door 제공 TLS 인증서를 사용하여 Azure Front Door에 대한 보안 연결을 설정합니다. 연결이 가까운 PoP(Front Door 지점)에서 종료됩니다.
- Azure Front Door WAF(웹 애플리케이션 방화벽)는 요청을 검색합니다. WAF에서 요청이 너무 위험하다고 판단되면 요청을 차단하고 HTTP 403 오류 응답을 반환합니다.
- Front Door PoP의 캐시에 유효한 응답이 포함된 경우 Front Door는 응답을 즉시 반환합니다.
- 그렇지 않은 경우 PoP는 별도의 수명이 긴 TCP 연결을 사용하여 Microsoft의 백본 네트워크를 사용하여 원본 스토리지 계정에 요청을 보냅니다. 이 시나리오에서 Private Link는 스토리지 계정에 안전하게 연결합니다.
- 스토리지 계정은 Front Door PoP에 응답을 보냅니다.
- PoP는 향후 요청에 대한 응답을 캐시에 저장합니다.
- PoP는 클라이언트에 응답을 반환합니다.
- 인터넷을 통해 스토리지 계정에 대한 직접 요청은 Azure Storage 방화벽에 의해 차단됩니다.
구성 요소
- Azure Storage: Blob에 정적 콘텐츠를 저장합니다.
- Azure Front Door: 클라이언트로부터 인바운드 연결을 수신하고, WAF를 사용하여 검색하고, 스토리지 계정에 요청을 안전하게 전달하고, 응답을 캐시합니다.
대안
다른 클라우드 스토리지 공급자 또는 자체 인프라에 정적 파일을 저장하는 경우 이 시나리오는 여전히 대부분 적용됩니다. 그러나 원본 서버로 들어오는 트래픽이 Front Door를 통해 들어오는지 확인해야 합니다. 스토리지 공급자가 Private Link를 지원하지 않는 경우 Front Door 서비스 태그를 허용 목록에 추가하고 X-Azure-FDID
헤더를 검사하는 것과 같은 대체 방식을 사용하는 것이 좋습니다.
시나리오 세부 정보
정적 콘텐츠 배달은 다음과 같은 많은 상황에서 유용합니다.
- 웹 애플리케이션용 이미지, CSS 파일 및 JavaScript 파일을 제공합니다.
- PDF 또는 JSON 파일과 같은 파일 및 문서 제공
- 스트리밍되지 않는 동영상을 제공합니다.
정적 콘텐츠는 일반적으로 자주 변경되지 않으며 크기가 클 수 있으므로 캐싱을 통해 성능을 개선하고 비용을 절감하는 데 적합합니다.
복잡한 시나리오에서 단일 Front Door 프로필은 정적 및 동적 콘텐츠를 모두 제공할 수 있습니다. 각 콘텐츠 유형에 대해 별도의 원본 그룹을 사용하고 라우팅 기능을 사용하여 들어오는 요청을 적절한 원본으로 보낼 수 있습니다.
고려 사항
확장성 및 성능
Azure Front Door는 CDN(콘텐츠 배달 네트워크) 역할을 하며, 전역적으로 분산된 PoP에서 콘텐츠를 캐싱합니다. 캐시된 응답을 사용할 수 있는 경우 Azure Front Door는 신속하게 처리하여 성능을 향상시키고 원본의 부하를 줄입니다. PoP에 유효한 캐시된 응답이 없는 경우 Azure Front Door의 트래픽 가속 기능은 원본에서 콘텐츠 배달을 신속하게 처리합니다.
보안
인증
Azure Front Door는 인터넷 연결 시나리오용으로 설계되었으며 공개적으로 액세스할 수 있는 Blob에 최적화되어 있습니다. Blob에 대한 액세스를 인증하려면 SAS(공유 액세스 서명)를 사용하는 것이 좋습니다. 쿼리 문자열 사용 동작을 사용하도록 설정하여 Azure Front Door가 인증되지 않은 클라이언트에 요청을 처리하지 못하도록 합니다. 이 방법은 서로 다른 SAS가 있는 각 요청을 원본으로 보내야 하므로 캐싱의 효율성을 제한할 수 있습니다.
원본 보안
Azure Front Door는 Private Link를 사용하여 Azure Storage 계정에 안전하게 연결합니다. 스토리지 계정은 직접 인터넷 액세스를 거부하도록 구성되어 Azure Front Door에서 사용하는 프라이빗 엔드포인트를 통해서만 요청을 허용합니다. 이 설정을 통해 모든 요청이 Azure Front Door에서 처리되어 스토리지 계정이 직접 인터넷에 노출되지 않도록 보호합니다. 이 구성에는 Azure Front Door의 프리미엄 계층이 필요합니다. 표준 계층을 사용하는 경우 스토리지 계정에 공개적으로 액세스할 수 있어야 합니다. SAS(공유 액세스 서명)를 사용하여 요청을 보호하고 클라이언트가 요청에 SAS를 포함하도록 하거나 Azure Front Door 규칙 엔진을 사용하여 연결할 수 있습니다.
사용자 지정 도메인 이름
Azure Front Door는 사용자 지정 도메인 이름을 지원하며 이러한 도메인에 대한 TLS 인증서를 관리할 수 있습니다. 사용자 지정 도메인을 사용하면 클라이언트가 신뢰할 수 있는 원본에서 파일을 받을 수 있으며, TLS는 Azure Front Door에 대한 모든 연결을 암호화합니다. Azure Front Door의 TLS 인증서 관리는 유효하지 않거나 오래된 인증서의 중단 및 보안 문제를 방지하는 데 도움이 됩니다.
Web Application Firewall
Azure Front Door WAF의 관리되는 규칙은 일반적인 보안 위협과 새로운 보안 위협에 대한 검색 요청을 설정합니다. 정적 및 동적 애플리케이션 모두에 WAF 및 관리 규칙을 사용하는 것이 좋습니다.
또한 Azure Front Door WAF는 필요한 경우 속도 제한 및 지역 필터링을 수행할 수 있습니다.
복원력
Azure Front Door는 전역적으로 분산된 아키텍처를 갖춘 고가용성 서비스로, 개별 Azure 지역 및 POP의 오류에 대한 복원력을 제공합니다.
Azure Front Door 캐시를 사용하면 스토리지 계정의 부하가 줄어듭니다. 스토리지 계정을 사용할 수 없게 되면 Azure Front Door는 애플리케이션이 복구될 때까지 캐시된 응답을 계속 제공할 수 있습니다.
복원력을 더욱 향상하려면 스토리지 계정의 중복성을 고려합니다. 자세한 내용은 Azure Storage 중복성을 참조하세요. 또는 여러 스토리지 계정을 배포하고 Azure Front Door 원본 그룹에서 여러 원본을 구성합니다. 각 원본의 우선 순위를 구성하여 원본 간에 장애 조치(failover)를 설정합니다. 자세한 내용은 Azure Front Door의 원본 및 원본 그룹을 참조하세요.
비용 최적화
캐싱은 정적 콘텐츠 배달 비용을 줄이는 데 도움이 됩니다. Azure Front Door의 PoPs는 응답 복사본을 저장하고 후속 요청에 대해 이러한 캐시된 응답을 제공하여 원본에 대한 요청 부하를 줄일 수 있습니다. 대규모 정적 콘텐츠 솔루션, 특히 대용량 파일을 제공하는 솔루션에서 캐싱은 트래픽 비용을 크게 줄일 수 있습니다.
이 솔루션에서 Private Link를 사용하려면 Azure Front Door의 프리미엄 계층을 배포합니다. 스토리지 계정에 대한 직접 트래픽을 차단할 필요가 없는 경우 표준 계층을 사용할 수 있습니다. 자세한 내용은 원본 보안을 참조하세요.
이 시나리오 배포
Bicep 또는 JSON ARM 템플릿을 사용하여 이 시나리오를 배포하려면 이 빠른 시작을 참조하세요.
Terraform 을 사용하여 이 시나리오를 배포하려면 이 빠른 시작을 참조하세요.
다음 단계
Azure Front Door 프로필을 만드는 방법을 알아봅니다.