DEV Community

Cover image for ☁️ Serviços da AWS que vão te salvar em uma entrevista de system design (Part 2/4)
Vanessa Telles
Vanessa Telles

Posted on

☁️ Serviços da AWS que vão te salvar em uma entrevista de system design (Part 2/4)

Parte 2 da série de recursos da AWS que me ajudaram e provavelmente vão te ajudar durante uma entrevista de System Design.

A primeira postagem você pode encontrar clicando aqui.

Lembrando novamente que aqui é apresentado um pequeno resumo com palavras chaves em uma linguagem informal sobre cada recurso para que você possa ler e refrescar a memória minutos antes da entrevista, portanto para que seja efetivo é necessário que anteriormente haja uma leitura mais aprofundada desses recursos.

Dessa vez trouxe três serviços que se encaixam no inicio do pipeline de qualquer aplicação web.

  • Route 53
    • Serviço de DNS (Domain Name System).
    • Realiza a conexão, tradução, do nome para o endereço IP.

Image description

  • CloudFront
    • Serviço de CDN (Content delivery Network).
    • Basicamente é uma rede de servidores distribuídos globalmente.
    • Distribui o conteúdo através de uma área geográfica.
    • Visando distribuir o conteúdo de forma eficiente e escalável.

Image description

  • AWS Cognito
    • Serviços para a autenticação e autorização dos usuários.
    • Faz o controle de acesso.
    • Suporte para autenticação federada (Google, Facebook, Apple, etc).

Image description

Por experiência própria é mais fácil entender esse tipo de coisa com exemplos de aplicação reais então criei uma arquitetura bem simples tentando utilizar os recursos dessa postagem e os da Parte 1.

Image description

A imagem acima é a representação de uma arquitetura básica para hospedar páginas web estáticas na AWS. Nesse exemplo apenas usuários autorizados podem acessar a página e a cada acesso recebem uma mensagem de boas vindas.

Basicamente o que está acontecendo é o seguinte:

1. Os arquivos da página web são armazenados no bucket S3.
2. O Route 53 é utilizado para associar o endereço IP com o nome de domínio escolhido. A solicitação do usuário para se conectar a pagina web é repassada ao CloudFront que tem como responsabilidade de distribuir o conteúdo.
3. O CloudFront encaminha essa solicitação para o Cognito autenticar e autorizar o acesso.
4. Após o Cognito verificar as credenciais e liberar o acesso, uma solicitação de autorização confirmada é enviada ao CloudFront.
5. O CloudFront então encaminha a solicitação para o endpoint configurado no API Gateway.
6. O API Gateway encaminha a solicitação para a função Lambda associada ao endpoint.
7. A função Lambda processa a solicitação e retorna a resposta para o API Gateway.
8. Por sua vez o API Gateway retorna a resposta para o CloudFront que então repassa a resposta com a mensagem de boas vindas para a interface do Usuário.
9. Pronto, aplicação concluída!

Image description

Parece muita coisa, mas é bem simples 😅 Leia com calma cada passo que você vai entender. Confia!

O que vocês acharam de incluir um exemplo usando os recursos, ajudou o entendimento de alguma forma?

Quanto a arquitetura tem algo que vocês fariam de forma diferente?

Eu adoraria ouvir opiniões, sugestões e responder quaisquer dúvidas sobre o assunto! Fiquem à vontade 😁

Top comments (2)

Collapse
 
raulferreirasilva profile image
Raul Ferreira

Adorei a arquitetura, ajuda bastante no entendimento, ter algo pra ver como realizar o processo, simplesmente incrível o artigo, ansioso para a continuação.

Que aplicativo usou para fazer a arquitetura?

Muito obrigado por compartilhar seu conhecimento 🦤.

Collapse
 
vanessatelles profile image
Vanessa Telles

Obrigada pelo feedback Raul, já estou pensando em uma aplicação interessante para a parte 3!

Para desenhar a arquitetura utilizei o excalidraw, os ícones da AWS é só baixar a biblioteca AWS Serverless Icons 😉