← AWS Solutions Architect Associate: decisões de arquitetura
24 / 25 · 75 MIN

Selecionar computação, capacidade e prazos

Escolhe capacidade pelo trabalho executável, pelas dependências e pelo prazo completo; compara alternativas com medições equivalentes.

Começar pelo contrato do trabalho

Descreve duração, memória residente, paralelismo permitido, artefactos nativos, persistência e resultado aceite. Distingue serviço, capacidade e orquestração: ECS organiza containers, Fargate fornece execução sem administrar hosts EC2 e Batch organiza jobs.

Um job existente pode precisar de adaptação para caber numa função. A opção com menor tempo de CPU pode perder quando se inclui leitura, publicação e espera por dependências. Não compares um ensaio sem a biblioteca obrigatória com a execução completa.

A compatibilidade é um requisito de entrada: uma imagem arm64 precisa de binários e bibliotecas compatíveis, e uma simples etiqueta não os transforma.

Definir o âmbito da opção Lambda

Nas invocações convencionais aqui consideradas, o limite por invocação é 900 segundos. A documentação atual descreve exceções para Lambda Managed Instances em determinados modos; não generalizes o limite sem identificar a opção. A memória configurada também influencia a CPU atribuída.

Mede a duração depois de alterar memória: mais memória pode reduzir GB-s, aumentar GB-s ou não resolver uma espera externa. Um processamento de 24 minutos pode ser dividido em três etapas de oito apenas se existirem fronteiras válidas, resultados intermédios duráveis e retoma definida.

A divisão não autoriza repetir pagamentos ou publicar resultados duplicados.

Contar capacidade utilizável

Recursos agregados não garantem colocação. Oito jobs indivisíveis de 2 vCPU e 6 GiB precisam de quatro hosts de 8 vCPU e 16 GiB: cada host só aloja dois jobs por memória. Três hosts somam 48 GiB, mas não permitem repartir a memória de um job entre hosts.

Inclui reservas de operação, licenças e limites das dependências. Para 90 jobs de dez segundos em 60 segundos são precisos quinze workers em seis vagas. Se as ligações disponíveis são 24−8−4=12, adicionar CPU não torna esse plano viável.

Altera uma restrição através de uma decisão explícita e repete o ensaio.

Escalar segundo o trabalho e a prontidão

Duas filas de cem jobs podem representar cargas radicalmente diferentes. Se cada job demora um segundo numa fila e trinta na outra, o mesmo backlog exige capacidade diferente. Mede tempo de serviço, chegadas, trabalho pendente e limites externos.

Uma task pedida ainda não é uma task pronta: se arranca em quarenta segundos, um pico sem possibilidade de fila exige capacidade antecipada. Numa troca de containers, conserva a disponibilidade requerida e conta recursos temporários, incluindo endereços.

Uma única folga de endereço pode permitir trocar uma task de cada vez, desde que a nova fique saudável antes de retirar a antiga.

Separar tentativa, progresso e resultado

Um scheduler pode registar falha depois de o destino já ter recebido o resultado. Decide como reconhecer a mesma operação num retry. Se o destino suporta publicação atómica por chave estável, reutiliza a chave e reconcilia o resultado existente; uma chave nova por tentativa remove essa proteção.

Um checkpoint só reduz repetição se sobreviver à perda do worker e corresponder a progresso confirmado. Conta tempo de arranque, repetição e validação: perder três minutos, arrancar em quatro e validar em dois dá nove. Conservar menos progresso pode ser pior mesmo com um arranque mais rápido.

Estas contas são modelos de decisão; os tempos de produção exigem medição.

Workshop: escolher com um dossier completo

Entradas fictícias: dez jobs indivisíveis, seis minutos por job, 8 vCPU por job, 120 vCPU disponíveis, quatro licenças, uma por job, arranque instantâneo e prazo de quinze minutos. Primeiro prevê se duplicar CPU basta. Depois compara adquirir uma quinta licença com reduzir duração para cinco minutos mas acrescentar dois minutos de validação final.

Resolução: quatro licenças impõem três vagas e dezoito minutos; duplicar CPU não ajuda. Cinco licenças permitem duas vagas e doze minutos. A alternativa de cinco minutos dá 3×5+2=17 e falha.

Finalmente, regista o que o modelo omite: arranque real, variação de duração, falhas e prova de que as licenças permitem a implantação. O código abaixo calcula apenas os modelos publicados, localmente, sem criar recursos AWS. Guarda-o como compute-models.mjs e executa com Node.js; altera uma restrição de cada vez e compara a previsão.

// Synthetic deterministic models; no AWS calls or performance predictions.
function waves(jobs, slots, duration, startup=0, validation=0) {
  if (![jobs,slots].every(Number.isInteger) || jobs<0 || slots<1 ||
      ![duration,startup,validation].every(x=>Number.isFinite(x)&&x>=0)) throw Error('invalid input');
  return jobs===0 ? 0 : startup+Math.ceil(jobs/slots)*duration+validation;
}
function placement(jobs, cpu, memory, jobCpu, jobMemory) {
  if (![jobs,cpu,memory,jobCpu,jobMemory].every(Number.isFinite) ||
      !Number.isInteger(jobs) || jobs<0 || [cpu,memory,jobCpu,jobMemory].some(x=>x<=0)) throw Error('invalid input');
  const perHost=Math.min(Math.floor(cpu/jobCpu),Math.floor(memory/jobMemory));
  return jobs===0 ? 0 : perHost===0 ? null : Math.ceil(jobs/perHost);
}
console.log(JSON.stringify({hosts:placement(8,8,16,2,6),fourLicenses:waves(10,4,6),
 fiveLicenses:waves(10,5,6),shorterWithValidation:waves(10,4,5,0,2),coldPool:waves(12,6,20,30)}));
NA PRÁTICA

A opção com menor CPU ou menor preço unitário só é admissível se entregar o trabalho completo dentro das restrições.

Armadilhas comuns

Somar memória entre hosts para um job indivisível; omitir arranque; confundir falha da tentativa com ausência de efeito.

Tópicos relacionados: Resiliência, capacidade e recuperação · Eventos, filas e processamento · Computação: compromissos e retoma de batches

Leva esta ideia contigo

Seleciona primeiro as opções executáveis e admissíveis; otimiza depois o resultado completo.

Criar conta

Referências

AWS é uma marca comercial da Amazon.com, Inc. ou das suas afiliadas. A dr.pt é uma plataforma de preparação independente e não está afiliada, associada, patrocinada, autorizada nem aprovada por AWS. Os conteúdos e as perguntas são originais, não são perguntas oficiais de exame, e concluir os nossos testes não atribui nem garante qualquer certificação. Os nomes são usados apenas para identificar o tema. Todas as outras marcas pertencem aos respetivos titulares.