AWS CLI - S3, por que preciso especificar uma região?

1

Então, meu balde Alpha está em uma região chamada REGION1 .

Meu balde Beta está em uma região diferente, vamos chamá-lo de REGION2 .

Entro na minha instância do EC2 e uso este comando:

aws s3 cp s3://Alpha/meh.txt ./meh.txt

Funciona! Por enquanto, tudo bem. Isso funciona perfeitamente.

Mas, quando eu faço este comando: aws s3 cp s3://Beta/qwe.txt ./qwe.txt

Recebo a seguinte mensagem de erro:

fatal error: An error occurred (400) when calling the HeadObject operation: Bad Request

O erro acima só pode ser corrigido se eu especificar o sinalizador de região. Por que é que? Como eu pensei que os nomes dos buckets eram únicos, independentemente da região, por que deveria especificar uma região?

Existe uma maneira de impedir que isso aconteça sem especificar uma região? Talvez uma política especial ou algo assim?

Obrigado.

    
por Kurosaki Ichigo 25.08.2017 / 18:01

1 resposta

0

Apenas a AWS sabe a resposta para isso. A AWS pode remover esse requisito, mas acho que eles querem que você seja explícito.

Seria simples o suficiente para fazer automaticamente. Quando o cliente recebe uma solicitação para um bucket, um serviço de pesquisa central pode determinar a região do bucket e enviar a solicitação para ele. Isso, no entanto, cria um único ponto de falha. Você poderia contornar isso executando o serviço de pesquisa em todas as regiões e tendo todos os pontos de extremidade no cliente, mas isso é mais código, mais configuração, mais serviços para executar, mais serviços levando a CPU.

Se eles não quisessem executar um serviço de pesquisa, os pedidos teriam que passar por um ponto central, com proxy para sua região. Isso leva a CPU e a largura de banda.

É provavelmente mais fácil e mais eficiente especificar a região do que as outras opções.

    
por 25.08.2017 / 21:40