AWS na prática | Armazenamento EBS e S3

AWS na prática | Armazenamento EBS e S3

Armazenamento EBS e S3

Introdução

Este artigo aborda as características do dois principais tipos de armazenamento disponíveis na AWS e explica como escolher qual utilizar no seu dia a dia com base no seu caso de uso.

Captura-de-Tela-2018-01-28-a-s-15.21.04

EBS – Elastic Block Store

Fornece armazenamento de bloco persistente para uso em instâncias. Ele é altamente integrado com instâncias EC2, armazenamento de bloco de baixa latência e possui 5 noves de disponibilidade (99,999%).

Atualmente EBS fornece 4 tipos de volumes, cada um com características específicas de design que se adequam a praticamente qualquer workload que você tenha.

É a melhor escolha para volumes de boot e databases, fornecendo o dispositivo de blocos de baixa latência e altíssima disponibilidade.

Você pode conectar diferentes tipos de volumes em uma mesma instância. Também é possível modificar volumes à quente, sem impacto de performance ou disponibilidade.

Através da tecnologia de snapshots é possível gerar backups e estratégias de disaster/recovery de forma fácil e com baixo custo. Os snapshots são armazenados no S3, que possui 9 noves de disponibilidade.

Quanto à segurança, é possível criptografar os dados no EBS durante a transferência e em repouso. E através do Cloudwatch podemos monitorar consumo e desempenho dos volumes.

Tipos de Volumes

Imagem5

Provisioned IOPS
São volumes SSD de maior desempenho, ideal para workloads transacionais que dependam de latência. Se encaixam para bancos de dados com alto consumo de I/O. O custo deste tipo de volume é diretamente relacionado com a quantidade de IOPS que são provisionados, bem como o tamanho do volume.

General Purpose
São volumes SSD que possuem um equilíbrio entre desempenho e preço e são ideais para uma grande variedade de workloads, como discos de sistema operacional e aplicações que exigem baixa latência.

Magnético HDD
Volumes magnéticos são volumes de baixo custo criados para workloads em que é preciso armazenar uma grande quantidade de dados e precisam de uma alta taxa de transferência, como Aplicações de BigData e processamento de logs.

Cold HDD
É o tipo de volume mais barato, para aplicações que precisam armazenar uma grande quantidade de dados mas que são acessados com pouca frequência.

S3 – Simple Storage Service

Diferença entre Block Storage e Object storage
Primeiramente vamos esclarecer as diferenças entre EBS e S3. Apesar de ambos serem considerados serviços de armazenamento, o uso de cada um deles é bem diferente.

Em um armazenamento de bloco, como é o caso do EBS, podemos conectá-lo em uma EC2, formata-lo com um sistema de arquivos, como Ext3 ou NTFS e usá-lo como uma unidade de disco. É o equivalente a um HD tradicional, porém conectado via rede.

Já um Object Storage como o S3 não permite isso. Você pode considerar um object storage como sendo um repositório remoto para armazenamento de arquivos. Tanto é que qualquer interação com o object storage deve ser feita via chamada de API.

Devido a facilidade de uso via API, sua alta durabilidade e disponibilidade, o S3 é largamente utilizado em aplicações Web para armazenar conteúdo estático. Também é muito usado como um repositório remoto de backups.

Uma outra grande vantagem do uso do S3 é que você somente será cobrado pelo que efetivamente usar. Se você estivesse usando um EBS, você teria de estimar o tamanho do disco necessário e provisiona-lo. Já com o S3 não existe desperdício de gasto com espaço que não é usado.

Bucket
Um bucket é um container (ou repositório) para objetos armazenados no S3. Cada objeto está contido em um bucket. Os buckets possuem várias finalidades, como: Organizar os namespaces do S3 em alto nível, identificação do dono da conta e controle de acesso. Cada bucket tem um tamanho ilimitado de dados que podem ser armazenados dentro dele. Cada arquivo pode ter um tamanho máximo de 5TB.

Existem dois tipos de URL’s de nome de bucket:

  • Estilo hospedado virtual: http://<nome_do_bucket>.s3-<nome_da_regiao>.amazonaws.com
  • Estilo de caminho: http://s3-<nome_da_regiao>.amazonaws.com/<nome_do_bucket>

Objetos
Os objetos são efetivamente as entidades armazenadas no S3, que consistem em metadados e dados do objeto. Um objeto é identificado exclusivamente em um bucket por uma chave (nome) e um ID de versão.

Chaves
Uma chave é um identificador exclusivo de um objeto em um bucket. Cada objeto em um bucket possui uma chave única. Para identificar um objeto é necessário: Bucket + chave + ID de versão.

Categorias de armazenamento
Existem basicamente 3 categorias de armazenamento que você pode escolher de acordo com seu workload.

S3 Standard
É o mais utilizado. Ele permite que você armazene seus dados com um custo muito baixo e mesmo assim permite que eles estejam disponíveis a qualquer momento.

Infrequent Access
Tem um custo mais baixo e também permite que você tenha acesso a seus dados a qualquer momento, porém ele é indicado para workloads em que os dados permanecem armazenados e sem uso por pelo menos 30 dias. Existe uma penalidade financeira caso os dados sejam requisitados antes desses 30 dias.

Glacier
É indicado para armazenar dados como histórico, próprio para workloads em que é preciso armazenar dados por um longo período de tempo por questões de compliance. É o tipo de armazenamento com o menor custo, porém existe uma penalidade financeira caso os dados precisem ser acessados antes de 90 dias. Também existe um tempo maior para que os dados fiquem disponíveis para acesso. Esse tempo varia de poucos minutos a algumas horas.

Como escolher qual tipo de armazenamento usar?
Basicamente você pode escolher seu tipo de armazenamento do seguinte modo:

Opte pelo EBS quando precisar de:

  • Volume de Sistema Operacional (root)
  • Dados devem ser rapidamente acessíveis
  • Persistência de longo prazo

Opte pelo S3 quando precisar de:

  • Capacidade ilimitada de armazenamento.
  • Alta durabilidade.
  • Armazenamento para backup.
  • Única origem de armazenamento para entregar conteúdo via CloudFront.