Por que as solicitações spot do AWS EC2 sempre iniciam instâncias na mesma zona?

2

Eu criei solicitações pontuais em várias regiões diferentes da AWS. Na maioria das regiões, existe uma zona que é sempre mais barata do que as outras zonas, por isso, se eu criar uma solicitação de bola baixa nessa região, todas as instâncias que são criadas acabam na zona de preço baixo. Nenhuma surpresa lá.

No entanto, hoje criei solicitações pontuais em uma nova região. Eu criei 20 pedidos, todos com o mesmo preço. Na época, o preço à vista em ambas as zonas da região era praticamente o mesmo, e meu preço de oferta estava acima disso. Alguns meus pedidos foram atendidos e todos eles tiveram instâncias em uma zona. O preço naquela zona subiu, é claro, e correspondeu ao meu preço de oferta. Como o meu lance estava agora no preço à vista, alguns dos meus pedidos não foram atendidos. Isso aconteceu mesmo que o preço na outra zona permanecesse no mesmo nível e estivesse abaixo do meu preço de oferta.

Por que todas as minhas solicitações foram preenchidas em uma única zona, mesmo que houvesse capacidade disponível em outras zonas (a um preço menor)? Ao fazer as solicitações, não especifiquei uma zona (nem um grupo).

Editar: FWIW, não estou usando a interface de solicitações de pontos beta. Eu tentei algumas vezes no início deste mês, e parecia um pouco buggy para mim, então eu ainda estou usando a interface original.

    
por Armadillo Jim 09.02.2016 / 01:14

1 resposta

0

Quando você cria sua conta da AWS, a Amazon cria automaticamente uma VPC padrão em cada região que abrange a região. Ele também cria sub-redes padrão para você em cada região; cada sub-rede abrange uma única zona. (Observe o plural "subnets".) Não há como uma sub-rede abranger várias zonas.

Ao criar uma solicitação pontual, você tem a opção de especificar uma VPC e uma sub-rede. Se você quiser que sua solicitação pontual seja apenas para uma zona específica, escolha a sub-rede gerada por padrão para essa zona. (Isso resolve o comentário de Michael acima.) Isso funciona muito bem, e é como eu esperava que as coisas funcionassem.

No entanto, você também tem a opção de "sem preferência" na sub-rede (e na zona implícita). Eu entendi "sem preferência" para significar "qualquer sub-rede". Parece que não é o caso (mas gostaria de receber uma correção aqui), e que "nenhuma preferência" significa que a Amazon escolhe uma sub-rede para você entre as sub-redes padrão. Ou seja, eles escolhem uma zona para você (como a zona está implícita na sub-rede escolhida). Parece que eles escolhem a atual zona de baixo preço, mas é claro que nem sempre será a zona de baixo preço de todos os tempos. E uma vez que a zona é escolhida, é fixada para a vida da solicitação. (Para um pedido persistente, isso é para sempre.)

FWIW, outra possibilidade é criar um grupo de escalonamento automático e usar instâncias spot em vez de instâncias sob demanda. Com um grupo de escalonamento automático, você pode fazer com que o grupo abranja várias zonas. No entanto, parece que o grupo sempre tenta distribuir as solicitações por todas as regiões de maneira uniforme, independentemente do preço. Parece que não há uma opção para o grupo fazer solicitações na zona de preço mais baixo. Mas eu suponho que esse seja um tópico para outra pergunta ...

Atualização : não usei um grupo de escalonamento automático no começo porque é mais complicado do que apenas criar um grupo de solicitações pontuais. Mas, claro, isso também não funcionou. A resposta é: a única maneira de obter a zona de preço mais baixo é usar uma solicitação de frota spot.

Eu não fiz isso primeiro porque é mais complicado criar, requer que o usuário do IAM que está criando a frota tenha (levemente) mais permissões do que apenas ec2:* actions, e a interface ainda é um pouco instável. Consulte o link para começar. No entanto, tenha em atenção que esta ainda é beta e a documentação não está atualizada. As permissões também exigem "iam: GetRole", "iam: CreateRole", "iam: AttachRolePolicy". (O console irá avisá-lo sobre isso quando você tentar criar sua primeira frota spot. Aparentemente, você ainda precisa dessas permissões, mesmo que a função correta já exista ... vá em frente.)

Voltar ao meu problema original: ao criar a frota spot, escolha a estratégia "preço mais baixo" (que não é o padrão, como dizem os documentos, mas está disponível). Então - como no grupo de escalonamento automático ou na solicitação pontual - você deve "selecionar" as zonas e marcar todas elas (caso contrário, apenas a zona padrão é usada novamente).

Espero que alguém ache isso útil.

    
por 10.02.2016 / 18:58

Tags