black internal hdd on black surface
Azure

Azure Storage Account

#Azure #StorageAccount

Faaaalla Turma,

Hoje vamos estudar um pouquinho do Azure Storage Account que é muito utilizado em arquiteturas de dados e processamento de Big Data.

Para quem é do mundo de banco de dados, provavelmente já viu algum artigo ou até mesmo já utiliza o Storage Account como um repositório de backup para os banco de dados (deem uma olhada nesse artigo da Nane).
O que é muito útil, pois possibilita uma integração nativa criando uma alta disponibilidade e segurança para armazenar os backup com um custo relativamente baixo, comparado a outras estratégias e tecnologias.

No on-premise quando precisamos alocar novo espaço para o banco de dados, backup ou guardar arquivos gerados por um processamento, normalmente solicitamos isso ao time de infraestrutura que entende nossa necessidade e disponibiliza um espaço no Storage com configurações especificas de RAID e Lun. Na Azure podemos levar esse conceito a diante e o nosso Storage seria o “Azure Storage Account”, vamos entender mais sobre ele a seguir.

Contextualizando o Azure Storage Account

Um Storage Account (ou conta de armazenamento do Azure) é responsável por conter objetos de dados armazenados no Azure. Resumindo em outras palavras, imagine um espaço onde você pode configurar diversos diretórios definindo tipo e estrutura de dados tendo e escalabilidade necessária para receber muitos dados e a confiabilidade da alta disponibilidade de um serviço de nuvem que seus dados sempre estarão disponíveis e acessíveis.

Tudo isso encapsulado em um namespace exclusivo podendo ser acessado via protocolos HTTP e HTTPs.

O Storage Account é a forma como Azure entrega armazenamento na nuvem, de uma forma simples, centralizada e com diversas possibilidade de configurações. Por exemplo, dentro de um storage account podemos criar containers de blob (arquivos binários e texto), criar filas para receber mensagens, criar file shared com servidores on-premise entre outros.

Vamos entender como o Storage Account trata disponibilidade. Esse tema sempre cai em provas de certificação… #ficadica

Redundância

  • Locally Redundant Storage – (LRS)
    O Armazenamento com redundância local é uma estratégia de baixo custo e relativamente simples, porem, muito melhor do que manter os dados em um servidor físico. Nessa opção os dados são copiados três vezes fisicamente em um único Data Center na região primária configurado no recurso.
Diagrama mostrando como os dados são replicados em um único data center com LRS
  • Zone Redundant Storage – (ZRS)
    O Armazenamento com redundância de zona é uma estratégia mais elaborada e normalmente é utilizado em arquiteturas que contêm dados importantes para a continuidade do negócio. Nessa opção, os dados são replicados em três zonas de disponibilidade (AZ) de maneira síncrona dentro da região primaria configurada no recurso. Ou seja, os dados são residem em três Data Center diferentes na mesma região.
Diagrama mostrando como os dados são replicados na região primária com ZRS
  • Geo Redundant Storage – (GRS)
    O Armazenamento com redundância geográfica já é uma estratégia mais avançada que visa disponibilidade e durabilidade entre regiões. Ou seja, se seus dados estiverem no Brasil (Brazil South) e na Virginia-USA (East US) e Brasil ficar offline, sua aplicação não sofrerá impacto por ter réplica dos dados na Virginia. Nessa opção os dados são replicados três vezes de forma síncrona em um DC na região primária e mais três vezes em outro data center da região secundária.
    O RA-GRS habilita a leitura de de dados na região secundária, muito útil para algumas estratégias de consumo.
Diagrama mostrando como os dados são replicados com GRS ou RA-GRS
  • Geo Zone Redundant Storage – (GZRS)
    Podemos dizer que o GZRS ou Armazenamento com redundância de zona geográfica é a Ferrari dos modelos de redundância. Pois existe, é top, é caro e é para poucos hahaha.
    Essa estratégia tem alta disponibilidade e durabilidade máxima entregue pela Azure.
    Os dados são replicados de forma síncrona em três AZs na região primaria (automaticamente em no mínimo 3 Data Centers diferentes) e posteriormente de forma assíncrona os dados são replicados para outra região (secundária) e suas AZs.
    Nessa opção você também pode habilitar o RA-GZRS para realizar leitura na região secundária.
Diagrama mostrando como os dados são replicados com GZRS ou RA-GZRS

Para mais informações sobre:

  • Infraestrutura do Azure – link
  • Redundância e Replicações no Azure – link

Tipos de Storage Accounts

Quando você for criar um Storage Account, além de informar qual a subscription, Resource Group, nome também precisará informar qual é o tipo do Storage que está criando. Vamos entender quais são os tipos disponíveis hoje no Azure.

  • General-purpose v2 accounts:
    Recomendado para uso geral e uma das versões mais recentes. É muito utilizado em arquiteturas para armazenamento de Blobs, arquivos, Filas e Tabelas.
  • General-purpose v1 account:
    Para cenários de armazenamento blob, arquivos, filas e tabelas também. Porem, é recomendado utilizar o v2, devido a melhorias e features adicionadas na versão mais recente (O v1 ainda existe por compatibilidade)
  • BlockBlobStorage account:
    Tipo de Storage account com personalidade para uso Premium (performance). Muito indicado para armazenamento de block blobs e append blobs (mais informações sobre blob aqui).
  • FileStorage account:
    Também é um tipo de conta premium para armazenamento de arquivos. A forma de replicação para esse tipo está restrita ao LRS.

Tipos de serviços para armazenamento

Ao criar o Storage Account (vamos fazer isso no final do post) você irá se deparar logo de cara com a tela exibindo os tipos de serviço de armazenamento que o seu storage suporta dependendo da configuração que você utilizou.

  • Tipo Containers (Blob):
    Segundo a Wikipédia:
    Um blob (Binary Large OBjectbasic large object), é uma coleção de dados binários armazenados como uma única entidade em um sistema de gerenciamento de arquivos. Blobs geralmente são objetos de imagem, áudio, textos ou outros objetos multimídia.

    Dentro do Storage Account, você irá observar o tipo Container é lá que os arquivos Blobs serão armazenados. Um container cria um diretório de conjuntos de blobs (pense em uma pasta no Windows).
    Mais informações: Visão geral de blobs de páginas do Azure

    Além desse tipo de armazenamento ser escalável também da suporte para o Data Lake Storage Gen2 (irei escrever sobre isso em outro post).
  • Tipo File Shares:
    Podemos entender o File Share como o famoso File Server.
    Criando um File Share dentro do Storage Account é possível mapear um disco no Azure com o seu servidor (on-premise ou virtual). O acesso é seguro e existe uma chave criptografada que faz o “link” entre as extremidades. É bem simples de usar. Já vi alguns ambientes de banco de dados com essa configuração, onde os backups ficavam nesse shared e eram replicados para a Azure. Também tem usabilidade em cenários de processamento de dados, onde a aplicação X gera arquivos dentro de uma unidade e o Data Pipeline pega esses arquivos e processa (via databricks por exemplo) para o Data Lake.
    Mais informações: Introdução aos Arquivos do Azure
  • Tipo Tables:
    Um modelo de armazenamento para tabelas NoSQL, seguindo o padrão Chave-Valor sendo schemaless. O CosmosDB tem APIs e pode se beneficiar muito desse tipo de armazenamento.
    Mais informações: Introdução ao armazenamento de Tabelas
  • Tipo Queues:
    Queues é um tipo de armazenamento dentro do Storage Account destinado para soluções de mensageria (filas) armazenando grandes quantidades de mensagens para serem consumidas por processamento de forma assíncrona.
    Exemplo: Um sistema de pedágio gera uma mensagem sempre que um carro passa e posteriormente um outro sistema pega essa mensagem (por carro) e grava em uma base de log.
    Mais informações: Introdução ao Armazenamento de Filas do Azure

Criando um Storage Account – via portal

Após conectar na sua conta (caso ainda tenha, clique aqui), pesquise pelo serviço “Storage Account” ou Conta de Armazenamento.
Você vai ver uma tela semelhante a essa. No meu caso, eu já tenho duas Storages que estou utilizando para o Databricks. Para criar um novo, clique no menu superior a esquerda na opção “Create”

Nessa tela, você irá começar a preencher algumas informações necessária para o seu Storage.
O item Storage Account Name precisa ser minúsculo, sem acentuação e sem caractere especial e também precisa ser exclusivo.
No item Account kind é o tipo do Storage… que foi mencionado aqui no post anteriormente.
O item Replication também foi mencionado aqui anteriormente. Para efeito de testes/estudo use o LRS porque é o mais barato.

Ao dar Next você navegará entre as abas. Para teste, siga até a ultima e clique em Review+Create para submeter a criação do recurso.

Após alguns minutos, se storage account é criado.

Acessando ele é possível visualizar algumas configurações conforme conversamos anteriormente.

Para esse post não ficar muito extenso, vou publicar outros posts criando storage account para cada um dos serviços de armazenamento (blob, file shared, table, queue).

Criando um Storage Account – Azure CLI

Vamos repetir o processo de criação mas agora via código.

Conecte-se no Azure/subscription:

az login

Caso ainda não tenha, crie um Resource Group para alocar seu Storage Account:

az group create --name rg-teste --location westus

Agora crie o Storage Account (mude os parâmetros caso queira):

az storage account create --name testecodigostorage --resource-group rg-teste --location westus --sku Standard_RAGRS --kind StorageV2

Após alguns instantes, seu Storage é criado e já é possível visualizar via portal.


Por enquanto é isso turma, crie alguns Storage Accounts para praticar, observe as configurações disponíveis.

Aaaaa, após o seu teste não esqueça de deleta-lo, caso contrário, o custo virá no seu cartão de crédito hahaha…
Para deletar você pode ir via portal ou fazer via código.
Exemplo:

az storage account delete --name <storage-account> --resource-group <resource-group>

Alguns links de referência sobre o assunto, com visões diferentes e que com certeza irá agregar no seu estudo:

Grande abraço
Garetti []s

0 comentário em “Azure Storage Account

Comente sobre isso: