Conceitos Básicos do Amazon S3

s3bucket1
Compartilhar no facebook
Compartilhar no linkedin
Compartilhar no twitter
Compartilhar no whatsapp
Sobre o autor: Guilherme Teles é um cara qualquer que não dorme direito e acaba escrevendo. Sou Certificado CISSP, CHFI, CEH, LPIC-3, AWS CDA, AWS SAA, AWS SOA Quer assinar a newsletter do site e receber esse e outros artigos? Clique aqui! Aproveite e navegue pelo smeu blog. Quem sabe você não está exatamente precisando de uma ajuda ?  

Buckets

Um bucket é um recipiente (pasta web) para objetos (arquivos) armazenados no Amazon S3. Todo o objeto Amazon S3 está contido em um bucket. Os buckets formam o namespace de nível superior para o Amazon S3 e os nomes dos buckets são globais. Isso significa que seus nomes de bucket devem ser únicos em todas as contas AWS, bem como nomes de domínio do Sistema de Nomes de Domínio (DNS), não apenas dentro de sua própria conta. Os nomes dos buckets podem conter até 63 letras minúsculas, números, hifens e períodos. Você pode criar e usar vários buckets; você pode ter até 100 por conta por padrão.

É uma prática recomendada usar nomes de bucket que contenham seu nome de domínio e conforme as regras para os nomes de DNS. Isso garante que seus nomes de bucket sejam seus, e podem ser usados ??em todas as regiões e podem hospedar sites estáticos.

Regiões AWS

Embora o espaço para nome dos buckets Amazon S3 seja global, cada bucket Amazon S3 é criado em uma região específica que você escolher. Isso permite que você controle onde seus dados são armazenados.

Você pode criar e usar buckets que estão localizados perto de um determinado conjunto de usuários finais ou clientes, a fim de minimizar a latência, ou localizado em uma região específica para satisfazer as preocupações de localidade, ou localizado longe das suas instalações primárias para satisfazer necessidades de recuperação de desastres e conformidade. Você controla a localização de seus dados; os dados em um bucket Amazon S3 são armazenados nessa região, a menos que você o copie explicitamente para outro bucket localizado em uma região diferente.

Objetos

Os objetos são as entidades ou arquivos armazenados em buckets Amazon S3. Um objeto pode armazenar praticamente qualquer tipo de dados em qualquer formato. Os objetos podem variar em tamanho de 0 bytes até 5TB, e um único bucket pode armazenar um número ilimitado de objetos. Isso significa que o Amazon S3 pode armazenar uma quantidade praticamente ilimitada de dados.

Cada objeto consiste em dados (o próprio arquivo) e metadados (dados sobre o arquivo). A porção de dados de um objeto Amazon S3 é transparente para o Amazon S3. Isso significa que os dados de um objeto são tratados como simplesmente um fluxo de bytes – o Amazon S3 não conhece ou se importa com o tipo de dados que você está armazenando e o serviço não age de forma diferente para dados de texto versus dados binários.

Os metadados associados a um objeto Amazon S3 são um conjunto de pares nome / valor que descrevem o objeto.

Existem dois tipos de metadados: metadados do sistema e metadados do usuário. Os metadados do sistema são criados e usados ??pelo próprio Amazon S3, e inclui coisas como a última data modificada, o tamanho do objeto, o resumo MD5 e o HTTP Content-Type. Os metadados do usuário são opcionais e só podem ser especificados no momento em que um objeto é criado. Você pode usar metadados personalizados para marcar seus dados com atributos que são significativos para você.

Chaves

Todo objeto armazenado em um bucket S3 é identificado por um identificador exclusivo chamado chave. Você pode pensar na chave como um nome de arquivo. Uma chave pode ter até 1024 bytes de caracteres Unicode UTF-8, incluindo barras oblíquas, barras invertidas, pontos e traços.

As chaves devem ser exclusivas dentro de um único bucket, mas diferentes buckets podem conter objetos com a mesma chave. A combinação de bucket, chave e ID de versão opcional identifica exclusivamente um objeto Amazon S3.

URL do objeto

O Amazon S3 é um armazenamento para a Internet, e cada objeto do Amazon S3 pode ser endereçado por uma URL exclusiva formada usando o endpoint dos serviços da Web, o nome do bucket e a chave do objeto.

Por exemplo, com o URL:

http://meubucket.s3.amazonaws.com/guilherme.doc

mybucket é o nome da bucket S3 e jack.doc é a chave ou nome do arquivo. Se outro objeto for criado, por exemplo:

http://meubucket.s3.amazonaws.com/pata/peta/pita/pota/guilherme.doc

então o nome do bucket ainda é meubucket, mas agora a chave ou o nome do arquivo é a string
taxa / pata / peta / pita / guilherme.doc. Uma tecla pode conter caracteres delimitadores como barras ou barras invertidas para ajudá-lo a nomear e organizar logicamente seus objetos do Amazon S3, mas para o Amazon S3 é simplesmente um nome de chave longo em um espaço de nome plano.

Não há hierarquia de arquivos e pastas reais. Por conveniência, o console Amazon S3 e o recurso Prefixo e Delimitador permitem que você navegue dentro de um bucket Amazon S3 como se houvesse uma hierarquia de pastas. No entanto, lembre-se de que um bucket é um único espaço de nome simples de chaves sem estrutura.

Operações da Amazon S3

A API do Amazon S3 é intencionalmente simples, com apenas operações comuns. Eles incluem:

  • Criar / excluir um bucket
  • Escrever um objeto
  • Ler um objeto
  • Deletar um objeto
  • Listar chaves em um bucket

Interface REST

A interface nativa do Amazon S3 é uma API de Representational State Transfer (REST). Com a interface REST, você usa solicitações HTTP ou HTTPS padrão para criar e excluir buckets, listar chaves e ler e escrever objetos. REST mapeia verbos padrão HTTP (métodos HTTP) para as operações da família CRUD (Criar, Ler, Atualizar, Excluir). Criar é HTTP PUT (e às vezes POST); ler é HTTP GET; delete é HTTP DELETE; e a atualização é HTTP POST (ou às vezes PUT).

Sempre use HTTPS para solicitações da API do Amazon S3 para garantir suas solicitações e seus dados estejam seguros.

Na maioria dos casos, os usuários não usam a interface REST diretamente, mas interagem com o Amazon S3 usando uma das interfaces de nível superior disponíveis. Estes incluem os kits de desenvolvimento de software AWS (SDKs) (bibliotecas de wrapper) para iOS, Android, JavaScript, Java, .NET, Node.js, PHP, Python, Ruby, Go e C ++, a AWS Command Line Interface (CLI ) e AWS Management Console.

O Amazon S3 originalmente apoiava uma API SOAP (Simple Object Access Protocol). O Legacy HTTPS Endpoint ainda está disponível, mas os novos recursos não são suportados.

Durabilidade e Disponibilidade

A durabilidade e a disponibilidade dos dados são conceitos relacionados, mas ligeiramente diferentes. Durabilidade aborda a questão: “Será que meus dados ainda serão no futuro?”. A disponibilidade aborda a questão “Posso acessar meus dados agora?”.

O Amazon S3 foi projetado para fornecer alta durabilidade e alta disponibilidade para seus dados.

O armazenamento padrão Amazon S3 foi projetado para 99,999999999% de durabilidade e 99,99% de disponibilidade de objetos em um determinado ano. Por exemplo, se você armazena 10.000 objetos com Amazon S3, você pode, em média, esperar uma perda de um único objeto uma vez a cada 10.000.000 de anos.

O Amazon S3 obtém alta durabilidade ao armazenar dados automaticamente de forma redundante em múltiplas instalações dentro de uma região. Ele é projetado para manter a perda simultânea em duas instalações sem perda de dados do usuário. O Amazon S3 oferece armazenamento altamente duradouro projetado para armazenamento de dados críticos e de missão crítica.

Se você precisa armazenar dados derivados não críticos ou facilmente reproduzíveis que não requerem esse alto nível de durabilidade, você pode optar por usar o Reduced
Redundancy Storage
(Redução de Redução de Armazenamento) ou RRS a um custo menor.

O RRS oferece uma durabilidade de 99,99% com menor custo de armazenamento do que o armazenamento tradicional do Amazon S3.

Embora o armazenamento Amazon S3 ofereça uma durabilidade muito alta na infra-estrutura, ainda é uma prática recomendada para proteger contra a exclusão acidental de nível de usuário ou
substituição de dados usando recursos adicionais, como versões, replicação e exclusão de MFA entre regiões.

Consistência dos dados

O Amazon S3 é um sistema eventualmente consistente. Como seus dados são replicados automaticamente em vários servidores e locais dentro de uma região, as mudanças em seus dados podem levar algum tempo de propagação para todos os sites. Como resultado, existem algumas situações em que as informações que você lê imediatamente após uma atualização podem retornar dados obsoletos.

Para PUTs em novos objetos, isso não é uma preocupação, neste caso, o Amazon S3 fornece consistência read-afterwrite. No entanto, em PUTs para objetos existentes (substituição de objeto para uma chave existente) e para DELETEs de objeto, o Amazon S3 fornece consistência eventual.

A consistência possível significa que, se você colocar novos dados em uma chave existente, um GET subseqüente pode retornar os dados antigos. Da mesma forma, se você efetuar um DELETE em um objeto, um GET subseqüente para esse objeto ainda pode ler o objeto excluído. Em todos os casos, as atualizações de uma única chave são atômicas sempre que possível ler, você receberá os novos dados ou os dados antigos, mas nunca uma mistura inconsistente de dados.

Controle de acesso

O Amazon S3 é seguro por padrão; quando você cria um bucket ou objeto no Amazon S3, só você tem acesso. Para permitir que você dê acesso controlado a outras pessoas, o Amazon S3 fornece controles de acesso por ACL e gerenciamento de acesso e identidade da AWS IAM por meio de políticas e autenticação.

As ACLs do Amazon S3 permitem que você conceda certas permissões granulares como: READ, WRITE ou FULL-CONTROL no nível de objeto ou bucket. As ACLs são um mecanismo de controle de acesso legado, criado antes do IAM existir. Atualmente, as ACLs são usadas melhor para um conjunto limitado de casos de uso, como habilitar o registro de bucket ou fazer um bucket que hospeda um site estático, seja legível em todo o mundo.

As políticas de bucket Amazon S3 são o mecanismo de controle de acesso recomendado para o Amazon S3 e fornecem um controle muito mais fino. As políticas do Amazon S3 bucket são muito semelhantes às políticas IAM, mas são sutilmente diferentes nessas particularidades:

  • Eles estão associados ao recurso de bucket em vez de um principal do IAM.
  • Eles incluem uma referência explícita ao princípio IAM na política. Este principal pode
    ser associado a uma conta AWS diferente, de modo que as políticas do Amazon S3 bucket permitem que você atribua acesso à conta cruzada aos recursos do Amazon S3.

Usando uma política de bucket do Amazon S3, você pode especificar quem pode acessar o bucket, de onde (pelo bloqueio Classless [CIDR] ou endereço IP) e a que hora do dia.

Finalmente, as políticas IAM podem ser associadas diretamente as diretrizes IAM que concedem acesso a um bucket Amazon S3, assim como pode conceder acesso a qualquer serviço e recurso AWS. Obviamente, você só pode atribuir políticas IAM as diretrizes em contas AWS que você controla.

Hospedagem estática de sites

Um caso de uso muito comum para armazenamento Amazon S3 é hospedagem estática de sites. Muitos sites, particularmente micro-sites, não precisam dos serviços de um servidor web completo. Um site estático significa que todas as páginas do site contêm apenas conteúdo estático e não exigem processamento do lado do servidor, como PHP, ASP.NET ou JSP. (Note que isso não significa que o site não pode ser interativo e dinâmico, o que pode ser feito com scripts do lado do cliente, como o JavaScript incorporado em páginas HTML estáticas.).

Os sites estáticos têm muitas vantagens: são muito rápidos, muito escaláveis, e podem ser mais seguros do que um site dinâmico típico. Se você hospeda um site estático no Amazon S3, você também pode aproveitar a segurança, durabilidade, disponibilidade e escalabilidade do Amazon S3.

Como cada objeto S3 de Amazon possui uma URL, e é relativamente simples converter um bucket em um site. Para hospedar um site estático, você simplesmente configura um bucket para hospedagem de sites e, em seguida, carrega o conteúdo do site estático para o bucket.

Para configurar um bucket Amazon S3 para hospedagem estática de sites:

1. Crie um bucket com o mesmo nome que o nome do host do site desejado.
2. Carregue os arquivos estáticos para o bucket.
3. Torne todos os arquivos públicos (mundialmente legíveis).
4. Permita hospedagem estática de sites para o bucket . Isso inclui a especificação de um documento de índice e um documento de erro.
5. O site estará disponível no URL do site S3:
<bucket-name> .s3-website- <AWS-region> .amazonaws.com.
6. Crie um nome DNS amigável em seu próprio domínio para o site usando um DNS CNAME, ou um alias Amazon Route 53 que resolva o URL do site Amazon S3.
7. O site estará agora disponível no nome de domínio do seu site.

Sobre o autor: Guilherme Teles é um cara qualquer que não dorme direito e acaba escrevendo. Sou Certificado CISSP, CHFI, CEH, LPIC-3, AWS CDA, AWS SAA, AWS SOA Quer assinar a newsletter do site e receber esse e outros artigos? Clique aqui! Aproveite e navegue pelo smeu blog. Quem sabe você não está exatamente precisando de uma ajuda ?  

Conteúdos relacionados

All articles loaded
No more articles to load

© 2019 GRRP Tech. Todos os direitos reservados.

Desenvolvido por Upsites