Criar buckets de diretório em uma zona de disponibilidade - Amazon Simple Storage Service

Criar buckets de diretório em uma zona de disponibilidade

Para começar a usar a classe de armazenamento Amazon S3 Express One Zone, crie um bucket de diretório. A classe de armazenamento S3 Express One Zone só pode ser usada com buckets de diretório. A classe de armazenamento S3 Express One Zone oferece suporte a casos de uso de baixa latência e fornece processamento de dados mais rápido em uma única zona de disponibilidade. Se sua aplicação é sensível à performance e se beneficia de latências inferiores a dez milissegundos para PUT e GET, recomendamos criar um bucket de diretório para que possa usar a classe de armazenamento S3 Express One Zone.

Há dois tipos de buckets do Amazon S3: buckets de uso geral e buckets de diretório. Você deve escolher o tipo de bucket que melhor se adapte aos requisitos de desempenho e da aplicação. Os buckets de uso geral são o tipo original de bucket do S3. Os buckets de uso geral são recomendados para a maioria dos casos de uso e padrões de acesso, permitindo que objetos sejam armazenados em todas as classes de armazenamento, exceto na classe S3 Express One Zone. Para obter mais informações sobre os buckets de uso geral, consulte Visão geral dos buckets de uso geral.

Os buckets de diretório usam a classe de armazenamento S3 Express One Zone, projetada para workloads ou aplicações de performance crítica que exigem latência consistente inferior a dez milissegundos. S3 Express One Zone é a primeira classe de armazenamento do S3 em que é possível selecionar uma única zona de disponibilidade com a opção de manter o armazenamento de objetos e os recursos de computação na mesma localização, o que fornece a maior velocidade de acesso possível. Ao criar um bucket de diretório, você tem a opção de especificar uma Região da AWS e uma zona de disponibilidade que seja local para suas instâncias computacionais do Amazon EC2, do Amazon Elastic Kubernetes Service ou do Amazon Elastic Container Service (Amazon ECS) a fim de otimizar a performance.

Com a classe S3 Express One Zone, os dados são armazenados de forma redundante em vários dispositivos dentro de uma única zona de disponibilidade. A classe S3 Express One Zone foi projetada para oferecer disponibilidade de 99,95% em uma única zona de disponibilidade e tem o respaldo do Acordo de Serviço do Amazon S3. Para obter mais informações, consulte Zonas de disponibilidade.

Os buckets de diretório organizam os dados de forma hierárquica em diretórios, ao contrário da estrutura de armazenamento plana dos buckets de uso geral. Não há limites de prefixo para os buckets de diretório, e diretórios individuais podem ser escalados horizontalmente.

Para obter mais informações sobre os buckets de diretório, consulte Trabalhar com buckets de diretório.

Nomes de bucket de diretório

Os nomes de bucket de diretório devem seguir o seguinte formato e estar em conformidade com as regras de nomenclatura para buckets de diretório:

bucket-base-name--zone-id--x-s3

Por exemplo, o seguinte nome de bucket de diretório contém o ID da zona de disponibilidade usw2-az1:

bucket-base-name--usw2-az1--x-s3

Para obter mais informações sobre as regras de nomenclatura para buckets de diretório, consulte Regras de nomenclatura de buckets de diretório.

  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Na barra de navegação na parte superior da página, escolha o nome da Região da AWS exibida no momento. Em seguida, escolha a região na qual você deseja criar um bucket.

    nota

    Para reduzir a latência e os custos e atender aos requisitos regulatórios, selecione uma região perto de você. Os objetos armazenados em uma região nunca saem dessa região, a menos que você os transfira para outra região. Para obter uma lista de Regiões da AWS do Amazon S3, consulte Endpoints de AWS service (Serviço da AWS) no Referência geral da Amazon Web Services.

  3. No painel de navegação à esquerda, escolha Buckets de diretórios.

  4. Selecione Create bucket (Criar bucket). A página Create bucket (Criar bucket) é aberta.

  5. Em Configuração geral, visualize a Região da AWS onde o bucket será criado.

    Em Tipo de bucket, escolha Diretório.

    nota
    • Se você escolher uma região que não oferece suporte a buckets de diretório, a opção Tipo de bucket desaparecerá e o tipo de bucket assumirá um bucket de uso geral como padrão. Para criar um bucket de diretório, escolha uma região compatível. Para obter uma lista de regiões que oferecem suporte a buckets de diretório e à classe de armazenamento Amazon S3 Express One Zone, consulte Zonas de disponibilidade e regiões da classe S3 Express One Zone.

    • Depois de criar o bucket, não será possível alterar o tipo.

    nota

    A zona de disponibilidade não poderá ser alterada após a criação do bucket.

  6. Em Zona de disponibilidade, escolha uma zona de disponibilidade que seja local para os seus serviços de computação. Para obter uma lista de zonas de disponibilidade que oferecem suporte a buckets de diretório e à classe de armazenamento S3 Express One Zone, consulte Zonas de disponibilidade e regiões da classe S3 Express One Zone.

    Em Zona de disponibilidade, marque a caixa de seleção para indicar que, em caso de interrupção na zona de disponibilidade, seus dados poderão ficar indisponíveis ou ser perdidos.

    Importante

    Embora os buckets de diretório sejam armazenados em vários dispositivos dentro de uma única zona de disponibilidade, eles não armazenam dados de forma redundante entre zonas de disponibilidade.

  7. Em Nome do bucket, insira um nome para o bucket de diretório.

    As regras de nomenclatura a seguir se aplicam a buckets de diretório.

    • O nome deve ser exclusivo na zona escolhida (zona de disponibilidade da AWS ou zona local da AWS).

    • O nome deve ter entre 3 (mín.) e 63 (máx.) caracteres, incluindo o sufixo.

    • Consistir em letras minúsculas, números e hifens (-).

    • Inicie e termine com uma letra ou um número.

    • Deve incluir o seguinte sufixo: --zone-id--x-s3.

    • O nome do bucket não deve iniciar com o prefixo xn--.

    • O nome do bucket não deve iniciar com o prefixo sthree-.

    • O nome do bucket não deve iniciar com o prefixo sthree-configurator.

    • O nome do bucket não deve iniciar com o prefixo amzn-s3-demo-.

    • Os nomes de bucket não podem terminar com o sufixo -s3alias. Esse sufixo se reserva a nomes de alias de ponto de acesso. Para obter mais informações, consulte Alias de ponto de acesso.

    • Os nomes de bucket não podem terminar com o sufixo --ol-s3. Esse sufixo é reservado a nomes de alias de ponto de acesso de objeto do Lambda. Para obter mais informações, consulte Como usar um alias no estilo do bucket para o ponto de acesso do Object Lambda do bucket do S3.

    • Os nomes de bucket não podem terminar com o sufixo .mrap. Esse sufixo é reservado para nomes de ponto de acesso de várias regiões. Para obter mais informações, consulte Regras para nomear pontos de acesso multirregionais do Amazon S3.

    Um sufixo é adicionado automaticamente ao nome de base que você fornece ao criar um bucket de diretório usando o console. Esse sufixo inclui o ID da zona de disponibilidade que você escolheu.

    Depois de criado o bucket, você não pode mudar seu nome. Para obter mais informações sobre como nomear buckets, consulte Regras de nomenclatura de buckets de uso geral.

    Importante

    Não inclua informações confidenciais, como números de conta, no nome do bucket. O nome do bucket é visível nos URLs que apontam para os objetos no bucket.

  8. Em Propriedade do objeto, a configuração Imposto pelo proprietário do bucket está habilitada automaticamente e todas as listas de controle de acesso (ACLs) estão desabilitadas. Para os buckets de diretório, não é possível habilitar ACLs.

    Imposto pelo proprietário do bucket (padrão): as ACLs são desabilitadas e o proprietário do bucket automaticamente tem propriedade e controle total sobre todos os objetos do bucket de uso geral. As ACLs não afetam mais as permissões de acesso aos dados no bucket de uso geral do S3. O bucket usa políticas exclusivamente para definir o controle de acesso.

  9. Em Configurações de bloqueio do acesso público deste bucket, todas as configurações da funcionalidade Bloqueio de Acesso Público para o bucket de diretório estão automaticamente habilitadas. Não é possível modificar essas configurações para buckets de diretório. Para obter mais informações sobre como bloquear o acesso público, consulte Bloquear o acesso público ao armazenamento do Amazon S3.

  10. Para configurar a criptografia padrão, em Tipo de criptografia, selecione uma das seguintes opções:

    • Criptografia do lado do servidor com chave gerenciada pelo Amazon S3 (SSE-S3)

    • Criptografia do lado do servidor com chave do AWS Key Management Service (SSE-KMS)

    Para obter mais informações sobre como usar a criptografia no lado do servidor do Amazon S3 para criptografar seus dados, consulte Proteção e criptografia de dados.

    Importante

    Se você usar a opção SSE-KMS em sua configuração de criptografia padrão, estará sujeito à cota de solicitações por segundo (RPS) do AWS KMS. Para obter mais informações sobre as cotas do AWS KMS e como solicitar um aumento de cota, consulte Cotas no Guia do desenvolvedor do AWS Key Management Service.

    Ao habilitar a criptografia padrão, poderá ser necessário atualizar a política de bucket. Para obter mais informações, consulte Usar criptografia SSE-KMS para operações entre contas.

  11. Se você escolher Criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3), aparecerá Habilitado em Chave do bucket. As chaves de bucket do S3 são sempre habilitadas quando você configura o bucket de diretório para usar a criptografia padrão com SSE-S3. As chaves de bucket do S3 estão sempre habilitadas para operações GET e PUT em um bucket de diretório e não podem ser desabilitadas. Não são aceitas chaves de bucket do S3 quando você copia objetos criptografados por SSE-KMS de buckets de uso geral para buckets de diretório, de buckets de diretório para buckets de uso geral ou entre buckets de diretório, por meio de CopyObject, de UploadPartCopy, da operação Copy em Operações em Lote ou de trabalhos de import. Nesse caso, o Amazon S3 faz uma chamada para o AWS KMS sempre que uma solicitação de cópia é feita para um objeto criptografado pelo KMS.

    As chaves de bucket do S3 diminuem o custo de criptografia reduzindo o tráfego de solicitações do Amazon S3 para o AWS KMS. Para obter mais informações, consulte Redução do custo do SSE-KMS com chaves de bucket do Amazon S3.

  12. Se você escolher Criptografia do lado do servidor com chave do AWS Key Management Service (SSE-KMS), em Chave do AWS KMS, especifique uma chave do AWS Key Management Service de uma das maneiras a seguir ou crie uma chave.

    • Para escolher uma chave do KMS na lista disponível, selecione Escolher entre suas AWS KMS keys e escolha sua Chave do KMS em AWS KMS keys disponíveis.

      Somente as suas chaves gerenciadas pelo cliente são exibidas nessa lista. Não é possível usar o Chave gerenciada pela AWS (aws/s3) em buckets de diretório. Para ter mais informações sobre chaves gerenciadas pelo cliente, consulte Chaves de clientes e chaves da AWS no Guia do desenvolvedor do AWS Key Management Service.

    • Para inserir o ARN ou o alias da chave do KMS, escolha Inserir ARN da AWS KMS key e insira o ARN ou o alias da chave do KMS em ARN da AWS KMS key.

    • Para criar uma chave gerenciada pelo cliente no console do AWS KMS, selecione Criar uma chave do KMS.

      Para ter mais informações sobre como criar uma AWS KMS key, consulte Criação de chaves no Guia do desenvolvedor do AWS Key Management Service.

    Importante
    • A configuração de SSE-KMS só comporta uma chave gerenciada pelo cliente por bucket de diretório durante a vida útil do bucket. Não há suporte para Chave gerenciada pela AWS (aws/s3). Além disso, depois que você especifica uma chave gerenciada pelo cliente para SSE-KMS, não é possível substituí-la pela configuração de SSE-KMS do bucket.

      É possível identificar a chave gerenciada pelo cliente que você especificou para a configuração SSE-KMS do bucket, da seguinte forma:

      • Faça uma solicitação de operação de API HeadObject para encontrar o valor de x-amz-server-side-encryption-aws-kms-key-id em sua resposta.

      Para usar uma nova chave gerenciada pelo cliente em seus dados, recomendamos copiar os objetos existentes em um novo bucket de diretório com uma nova chave gerenciada pelo cliente.

    • Você só pode usar chaves do KMS disponíveis na mesma Região da AWS que o bucket. O console do Amazon S3 lista somente as primeiras 100 chaves do KMS na mesma região que o bucket. Para usar uma chave do KMS que não esteja listada, você deve inserir o ARN da chave do KMS. Se quiser usar uma chave do KMS que seja de propriedade de outra conta, primeiro você deverá ter permissão para usar a chave e, depois, inserir o ARN da chave do KMS. Para obter mais informações sobre permissões entre contas para chaves do KMS, consulte Criar chaves do KMS que outras contas podem usar no Guia do desenvolvedor do AWS Key Management Service. Para obter mais informações sobre a SSE-KMS, consulte Especificar a criptografia do lado do servidor com o AWS KMS (SSE-KMS) para novos uploads de objetos em buckets de diretório.

    • Ao usar uma AWS KMS key para criptografia do lado do servidor em buckets de diretório, você deve escolher uma chave de criptografia do KMS simétrica. O Amazon S3 só é compatível com chaves do KMS de criptografia simétrica, e não com chaves assimétricas do KMS. Para ter mais informações, consulte Identificar chaves do KMS simétricas e assimétricas no Guia do desenvolvedor do AWS Key Management Service.

    Para obter mais informações sobre como usar o AWS KMS com o Amazon S3, consulte Usar a criptografia do lado do servidor com chaves do AWS KMS (SSE-KMS) em buckets de diretório.

  13. Escolha Criar bucket. Depois de criar o bucket, você pode adicionar arquivos e pastas a ele. Para obter mais informações, consulte Trabalhar com objetos em um bucket de diretório.

SDK for Go

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK para Go.

var bucket = "..." func runCreateBucket(c *s3.Client) { resp, err := c.CreateBucket(context.Background(), &s3.CreateBucketInput{ Bucket: &bucket, CreateBucketConfiguration: &types.CreateBucketConfiguration{ Location: &types.LocationInfo{ Name: aws.String("usw2-az1"), Type: types.LocationTypeAvailabilityZone, }, Bucket: &types.BucketInfo{ DataRedundancy: types.DataRedundancySingleAvailabilityZone, Type: types.BucketTypeDirectory, }, }, }) var terr *types.BucketAlreadyOwnedByYou if errors.As(err, &terr) { fmt.Printf("BucketAlreadyOwnedByYou: %s\n", aws.ToString(terr.Message)) fmt.Printf("noop...\n") return } if err != nil { log.Fatal(err) } fmt.Printf("bucket created at %s\n", aws.ToString(resp.Location)) }
SDK for Java 2.x

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK for Java 2.x.

public static void createBucket(S3Client s3Client, String bucketName) { //Bucket name format is {base-bucket-name}--{az-id}--x-s3 //example: doc-example-bucket--usw2-az1--x-s3 is a valid name for a directory bucket created in //Region us-west-2, Availability Zone 2 CreateBucketConfiguration bucketConfiguration = CreateBucketConfiguration.builder() .location(LocationInfo.builder() .type(LocationType.AVAILABILITY_ZONE) .name("usw2-az1").build()) //this must match the Region and Availability Zone in your bucket name .bucket(BucketInfo.builder() .type(BucketType.DIRECTORY) .dataRedundancy(DataRedundancy.SINGLE_AVAILABILITY_ZONE) .build()).build(); try { CreateBucketRequest bucketRequest = CreateBucketRequest.builder().bucket(bucketName).createBucketConfiguration(bucketConfiguration).build(); CreateBucketResponse response = s3Client.createBucket(bucketRequest); System.out.println(response); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
AWS SDK para JavaScript

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK para JavaScript.

// file.mjs, run with Node.js v16 or higher // To use with the preview build, place this in a folder // inside the preview build directory, such as /aws-sdk-js-v3/workspace/ import { S3 } from "@aws-sdk/client-s3"; const region = "us-east-1"; const zone = "use1-az4"; const suffix = `${zone}--x-s3`; const s3 = new S3({ region }); const bucketName = `...--${suffix}`; const createResponse = await s3.createBucket( { Bucket: bucketName, CreateBucketConfiguration: {Location: {Type: "AvailabilityZone", Name: zone}, Bucket: { Type: "Directory", DataRedundancy: "SingleAvailabilityZone" }} } );
SDK para .NET

Este exemplo mostra como criar um bucket de diretório usando o SDK para .NET.

using (var amazonS3Client = new AmazonS3Client()) { var putBucketResponse = await amazonS3Client.PutBucketAsync(new PutBucketRequest { BucketName = "DOC-EXAMPLE-BUCKET--usw2-az1--x-s3", PutBucketConfiguration = new PutBucketConfiguration { BucketInfo = new BucketInfo { DataRedundancy = DataRedundancy.SingleAvailabilityZone, Type = BucketType.Directory }, Location = new LocationInfo { Name = "usw2-az1", Type = LocationType.AvailabilityZone } } }).ConfigureAwait(false); }
SDK for PHP

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK for PHP.

require 'vendor/autoload.php'; $s3Client = new S3Client([ 'region' => 'us-east-1', ]); $result = $s3Client->createBucket([ 'Bucket' => 'doc-example-bucket--use1-az4--x-s3', 'CreateBucketConfiguration' => [ 'Location' => ['Name'=> 'use1-az4', 'Type'=> 'AvailabilityZone'], 'Bucket' => ["DataRedundancy" => "SingleAvailabilityZone" ,"Type" => "Directory"] ], ]);
SDK for Python

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK para Python (Boto3).

import logging import boto3 from botocore.exceptions import ClientError def create_bucket(s3_client, bucket_name, availability_zone): ''' Create a directory bucket in a specified Availability Zone :param s3_client: boto3 S3 client :param bucket_name: Bucket to create; for example, 'doc-example-bucket--usw2-az1--x-s3' :param availability_zone: String; Availability Zone ID to create the bucket in, for example, 'usw2-az1' :return: True if bucket is created, else False ''' try: bucket_config = { 'Location': { 'Type': 'AvailabilityZone', 'Name': availability_zone }, 'Bucket': { 'Type': 'Directory', 'DataRedundancy': 'SingleAvailabilityZone' } } s3_client.create_bucket( Bucket = bucket_name, CreateBucketConfiguration = bucket_config ) except ClientError as e: logging.error(e) return False return True if __name__ == '__main__': bucket_name = 'BUCKET_NAME' region = 'us-west-2' availability_zone = 'usw2-az1' s3_client = boto3.client('s3', region_name = region) create_bucket(s3_client, bucket_name, availability_zone)
SDK for Ruby

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK para Ruby.

s3 = Aws::S3::Client.new(region:'us-west-2') s3.create_bucket( bucket: "bucket_base_name--az_id--x-s3", create_bucket_configuration: { location: { name: 'usw2-az1', type: 'AvailabilityZone' }, bucket: { data_redundancy: 'SingleAvailabilityZone', type: 'Directory' } } )

Este exemplo mostra como criar um bucket de diretório usando o AWS CLI. Para usar o comando, substitua os espaços reservados para entrada do usuário por suas próprias informações.

Ao criar um bucket de diretório, você deve fornecer detalhes de configuração e usar a seguinte convenção de nomenclatura: bucket-base-name--zone-id--x-s3.

aws s3api create-bucket --bucket bucket-base-name--zone-id--x-s3 --create-bucket-configuration 'Location={Type=AvailabilityZone,Name=usw2-az1},Bucket={DataRedundancy=SingleAvailabilityZone,Type=Directory}' --region us-west-2

Para obter mais informações, consulte create-bucket na AWS Command Line Interface.