💾 Iniciante-Intermédio 🕐 ~55 min Módulo 4 de 7

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.

5 PB
Capacidade máxima
por Storage Account
4
Serviços incluídos
Blob · Files · Queue · Table
5 GB
Grátis (Blob)
na conta de avaliação
LRS
Redundância mínima
3 cópias no mesmo datacenter

Tipos de Storage Account

TipoServiços suportadosTiers de performanceUso
Standard (GPv2)Blob, Files, Queue, TableStandard (HDD)Uso geral — recomendado para começar
Premium Block BlobsBlob (block e append)Premium (SSD)I/O intensivo, baixa latência
Premium File SharesAzure FilesPremium (SSD)Partilhas de ficheiros de alta performance
Premium Page BlobsPage Blobs (discos de VMs)Premium (SSD)Discos geridos de VMs
Azure CLI — Criar Storage Account
# 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)

TierCusto armazenamentoCusto acessoLatênciaUso
HotMais altoMuito baixoMilissegundosDados acedidos frequentemente (site, app)
CoolMédioBaixoMilissegundosDados acedidos raramente — backups 30+ dias
ColdBaixoMédioMilissegundosDados acedidos muito raramente — 90+ dias
ArchiveMuito baixoAlto + reidrataçãoHoras (reidratação)Arquivo de longo prazo — anos
ℹ️
Regra dos tiers: quanto mais barato o armazenamento, mais caro o acesso. Para dados que nunca vais aceder (compliance, arquivo legal), usa Archive. Para dados de produção acedidos diariamente, usa Hot. O Cool é perfeito para backups mensais.
Azure CLI — Blob Storage
# 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.

Azure CLI — Azure Files
# 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.

Azure CLI — Queue Storage
# 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.

⚠️
Table Storage vs. Cosmos DB: O Table Storage é muito mais barato mas limitado em funcionalidades. O Azure Cosmos DB for Table tem a mesma API mas com replicação global, SLAs mais fortes e consultas mais ricas. Para produção de grande escala, considera 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:

Opções de redundância — do menor ao maior custo e resiliência
LRS
3 cópias
1 datacenter
→
ZRS
3 cópias
3 Zonas
→
GRS
6 cópias
2 regiões
→
GZRS
6 cópias
2 regiões + 3 Zonas
OpçãoCópiasProtege contraRecomendação
LRS — Locally Redundant3 (mesmo datacenter)Falha de hardwareDev/Test, dados não críticos
ZRS — Zone Redundant3 (3 Zonas de Disponibilidade)Falha de datacenterProdução — recomendado
GRS — Geo Redundant6 (2 regiões)Falha de região inteiraDados críticos, DR
GZRS — Geo-Zone Redundant6 (2 regiões + Zonas)Falha de região + datacenterMá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.

JSON — Política de ciclo de vida
// 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
Laboratório

Lab 4 — Criar Storage Account e gerir Blobs

Passo a passo

Upload de ficheiros, SAS URL e partilha de ficheiros

  1. 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
  2. No portal Azure, navega para a Storage Account → Containers → + Container → Nome: imagens → Nível de acesso: Private.
  3. Clica no container imagens → Upload → selecciona qualquer imagem do teu PC → Upload.
  4. Clica no blob carregado → Generate SAS → Permissões: Read → Prazo: 1 hora → Generate SAS token and URL → Copia a URL e abre no browser.
  5. Cria uma partilha de ficheiros: az storage share create --name docs --account-name <NOME_STA> --quota 1
  6. 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
  7. 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.
  8. No final: az storage account delete --name <NOME_STA> --resource-group rg-lab-mod3 --yes
✅
Critério de sucesso: Consegues abrir a imagem pelo link SAS URL no browser (acesso temporário), e o ficheiro de texto está visível na partilha Azure Files.
Quiz

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?