AWS Storage e Data Services

Amazon AWS oferece uma série de serviços relacionados ao armazenamento e acesso aos dados. Podemos categorizar estes serviços entre Amazon Storage (S3, Glacier, EC2 Instance Storage, EBS, EFS e Cloudfront) e Amazon Data Services (AWS Storage Gateway e AWS Snowball). Neste artigo veremos os detalhes de cada um deles.

Antes de começarmos a falar de Amazom AWS, vamos categorizar os serviços de armazenamento de dados (em geral, não apenas Amazon) da seguinte forma:

  • Block Storage
    Os dados são armazenados em lotes (blocos). Esses blocos são armazenados em um volume e anexados à uma determinada instância. Esse tipo de armazenamento de dados oferece uma latência muito baixa e pode ser comparado às unidades DAS usadas em arquiteturas on premisse.
  • File Storage
    Os dados são armazenados em arquivos e distribuídos em diretórios. Esses arquivos são alocados em um file system e é possível definir permissões de acesso aos diferentes grupos e usuários. Em uma arquitetura on premisse, podemos comparar este tipo de armazenamento com as unidades NAS.
  • Object Storage
    Objetos são armazenados em um um ambiente único e identificado por chave e metadados.

Agora sim, vamos aos serviços da Amazon.

Amazon Storage Services

S3 (Amazon Simple Storage Service)

Amazon S3 é um serviço de object storage com alta disponibilidade, durabilidade, escalabilidade e de simples acesso. Objetos S3 podem ter de 0 bytes a 5 terabytes. Quando um objeto é armazenado no S3, é necessário definir uma região (Availability Zone – AZ). Esta mesma AZ é utilizada para replicar os dados em diferentes servidores.

Objetos são armazenados dentro de componentes conhecidos como buckets. Análogo aos serviços de file storage, você pode enxergar um bucket como uma espécie de “path absoluto” relacionado ao diretório em que seus objetos serão armazenados. Estes buckets devem ter nomes únicos dentro da região em que foram criados.

Uma vez que o bucket foi criado, você pode fazer upload dos seus arquivos diretamente no bucket ou dentro de “subfolders” criadas no bucket. Por padrão, é possível criar até 100 buckets por conta AWS (mas este número pode ser aumentado sob solicitação prévia).

Amazon S3 possui algumas classes de storage que podem ser selecionadas durante a configuração do serviço. A seguir iremos colocar estas classes em diferentes categorias para entendermos melhor:

Acesso frequente

  • Standard
  • Reduced Redundancy Storage (RRS)
    RRS não é mais recomendado pela AWS por questões de custo (opção Standard é mais eficiente).

Acesso não frequente
Oferecem a mesma velocidade de acesso que a classe Standard. No entanto, para estas classes de acesso infrequente são aplicados custos adicionais para consultar os dados.

  • Standard – IA (Infrequent Access)
  • One Zone – IA (Infrequent Access)
    Não replica os dados entre diferentes Availability Zones (AZ). Portanto, apenas deve ser usado se você consegue reproduzir os dados em caso de perda. Esta classe possui menor custo quando comparada com Standard IA

Intelligent Tiering
Utilizado quando não se conhece o padrão de acesso aos dados (frequente ou infrequente). Formada por duas camadas: acesso frequente e acesso infrequente. Quando os dados não são utilizados por 30 dias os mais, então os mesmos são transportados de uma camada (frequente) para a outra (infrequente) com o objetivo de otimização de custo. Neste modelo, cada objeto deve possui mais do que 128KB e existe um custo mensal associado a cada objeto desta classe de armazenamento.

Bom, dado esse conjunto de classes, estas são as perguntas que você deve responder antes de escolher o serviço de armazenamento:

  1. Qual a frequência de acesso aos dados?
  2. Qual a criticidade dos dados?
  3. Qual o nível de reprodutividade dos dados?

Em termos de segurança, S3 oferece os seguintes recursos:

  • Bucket policies
    Controla acesso aos dados armazenados no bucket (permissão por usuáro, IP, período, etc)
  • Access Control Lists (ACL)
    Controla apenas o acesso público aos dados (por parte de usuários externos)
  • Data Encryption
    Oferece métodos para encriptar os dados.

    • Server-side encryption (SSE-S3, SSE-KMS, SSE-C)
    • Client-side encryption (CSE-KMS)

Já em termos de gerenciamento de dados, S3 oferece os seguintes recursos:

  • Versioning
    Permite múltiplas versões do mesmo objeto e pode ser útil para restaurar objetos. Por padrão este recurso vem desabilitado. Você pode habilitar o recurso, porém acarretá em custos extras. Uma vez habilitado, apenas é possível suspender o recurso (desabilitar não é possível)
  • Lifecycle rules
    Você pode criar regras para gerenciar os objetos a fim de otimizar recursos e custos (por exemplo, remover objeto após certo tempo ou mover objetos de uma classe de armazenamento para outra).

Alguns casos de uso comuns que utilizam Amazon S3 são: backup de arquivos, armazenamento de websites e conteúdos estáticos, criação de data lake e integração com outros serviços Amazon que necessitam de um local para armazenamento de dados.

Por outro lado, Amazon S3 não é recomendado para casos de uso como: arquivamento de dados de longa duração, dados alterados com muita frequência, dados que necessitam de um sistema de arquivos e dados estruturados que precisam ser consultados.

Amazon Glacier

Serviço de armazenamento de dados de baixo custo recomendado para backups de longa duração. Também é conhecido como cold storage, pois não fornece acesso instantâneo aos dados.

Amazon Glacier não possui buckets nem diretórios. Ao invés disso, introduz os termos:

  • Vaults
    São regionais e atuam como containers para os Glacier Achives (dentro dos Vaults você pode salvar os dados como Archives)
  • Archive
    São os objetos que serão salvos, similar aos objetos do S3

Dica: você pode configurar uma lifecycle rule do S3 para mover dados não utilizados para um Glacier Archive.

Você tem três opções para recuperar dados de um Glacier Archive:

  • Expedited: para acesso urgente aos dados (disponibilizados de 1 a 5 minutos, mas limitado a arquivos de até 250MB)
  • Standard: os dados são disponibilizados num período de 3 a 5 horas
  • Bulk: utilizado para recuperar grandes volumes de dados (petabytes). Leva de 5 a 12 horas para disponibilizar os dados.

Como você pode imaginar, expedited é a opção mais cara, standard possui o custo médio e bulk possui o menor custo.

No Amazon Glacier, os dados são encriptados por meio do algoritmo AES-256 encryption e o controle de acesso pode ser definido por meio de Vault Access Policies (permissões de acesso) e Vault Lock Policies (gerenciamento dos dados, ex.: não é permitido remover os dados por um período mínimo de 5 anos).

EC2 Instance Store

EC2 instance stores são unidades de armazenamento de dados que pertencem às instâncias do EC2, ou seja, estas unidades existem dentro do escopo de uma instância EC2.

Este tipo de armazenamento é classificado como ephemeral storage (temporário), já que se sua instância EC2 for parada ou terminada, os dados armazenados neste tipo de storage serão perdidos. Se a instância for apenas reiniciada, os dados continuarão intactos.

Os benefícios de se utilizar este tipo de storage são:

  • Não existe cobrança adicional para usá-lo, pois o custo já está incorporado no custo da instância EC2 vinculada ao volume.
  • Oferece alta velocidade de I/O

Use este tipo de volume em casos de uso como armazenamento de dados de cache/buffer ou casos em que o dado pode ser persistido de forma temporária.

Nem todos os tipos de instâncias do EC2 suportam este tipo de armazenamento. Já as configurações de segurança, devem ser feitas na própria configuração da instância EC2.

Amazon Elastic Block Storage (EBS)

Este é um serviço de armazenamento de dados que pertence à classe de block storage. Embora você consiga anexar/adicionar uma unidade de disco EBS à sua instância EC2, este é um serviço independente da Amazon AWS. Por este motivo, você pode tanto criar um volume EBS no mesmo momento da criação de uma instância EC2 ou de forma independente.

Note: se for criar um volume EBS de forma independente, garanta que o mesmo foi criado na mesma Availability Zone (AZ) da sua instância EC2, caso contrário, não será possível anexar a unidade à instância.

Uma instância pode ter várias unidade EBS, porém uma unidade EBS pode ser anexada apenas à uma instância EC2. Diferentemente do EC2 Instance Store, EBS permite o armazenamento de dados de forma permanente (embora seja possível configurá-lo para ser removido quando a instância for terminada).

EBS permite que sejam feitos snapshots (backups) da unidade em tempo em tempo (ou manualmente). Esse recurso é chamado de EBS Snapshot. Na prática, estes snapshots são armazenados no S3; portanto, lembre-se que a política de preços do Amazon S3 será aplicada aqui também.

Vale a pena ressaltar também que a própria Amazon garante a disponibilidade dos dados por meio de replicações para outras unidade EBS dentro da mesma Availability Zone (AZ).

Existem dois tipos de volumes EBS, cada um deles possui duas opções (confira os detalhes na contração dos serviços):

  • SSD (opções de General Purposes SSD e Provisioned IOPS)
    Ideal para volumes de dados menores, databases que possuem cargas transacionais, boot volumes para instâncias EC2
  • HDD (opções de Cold HDD e throughtput optimized)
    Ideal para cargas que exigem taxa maior de throughtput maiores (MB/s), como processamento de dados em data lakes.

EBS possui suporte para encriptação, por meio do algoritmo AES-256, e é totalmente gerenciado pelo próprio serviço EBS (o próprio serviço se integra com Amazon KMS para resolver esta questão).

Por fim, você pode configurar uma volume EBS para crescer automaticamente, se necessário (lembre-se: ELASTIC Block Storage). Em termos de preço, paga-se por tamanho do volume/mês. Os preços podem variar cada cada região.

Amazon Elastic File System (EFS)

Pertence à classe de file level storage e permite o compartilhamento de arquivos entre instâncias. Assim como S3, não é necessário especificar tamanho de volume, pois o tamanho é ajustado conforme uso (limitless capacity).

Este tipo de volume é permitido apenas em instâncias que rodam Linux e é necessário que o NFS client esteja instalado na instância para que seja possível montar a unidade.

EFS oferece uma ferramenta chamada EFS File System para a transferência de informações para um volume EFS. Por exemplo, você pode usar esta ferramenta para mover dados que estão dentro de um dta center ou dentro de uma instância EC2.

Amazon CloudFront

Amazon CloudFront atua como um Content Delivery Network (CDN). Distribui os dados que devem ser trafegados na internet para uma edge location perto do usuário. A origem destes dados pode ser o S3; porém, os dados serão colocados em cache no destino (não há possibilidade de persistência longa). Portanto, use este serviço para reduzir a latência de acesso aos dados do seu website, por exemplo.

AWS edge locations são locais populosos, em várias partes do mundo, onde a Amazon não faz deploy de sua infraestrutura (não pertencem às regões disponibilizadas pela Amazon para subir um determinado serviço). Assim, você pode usar uma edge location para disponibilizar as páginas do seu website e beneficiar usuários próximos àquela edge location, já que os dados para renderizar o seu site já estão em uma localização próxima ao usuário.

AWS CloudFront usa um componente conhecido como distributions para disponibilizar dados em edge locations. Este componente é capaz de distribuir os dados de duas formas:

  • Web Distribution
    Usado para distribuir conteúdos estáticos ou dinâmicos por meio dos protocolos HTTP ou HTTPS. Permite que você adicione ou remova objetos, fornece suporte à live stream e usa uma “origin” para saber de onde vêm os dados (web server, instância EC2 ou bucket S3)
  • RTMP Distribution
    Usado para distribuir streaming media por meio do protocolo RTMP. Os dados de origem devem ser obrigatoriamente armazenados no S3

Para adicionar segurança à esta transferência de dados, você pode adicionar criptografia de dados por meio de SSL certificates e também integrar CloudFront com WAF (Web Application Firewall).

Amazon Data Services

AWS Storage Gateway

Atua como uma ponte para conexão entre um data center (on premisse storage) e os serviços Amazon S3 e Glacier. Storage Gateway pode ser baixado como uma Máquina Virtual e permite três tipos diferentes de configurações:

  • File Gateway
    Permite que você armazene arquivos como objetos do S3. Você pode mapear unidades de disco que apontam para o S3, de forma que pareçam unidades de disco locais. File Gateway coloca em cache os arquivos mais utilizados para reduzir a latência de acesso aos dados.
  • Volume Gateway
    Usado para fazer backup dos seus arquivos para o S3. As suas unidades locais (NAS/SAN/DAS) são sincronizadas, de forma assíncrona, com o Amazon S3 por meio de EBS snapshots. Existe um storage buffer que utiliza volumes locais para criar pontos de sincronização (como se fosse uma staging).
  • Tape Gateway
    Ideal para backups e possui integração com S3 e AWS Glacier.

AWS Snowball

Usado para receber/enviar grandes quantidades de dados dos/para os serviços de storage da Amazon AWS (petabytes). Amazon Snowball utiliza um appliance que garante alta velocidade de transferência de dados. Você pode usar este serviço para criar políticas de recuperação de desastre, na qual você precisa copiar grandes volumes de dados para o S3 (ou recuperar grandes volumes de dados do S3) para continuar o negócio.

Na prática, estes Snowball appliances serão alocados unicamente para realizar a tarefa que você deseja. Após sua conclusão, os mesmos são devolvidos para Amazon. Note que existe um processo que deve ser seguido para realizar esta transferência de dados (este processo envolve requisição dos appliances, configuração de conexão, configuração de rede, dentre outros).

Precificação

Leve em consideração que os recursos que vimos aqui possuem diferentes formas de precificação. No entanto, todos eles, de alguma forma, levarão em consideração os seguintes aspectos:

  1. Storage
  2. Requests
  3. Data Transfer
  4. Region

 

Fonte: Cloud Academy – Amazon Storage Foundation

1 comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: