Usar o Azure Front Door com blobs do Armazenamento do Azure
O Azure Front Door acelera a entrega de conteúdo estático de blobs do Armazenamento do Azure e permite uma arquitetura segura e escalonável. A entrega de conteúdo estático é útil para muitos casos de uso diferentes, incluindo hospedagem de site e entrega de arquivos.
Arquitetura
Nessa arquitetura de referência, você implanta uma conta de armazenamento e um perfil do Front Door com uma só origem.
Fluxo de dados
O fluxo de dados deste cenário ocorre da seguinte forma:
- O cliente estabelece uma conexão segura com o Azure Front Door usando um nome de domínio personalizado e um certificado TLS fornecido pelo Front Door. A conexão do cliente termina em um PoP (ponto de presença) do Front Door próximo.
- O WAF (firewall do aplicativo Web) do Front Door examina a solicitação. Se o WAF determinar que o nível de risco da solicitação é muito alto, ele bloqueia a solicitação e o Front Door retorna uma resposta de erro HTTP 403.
- Se o cache do PoP do Front Door contiver uma resposta válida para essa solicitação, o Front Door retornará a resposta imediatamente.
- Caso contrário, o PoP enviará a solicitação para a conta de armazenamento de origem, onde quer que ela esteja no mundo, usando a rede de backbone do Microsoft. O PoP se conecta à conta de armazenamento usando uma conexão TCP separada, de longa duração. Nesse cenário, o Link Privado é usado para se conectar com segurança à conta de armazenamento.
- A conta de armazenamento envia uma resposta ao PoP do Front Door.
- Quando o PoP recebe a resposta, ele a armazena no cache para as solicitações seguintes.
- O PoP retorna a resposta ao cliente.
- Todas as solicitações diretamente para a conta de armazenamento pela Internet são bloqueadas pelo firewall do Armazenamento do Azure.
Componentes
- O Armazenamento do Azure armazena o conteúdo estático em blobs.
- O Azure Front Door recebe as conexões de entrada de clientes, examina-as com o WAF, encaminha com segurança a solicitação para a conta de armazenamento e armazena em cache as respostas.
Alternativas
Se você tiver arquivos estáticos em outro provedor de armazenamento em nuvem ou se hospedar um conteúdo estático na infraestrutura do qual é proprietário e mantém, grande parte desse cenário continuará sendo aplicada. No entanto, você precisa considerar como proteger o tráfego de entrada para seu servidor de origem, para verificar se ele vem através do Front Door. Se o provedor de armazenamento não der suporte ao Link Privado, considere o uso de uma abordagem alternativa, como adicionar à lista de permissões da marca de serviço do Front Door e inspecionar o cabeçalho X-Azure-FDID
.
Detalhes do cenário
A distribuição de conteúdo estático é útil em muitas situações, como estes exemplos:
- Fornecer imagens, arquivos CSS e arquivos JavaScript para um aplicativo Web.
- Fornecer arquivos e documentos, como arquivos PDF ou arquivos JSON.
- Fornecimento de vídeo sem streaming.
Pela natureza, o conteúdo estático não muda com frequência. Os arquivos estáticos também podem ser grandes. Essas características fazem dele um bom candidato a ser armazenado em cache, o que aprimora o desempenho e reduz o custo para atender às solicitações.
Em um cenário complexo, um perfil individual do Front Door pode fornecer conteúdo estático e dinâmico. Você pode usar grupos de origem separados para cada tipo de origem e usar as funcionalidades de roteamento do Front Door para rotear as solicitações de entrada para a origem correta.
Considerações
Desempenho e escalabilidade
Como uma CDN (rede de distribuição de conteúdo), o Front Door armazena em cache o conteúdo na rede distribuída globalmente de PoPs. Quando uma cópia armazenada em cache de uma resposta está disponível em um PoP, o Front Door pode responder rapidamente com a resposta armazenada em cache. O retorno de conteúdo do cache aprimora o desempenho da solução e reduz a carga na origem. Se o PoP não tiver uma resposta em cache válida, as funcionalidades de aceleração de tráfego do Front Door reduzirão o tempo para fornecer o conteúdo da origem.
Segurança
Autenticação
O Front Door foi projetado para ser voltado para a Internet, e esse cenário é otimizado para blobs disponíveis publicamente. Se você precisar autenticar o acesso a blobs, considere o uso de assinaturas de acesso compartilhado e lembre-se de habilitar Usar Cadeia de Caracteres de Consulta (Query String) - comportamento de cadeia de caracteres de consulta - para evitar que o Front Door forneça solicitações a clientes não autenticados. No entanto, talvez essa abordagem não faça um uso efetivo do cache do Front Door, pois cada solicitação com uma assinatura de acesso compartilhado diferente precisa ser enviada à origem separadamente.
Segurança da origem
O Front Door se conecta com segurança à conta do Armazenamento do Azure usando o Link Privado. A conta de armazenamento está configurada para negar o acesso direto da Internet e para permitir apenas as solicitações por meio da conexão de ponto de extremidade privado usada pelo Front Door. Essa configuração garante que cada solicitação seja processada pelo Front Door e evita expor o conteúdo de sua conta de armazenamento diretamente à internet. No entanto, essa configuração requer a camada premium do Azure Front Door. Se você usar o nível padrão, sua conta de armazenamento deverá estar acessível publicamente. Você pode usar uma assinatura de acesso compartilhado para proteger as solicitações à conta de armazenamento e fazer com que o cliente inclua a assinatura em todas as solicitações ou use o mecanismo de regras do Front Door para anexá-la do Front Door.
Nomes de domínio personalizados
O Front Door dá suporte a nomes de domínio personalizados e pode emitir e gerenciar certificados TLS para esses domínios. Usando domínios personalizados, você pode garantir que os clientes recebam arquivos de um nome de domínio confiável e conhecido e que o TLS criptografe todas as conexões com o Front Door. Quando o Front Door gerencia seus certificados TLS, você evita interrupções e problemas de segurança devido a certificados TLS inválidos ou desatualizados.
O Armazenamento do Azure dá suporte a nomes de domínio personalizados, mas não dá suporte a HTTPS quando um domínio personalizado é usado. O Front Door é a melhor abordagem para usar um nome de domínio personalizado com uma conta de armazenamento.
Firewall do aplicativo Web
Os conjuntos de regras gerenciadas do WAF do Front Door examina as solicitações em busca de ameaças comuns e emergentes à segurança. Recomendamos usar o WAF e as regras gerenciadas para aplicativos estáticos e dinâmicos.
Use também o WAF do Front Door para executar a limitação de taxa e a filtragem geográfica se precisar dessas funcionalidades.
Resiliência
O Front Door é um serviço altamente disponível e, devido à arquitetura distribuída globalmente, ele é resiliente a falhas de regiões individuais do Azure e PoPs.
Usando o cache do Front Door, você reduz a carga na sua conta de armazenamento. Além disso, se os servidores estiverem indisponíveis, o Front Door poderá continuar fornecendo respostas em cache até que o aplicativo seja recuperado.
Você pode aprimorar ainda mais a resiliência da solução geral considerando a resiliência da conta de armazenamento. Para mais informações, confira Redundância do Armazenamento do Microsoft Azure. Como alternativa, você pode implantar várias contas de armazenamento e configurar várias origens no grupo de origem do Front Door e configurar o failover entre as origens configurando a prioridade de cada origem. Para obter mais informações, consulte Origens e grupos de origem no Azure Front Door.
Otimização de custo
O cache pode ajudar a reduzir o custo da distribuição de conteúdo estático. Os PoPs do Front Door armazenam cópias de respostas e podem fornecer essas respostas armazenadas em cache para as solicitações seguintes. O cache reduz a carga de solicitação na origem. Em soluções baseadas em conteúdo estático de alta escala, especialmente aquelas que fornecem arquivos grandes, o cache pode reduzir consideravelmente os custos de tráfego.
Para usar o Link Privado nesta solução, você precisa implantar a camada premium do Front Door. Você poderá usar a camada standard se não precisar bloquear o tráfego que flui diretamente para sua conta de armazenamento. Para obter mais informações, confira Segurança da origem.
Implantar este cenário
Para implantar esse cenário usando modelos do ARM Bicep ou JSON, confira este guia de início rápido.
Para implantar esse cenário usando o Terraform, confira este guia de início rápido.
Próximas etapas
Saiba como criar um perfil do Azure Front Door.