Armazenamento
no Azure
O Azure oferece vários serviços de armazenamento para diferentes tipos de dados e casos de uso — desde ficheiros partilhados a grandes volumes de dados não estruturados. Aprender a escolher o tipo certo é essencial para construir soluções eficientes e económicas.
1 Azure Storage Account
Uma Storage Account é o contentor de nível superior para todos os serviços de armazenamento Azure: Blob, Files, Queue e Table. Toda a configuração de redundância, segurança e acesso é definida ao nível da Storage Account.
Tipos de Storage Account
| Tipo | Serviços suportados | Tiers de performance | Uso |
|---|---|---|---|
| Standard (GPv2) | Blob, Files, Queue, Table | Standard (HDD) | Uso geral — recomendado para começar |
| Premium Block Blobs | Blob (block e append) | Premium (SSD) | I/O intensivo, baixa latência |
| Premium File Shares | Azure Files | Premium (SSD) | Partilhas de ficheiros de alta performance |
| Premium Page Blobs | Page Blobs (discos de VMs) | Premium (SSD) | Discos geridos de VMs |
# Criar Storage Account Standard GPv2 (uso geral)
az storage account create \
--name stalabmod4azureedu \
--resource-group rg-lab-mod3 \
--location PortugalCentral \
--sku Standard_LRS \
--kind StorageV2 \
--access-tier Hot
# Listar Storage Accounts
az storage account list \
--resource-group rg-lab-mod3 \
--output table
# Obter chave de acesso (para usar em scripts)
az storage account keys list \
--account-name stalabmod4azureedu \
--resource-group rg-lab-mod3 \
--query "[0].value" \
--output tsv
2 Blob Storage
O Azure Blob Storage é o serviço de armazenamento de objetos não estruturados — ficheiros de qualquer tipo e tamanho. É escalável, barato e muito usado para imagens, vídeos, backups, logs e dados de big data.
Tipos de Blobs
Block Blobs
Para ficheiros de qualquer tipo — imagens, vídeos, documentos, backups. Suporta até 190 TB por blob. O tipo mais comum.
Append Blobs
Optimizado para escrita sequencial — logs, telemetria, streams de dados. Não permite modificar blocos existentes.
Page Blobs
Para acesso aleatório — base dos discos geridos de VMs. Acesso eficiente a qualquer offset do ficheiro.
Tiers de acesso (Access Tiers)
| Tier | Custo armazenamento | Custo acesso | Latência | Uso |
|---|---|---|---|---|
| Hot | Mais alto | Muito baixo | Milissegundos | Dados acedidos frequentemente (site, app) |
| Cool | Médio | Baixo | Milissegundos | Dados acedidos raramente — backups 30+ dias |
| Cold | Baixo | Médio | Milissegundos | Dados acedidos muito raramente — 90+ dias |
| Archive | Muito baixo | Alto + reidratação | Horas (reidratação) | Arquivo de longo prazo — anos |
# Criar container (pasta) no Blob Storage
az storage container create \
--name imagens \
--account-name stalabmod4azureedu \
--public-access off
# Fazer upload de um ficheiro
az storage blob upload \
--account-name stalabmod4azureedu \
--container-name imagens \
--name logo.png \
--file ./logo.png \
--tier Hot
# Listar blobs num container
az storage blob list \
--account-name stalabmod4azureedu \
--container-name imagens \
--output table
# Gerar URL de acesso temporário (SAS URL) válido 1 hora
az storage blob generate-sas \
--account-name stalabmod4azureedu \
--container-name imagens \
--name logo.png \
--permissions r \
--expiry $(date -u -d "+1 hour" '+%Y-%m-%dT%H:%MZ') \
--full-uri
# Mover blob para tier Archive (menos custos, acesso lento)
az storage blob set-tier \
--account-name stalabmod4azureedu \
--container-name imagens \
--name logo.png \
--tier Archive
3 Azure Files
O Azure Files oferece partilhas de ficheiros totalmente geridas acessíveis via protocolo SMB (Server Message Block) e NFS. Funciona exactamente como uma partilha de rede Windows — podes mapear como unidade Z: em qualquer PC ou servidor.
Montagem no Windows
Mapa como unidade de rede (\\stalabmod4.file.core.windows.net\partilha) com SMB 3.x sobre HTTPS.
Montagem no Linux
Monta via mount -t cifs. Perfeito para migrar partilhas de ficheiros on-premises para a cloud.
Azure File Sync
Sincroniza ficheiros entre servidores on-premises e Azure Files. "Cache" local com backup na cloud.
Snapshots
Pontos de restauro da partilha no tempo. Recupera versões anteriores de ficheiros eliminados ou corrompidos.
# Criar partilha de ficheiros
az storage share create \
--name partilha-lab \
--account-name stalabmod4azureedu \
--quota 5 # quota em GB
# Fazer upload de ficheiro para a partilha
az storage file upload \
--account-name stalabmod4azureedu \
--share-name partilha-lab \
--source README.md
# Script de montagem no Linux (guarda num ficheiro .sh)
# Obtém o script completo no portal: Storage Account → File shares → Connect
sudo mkdir -p /mnt/azurefiles
sudo mount -t cifs //stalabmod4azureedu.file.core.windows.net/partilha-lab \
/mnt/azurefiles \
-o username=stalabmod4azureedu,password=<CHAVE>,serverino
4 Queue Storage
O Azure Queue Storage armazena grandes volumes de mensagens (até 64 KB cada) para comunicação assíncrona entre componentes de uma aplicação. As mensagens ficam na fila até serem processadas.
Exemplo de uso: uma API recebe pedidos de geração de relatórios e coloca cada pedido na fila. Workers em background processam os relatórios ao seu ritmo — a API não fica bloqueada e o sistema aguenta picos de carga sem perder pedidos.
# Criar fila
az storage queue create \
--name fila-pedidos \
--account-name stalabmod4azureedu
# Enviar mensagem para a fila
az storage message put \
--queue-name fila-pedidos \
--account-name stalabmod4azureedu \
--content "Gerar relatório mensal - ID:12345"
# Ler próxima mensagem (sem remover — peek)
az storage message peek \
--queue-name fila-pedidos \
--account-name stalabmod4azureedu
# Ver número de mensagens na fila
az storage queue metadata show \
--name fila-pedidos \
--account-name stalabmod4azureedu \
--query approximateMessageCount
5 Table Storage
O Azure Table Storage é uma base de dados NoSQL sem esquema para armazenar grandes volumes de dados estruturados. Extremamente barato e escalável — mas sem joins, queries complexas ou transações ACID. Para isso, usa o Azure Cosmos DB.
6 Redundância e Replicação
Todos os dados no Azure Storage são replicados automaticamente. O nível de redundância escolhes na criação da Storage Account:
3 cópias
1 datacenter
3 cópias
3 Zonas
6 cópias
2 regiões
6 cópias
2 regiões + 3 Zonas
| Opção | Cópias | Protege contra | Recomendação |
|---|---|---|---|
| LRS — Locally Redundant | 3 (mesmo datacenter) | Falha de hardware | Dev/Test, dados não críticos |
| ZRS — Zone Redundant | 3 (3 Zonas de Disponibilidade) | Falha de datacenter | Produção — recomendado |
| GRS — Geo Redundant | 6 (2 regiões) | Falha de região inteira | Dados críticos, DR |
| GZRS — Geo-Zone Redundant | 6 (2 regiões + Zonas) | Falha de região + datacenter | Máxima resiliência |
7 Acesso e Segurança
Access Keys
Chave de 512 bits que dá acesso total. Usa para automação/scripts. Roda periodicamente. Guarda no Key Vault.
SAS (Shared Access Signature)
URL temporária com permissões limitadas. Define o que pode ser feito (ler, escrever) e até quando. Ideal para partilhar ficheiros externamente.
Azure AD (RBAC)
Controlo de acesso baseado em funções. Dá permissões a utilizadores/apps sem partilhar chaves. Abordagem mais segura.
Firewall e VNet
Restringe acesso por IP ou rede virtual. Bloqueia acessos da Internet pública — só aceita de IPs/VNets autorizados.
8 Políticas de Ciclo de Vida
As políticas de ciclo de vida (Lifecycle Management) movem automaticamente blobs entre tiers com base na sua idade — reduzindo custos sem intervenção manual.
// Política: move para Cool após 30 dias, Archive após 90, elimina após 365
{
"rules": [
{
"name": "mover-blobs-antigos",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": { "blobTypes": ["blockBlob"] },
"actions": {
"baseBlob": {
"tierToCool": { "daysAfterModificationGreaterThan": 30 },
"tierToArchive": { "daysAfterModificationGreaterThan": 90 },
"delete": { "daysAfterModificationGreaterThan": 365 }
}
}
}
}
]
}
# Aplicar via CLI
az storage account management-policy create \
--account-name stalabmod4azureedu \
--resource-group rg-lab-mod3 \
--policy @politica-ciclovida.json
Lab 4 — Criar Storage Account e gerir Blobs
Upload de ficheiros, SAS URL e partilha de ficheiros
- Cria uma Storage Account:
az storage account create --name stalabazureedu$(shuf -i 1000-9999 -n 1) --resource-group rg-lab-mod3 --location PortugalCentral --sku Standard_LRS - No portal Azure, navega para a Storage Account → Containers → + Container → Nome:
imagens→ Nível de acesso: Private. - Clica no container
imagens→ Upload → selecciona qualquer imagem do teu PC → Upload. - Clica no blob carregado → Generate SAS → Permissões: Read → Prazo: 1 hora → Generate SAS token and URL → Copia a URL e abre no browser.
- Cria uma partilha de ficheiros:
az storage share create --name docs --account-name <NOME_STA> --quota 1 - Faz upload de um ficheiro texto:
echo "Olá Azure" > ola.txt && az storage file upload --account-name <NOME_STA> --share-name docs --source ola.txt - No portal, navega para File shares → docs → deves ver o ficheiro
ola.txt. Clica em Connect e segue as instruções para montar no teu OS. - No final:
az storage account delete --name <NOME_STA> --resource-group rg-lab-mod3 --yes
Verifica os teus conhecimentos — Módulo 4
1. Uma empresa precisa de armazenar logs de auditoria que raramente são acedidos (uma vez por ano, em caso de auditoria). Qual o tier de Blob Storage mais económico?
2. O que é uma SAS (Shared Access Signature)?
3. Uma empresa tem um servidor de ficheiros Windows on-premises com 500 GB de dados partilhados. Qual serviço Azure permite migrar esta partilha mantendo o protocolo SMB?