Infraestrutura Web com AWS

Let's Code by Ada

Apresentações

Os instrutores

Vinícius Campitelli

Vinícius Campitelli
  • Membro do PHPSP
  • Entusiasta em cibersegurança e arquitetura de sistemas
  • Desenvolvedor há 15 anos

Israel Nogueira

Israel Nogueira
  • Membro das comunidades no Telegram de Observability, K8s e Zabbix
  • Entusiasta em Cloud e ferramentas de Observability
  • Atuando há 11 anos no mercado de Tecnologia

Os alunos

Conte-nos mais sobre vocês!

Cronograma

Cronograma

S T Q Q S
Ago 15

Hello, World

Cloud Computing (intro)

Apresentação do curso e introdução

16 Cloud Computing (cont.)

Conceitos, história e modelos

Amazon Web Services & EC2

Conceitos, console de gerenciamento e instâncias

17 18 AWS IAM

Configuração de usuários, policies e roles no IAM

19
22 AWS EC2

Prática: configuração de uma aplicação Web

23 AWS EC2 (cont.)

Continuação da prática

Load Balancing (intro.)

Conceitos de alta disponibilidade e distribuição de cargas

24 25 Load Balancing (cont.)

Alta disponibilidade e distribuição de cargas

AWS Route 53

Registro de domínios, roteamento de DNS e checagem de integridade

26
23 AWS Route 53 (cont.)

Registro de domínios, roteamento de DNS e checagem de integridade

AWS CloudFront

Distribuição de conteúdo estático através da CDN

30 Well-Architected Framework

Melhores práticas de arquitetura na cloud

Uso do Draw.io

Desenho de arquiteturas para planejamento e documentação

31 Set 1

Avaliação por rubrica

Habilidades e competências técnicas do módulo

2

Cloud Computing

Aula 1

Exercício

O que você sabe sobre Cloud Computing (computação em nuvem)?

On Premise

Modelo onde toda a infraestrutura de servidores é mantido pela empresa, podendo ser tanto fisicamente em um datacenter próprio ou através de outros provedores de hospedagem

Vantagens

  • Domínio total da infraestrutura
  • Sem dependência de link de internet
  • Controle sobre os dados
  • Maior segurança em primeiro momento

Desvantagens

  • Alto investimento a curto prazo para comprar recursos
  • Necessidade de atualizar, manter e consertar a infraestrutura

Cloud Computing

História

  • Década de 60

    Contexto: os computadores ("mainframes") são utilizados apenas por empresas, universidades ou governos, pois são extremamente grandes e caros

  • 1961

    John McCarthy, criador da linguagem LISP e um dos pioneiros em Inteligência Artificial, propõe o conceito de "computação utilitária", em que empresas pudessem alugar parte do tempo do uso de seus computadores [referência]

  • 1997

    Ramnath Chellappa, professor da Universidade de Emory em Atlanta, nos Estados Unidos, usa o termo "cloud computing" em um seminário para explicar um paradigma onde os limites computacionais seriam determinados por questões econômicas e não somente por restrições técnicas [referência]

  • Julho de 2002

    A Amazon lança uma plataforma para auxiliar terceiros no desenvolvimento de suas aplicações (principalmente lojas virtuais), diminuindo o tempo gasto para preparem a infraestrutura, chamada Amazon Web Services [referência] [Timeline of Amazon Web Services]

Cloud Computing

Conceito segundo o NIST*

... é um modelo para possibilitar acesso ubíquo, conveniente e sob demanda via rede a um conjunto de recursos computacionais configuráveis (como servidores, aplicações e armazenamento) que podem ser rapidamente provisionados e disponibilizados com o mínimo de esforço de gerenciamento ou interação com o provedor
[Proposta SP 800-145]

* Instituto Nacional de Padrões e Tecnologia dos Estados Unidos

Cloud Computing

Conceito segundo o NIST*

Características essenciais:

Self-service sob demanda

Cliente deve provisionar serviços unilateralmente sem interação humana com o provedor

Acesso generalizado à rede

Serviços devem ser disponibilizados e acessados via mecanismos padrões de rede

Agrupamento de recursos

Devem servir múltiplos clientes, sendo atribuídos e reatribuídos de forma dinâmica

Elasticidade rápida

Recursos devem ser escaláveis para suportar a demanda

Serviço mensurável

Deve ser possível medir e monitorar o uso de cada serviço

[Proposta SP 800-145]

* Instituto Nacional de Padrões e Tecnologia dos Estados Unidos

Cloud Computing

Conceito do Vinícius Vinícius

Disponibilização de recursos computacionais (como servidores ou armazenamento) via Internet que permite alta escalabilidade e provisionamento dinâmico de recursos com modelo de pagamento pay-as-you-go, onde o cliente só é cobrado pelo que foi exatamente utilizado (como tempo de processamento, espaço armazenado ou banda trafegada)

Cloud Computing

Vantagens

  • Permite ao cliente focar no problema
  • Velocidade de implementação
  • Elasticidade de recursos
  • Processamento distribuído
  • Economia de custos (de modo geral)

Desvantagens

  • Maior complexidade de início
  • Vendor lock-in
  • Ameaças de segurança (se não bem configurada)
  • Gastos imprevisíveis (se não bem configurados)

Cloud Computing

Principais provedores

Veja mais provedores no artigo do Gartner:
"Quadrante Mágico para infraestrutura em nuvem e serviços de plataforma"

Cloud Computing

Principais modelos

IaaS Infrastructure as a Service

Disponibilização de um servidor e seus recursos de hardware para que o cliente possa utilizar a infraestrutura da maneira que desejar

Exemplos: AWS EC2, Azure VM, Google Compute Engine, Digital Ocean

PaaS Platform as a Service

O provedor cuida do servidor, do Sistema Operacional e das ferramentas necessárias para que o cliente possa executar sua aplicação

Exemplos: AWS Beanstalk, Google App Engine, Heroku, Netlify

SaaS Software as a Service

Sistemas em que o usuário utiliza o software pela Internet, sem precisar baixá-lo e instalá-lo em seu computador ou rede

Exemplos: Wordpress.com, Wix, Canva

Cloud Computing

Principais modelos

Responsabilidades dos modelos on-premise, IaaS, PaaS e SaaS
[redhat.com]

Cloud Computing

Outros serviços

DBaaS Database as a Service

Serviços de Banco de Dados altamente robustos e escaláveis

Exemplos: AWS RDS, MongoDB Atlas, IBM Db2 on Cloud, Oracle Cloud Infrastructure

FaaS Function as a Service

Execução de códigos sob demanda em um ambiente serverless, onde toda a infraestrutura é gerenciada pelo provedor

Exemplos: AWS Lambda, Azure Functions, Google Cloud Functions, OpenFaaS

Armazenamento de arquivos

Gereciamento de arquivos que provém alta disponibilidade e performance

Exemplos: AWS S3, Azure Storage, Google Cloud Storage, Dropbox, Google Drive, OneDrive

Cloud Computing

Segurança: Modelo de Responsabilidade Compartilhada

Cliente: responsável pela
Segurança na nuvem

Provedor: responsável pela
Segurança da nuvem

Modelo de Responsabilidade Compartilhada [aws.amazon.com]

Cloud Computing

Alguns conceitos

Alta disponibilidade

Capacidade de um serviço em se manter operando com a mesma performance mesmo com falhas

Performance

Parâmetros em que um sistema se comporta

Latência

Tempo em que uma solicitação leva para chegar ao destino

Amazon Web Services

Aula 2

Amazon Web Services

Visão geral

O principal provedor de cloud segundo o Gartner nos últimos 10 anos, com mais de 200 serviços disponíveis

[aws.amazon.com]

Amazon Web Services

Alguns serviços

  • API: API Gateway
  • Armazenamento: S3, EFS
  • Bancos de Dados: RDS, DocumentDB, MemoryDB
  • CDN: CloudFront
  • Containerização: ECS, EKS
  • DNS: Route 53
  • Desenvolvimento: CodeBuild, CodeCommit, CodeDeploy, CodePipeline
  • Mensageria: EventBridge, SQS
  • Mobile: Amplify
  • Monitoramento: CloudWatch
  • Mídia: MediaConvert, MediaLive
  • Processamento: EC2
  • Provisionamento: CloudFormation
  • Segurança: IAM, KMS
  • Serverless: Lambda

Amazon Web Services

Infraestrutura global

Regiões (Regions)

Local físico onde um grupo de datacenters está localizado

Exemplos: São Paulo (sa-east-1), Virgínia do Norte (us-east-1) e Califórnia (us-west-1)

Zonas de disponibilidade (Availability zones)

Cada grupo de datacenters em uma região com alta conectividade entre si, úteis para prover alta disponibilidade dentro de uma região

Exemplos: sa-east-1a, sa-east-1b, sa-east-1c

Zonas locais (Local zones)

Locais alternativos mais próximos a grandes cidades para diminuir a latência

Exemplos: Rio de Janeiro, Buenos Aires, Santiago

[aws.amazon.com]

Amazon Web Services

Infraestrutura global

26 regiões

84 zonas de disponibilidade

245 países e territórios atendidos

Mapa de infraestrutura global da AWS [aws.amazon.com]

Amazon Web Services

Criação de conta

Cada aluno irá criar uma conta na AWS através do modelo Free Tier e se cadastrar no programa Activate da Let's Code by Ada

Free Tier

Disponibilização gratuita de diversos serviços (com algumas limitações)

[aws.amazon.com/free]

Activate

Programa para startups e empresas que queiram utilizar serviços para testes e treinamentos

[console.aws.amazon.com/activate]

Calculadora

Ferramenta utilizada para prever gastos através da escolha de serviços

[calculator.aws]

Amazon Web Services

Integrações

Management Console

Painel administrativo para gerenciar todos os serviços de sua conta da AWS

[console.aws.amazon.com]

CLI

Utilitário de linha de comando para interagir com os serviços da AWS

[aws.amazon.com/cli]

SDK

Bibliotecas em mais de 10 linguagens para interagir com os serviços da AWS

[aws.amazon.com/developer/tools]

AWS IAM

Aula 3

Amazon Web Services

AWS IAM

O AWS Identity and Access Management é um serviço responsável pela gestão de identidades e acesso aos serviços de contas da AWS

[docs.aws.amazon.com]

Amazon Web Services

AWS IAM: Entidades

Usuário

Entidade que representa uma pessoa ou aplicação que irá interagir com a AWS, que possui suas próprias credenciais (access keys) e deve receber as permissões necessárias para liberar acesso aos recursos da AWS

Access Key

Par de chaves (access key ID e secret access key) que garante acesso a um usuário

Grupo de usuários

Conjunto utilizado para facilitar o gerenciamento em lote, podendo receber permissões que serão aplicadas a todos os usuários daquele grupo

Função (role)

Identidade que também pode receber permissões e que permite que usuários a incorpore para receber o acesso desejado

[docs.aws.amazon.com]

Amazon Web Services

AWS IAM: Política (policy)

Conjunto de permissões permitindo ou negando o acesso à elas, que podem ser aplicadas a usuários, grupos de usuários ou funções

Existem três tipos de políticas:

  1. Gerenciadas pela AWS

    Criadas e mantidas pela Amazon para facilitar acesso a casos de uso comuns, como IAMFullAccess e AmazonEC2ReadOnlyAccess

  2. Gerenciadas pelo cliente

    Criadas pelo usuário para customizar os acessos desejado, recebendo um nome próprio e que podem ser reaproveitadas em outras entidades

  3. Em linha (inline)

    Políticas inviduais que não possuem um nome e são adicionadas diretamente a um usuário, grupo ou função

[docs.aws.amazon.com]

Amazon Web Services

AWS IAM: Componentes da Política (policy)

Version obrigatório

Campo para definir a versão da sintaxe do documento, sendo a mais atual 2012-10-17

Id

Identificador opcional para a política

Statement obrigatório

Conjunto de instruções para permitir ou negar permissões que possui os elementos:

  • Sid

    Identificador opcional para a instrução

  • Effect obrigatório

    Define a ação de permitir (Allow) ou negar (Deny) as permissões daquela instrução

  • Principal / NotPrincipal

    Conta, usuário ou função que está invocando a permissão

  • Action / NotAction obrigatório

    Conjunto de permissões

  • Resource / NotResource

    Objetos em que as ações serão aplicadas

  • Condition

    Regras especiais para se aplicar as ações

[docs.aws.amazon.com]

Amazon Web Services

AWS IAM: Exemplo de Política (policy)


                            {
                              "Version": "2012-10-17",
                              "Statement": [
                                {
                                  "Effect": "Allow",
                                  "Action": [
                                    "s3:ListAllMyBuckets",
                                    "s3:GetBucketLocation"
                                  ],
                                  "Resource": "arn:aws:s3:::*"
                                },
                                {
                                  "Effect": "Allow",
                                  "Action": "s3:*",
                                  "Resource": [
                                    "arn:aws:s3:::NOME-DO-BUCKET",
                                    "arn:aws:s3:::NOME-DO-BUCKET/*"
                                  ]
                                }
                              ]
                            }
                        
[docs.aws.amazon.com]

Amazon Web Services

ARN

Os Nomes de Recurso da Amazon (Amazon Resource Names) são identificadores para recursos da AWS e segue o seguinte formato:


                            arn:partition:service:region:account-id:resource-id
                            arn:partition:service:region:account-id:resource-type/resource-id
                            arn:partition:service:region:account-id:resource-type:resource-id
                        

Alguns exemplos:


                            arn:aws:s3:::NOME-DO-BUCKET
                            arn:aws:iam::123456789012:user/NOME-USUARIO
                            arn:aws:ec2:us-east-1:123456789012:instance/i-012abcd34efghi56
                        
[docs.aws.amazon.com]

AWS EC2

Aula 4

AWS EC2

Prática (parte 1)

Suba novamente a instância criada na semana passada e...

  • Edite o security group para permitir acesso SSH e HTTP a partir do seu IP atual
  • Crie uma aplicação Web bem simples (um "Hello World" é o suficiente) em uma das linguagens que possuem um SDK da AWS

    Você pode...
    • Programar localmente e transferir o código com rsync, scp ou WinSCP
    • Desenvolver diretamente na máquina via SSH com vim ou nano
    • Criar um repositório git e cloná-lo na máquina
    • Ou qualquer outro método!
  • Se a linguagem não possuir um servidor Web, configure o nginx, Apache ou Tomcat
  • Teste a aplicação utilizando o IP ou DNS públicos presentes no dashboard de instâncias

Continua no próximo slide...

AWS EC2

Prática (parte 2)

AWS EC2

Configurando o crontab

Para editar o crontab, execute:


                            $ sudo crontab -e
                        

Esse comando irá abrir o editor de texto configurado do servidor (no Amazon Linux 2, é o vim). Então, aperte a tecla i (ou o Insert) do seu teclado para entrar no modo de inserção e escreva a linha abaixo:


                            @reboot <comando para iniciar sua aplicação>
                        

Por exemplo:


                            @reboot node /caminho/para/minha/aplicacao/index.js
                        

Então, aperte o ESC para sair do modo de inserção, digite :x e dê um ENTER para salvar e fechar o arquivo. Uma mensagem como a seguinte deve aparecer:


                            no crontab for root - using an empty one
                            crontab: installing new crontab
                        

Para testar, reinicie o servidor:


                            $ sudo reboot
                        
[Como usar o nano] [Como usar o vim] [Entendendo o Crontab] [Crontab Generator]

AWS EC2

Instalação das principais ferramentas

Python

Já instalado por padrão com os binários python e python3:


                            $ python --version
                            Python 2.7.18
                            $ python3 --version
                            Python 3.7.10
                        

Node


                            $ wget https://gist.github.com/vcampitelli/488f74dc7eee2b2d7ee7897e2e020384/raw/12aa3b286e1d49c5390022b10714b212ad659ae2/install-node.sh
                            $ sudo bash install-node.sh
                        

Ruby


                            $ sudo amazon-linux-extras install ruby3.0 # ou ruby2.6
                            $ sudo yum install -y ruby-devel make gcc gcc-c++
                            $ sudo gem install bundler rails --no-document
                        

.NET Core

[Deploying .NET Core Apps to Amazon Linux 2 AMI] [AWS Deploy Tool for .NET]

Não se esqueça de desligar os servidores após o exercício!

AWS Elastic Load Balancing

Aula 5

Load Balancer

Conceito

O balanceador de carga é uma ferramenta para fazer a distribuição do tráfego de rede entre destinos diferentes para permitir a escalabilidade da aplicação

Cada vez que uma máquina é criada, ela deve avisar o Load Balancer para que ele atualize seu cadastro interno

Health check

Periodicamente, o Load Balancer faz checagens nos servidores cadastrados para verificar se eles estão respondendo, removendo-os se não responderem

Load Balancer

Arquitetura sem Load Balancer

Arquitetura com Load Balancer

Arquitetura com Load Balancer

AWS Elastic Load Balancing

A AWS oferece três serviços de balanceamento de carga:

Serviço Camada Exemplos de destinos
Application Load Balancer Camada 7 Máquinas EC2, Lambda, containers de clusters
Network Load Balancer Camada 4 Máquinas EC2, containers de clusters, ALBs
Gateway Load Balancer Camadas 3 e 4 Aplicações fora da cloud ou de terceiros

AWS Elastic Load Balancing

Conceitos

Listeners

Configuração que especifica o protocolo, porta e ação a ser tomada (como autenticação com o Cognito, resposta fixa, redirecionamento de URL ou encaminhamento para o destino)

[Listeners for your Application Load Balancers]

Target Groups

Configuração para rotear a requisição para o destino

[Target groups for your Application Load Balancers]

AWS Elastic Load Balancing

Prática

Suba novamente a instância criada e...

  • Altere sua aplicação para imprimir alguma informação do servidor em que ela está rodando, como o IP ou hostname
  • Configure um Application Load Balancer para sua aplicação, criando:
    • um novo security group com acesso HTTP a partir de seu IP
    • um target group selecionando a instância
  • Crie uma AMI da sua instância através deste tutorial
  • Execute uma nova instância a partir da AMI acima e certifique-se que a aplicação esteja operando corretamente, atribuindo a função do IAM à nova máquina
  • Altere o target group adicionando a nova instância ao destino
  • Faça requisições seguidas ao DNS público do Load Balancer criado e veja sua aplicação sendo servida a partir dos dois servidores

Não se esqueça de desligar os servidores após o exercício!

AWS Route 53

Aula 6

AWS Route 53

Serviço de DNS altamente integrado com funcionalidades da AWS (como EC2, S3, ELB), onde o usuário é cobrado pelas zonas hospedadas e número de consultas realizadas, não sendo disponibilizado no Free Tier

[aws.amazon.com/route53]

AWS Route 53

DNS

O Domain Name System é um serviço que tem como principal funcionalidade a conversão de domínios legíveis por seres humanos (por exemplo google.com) em endereços IP (por exemplo 142.251.132.238)

[aws.amazon.com/route53] [cloudflare.com/learning/dns]

AWS Route 53

DNS

Como funciona a internet?
[aws.amazon.com/route53] [cloudflare.com/learning/dns]

AWS Route 53

DNS

A grande maioria dos serviços de registro de domínio oferecem uma ferramenta própria para configuração do DNS, mas que geralmente não oferece um grande suporte de opções

Se quisermos usar uma ferramenta de terceiros para gestão do DNS, devemos criar uma entrada no painel do registro do domínio apontando-o para o serviço desejado

Esse processo é chamado de delegação de NS (veremos o que é NS em breve)

O serviço de terceiros que "recebe" o domínio chama esse apontamento de zona hospedada

Dica: alguns serviços de registro de domínios: Registro.br, Name.com, GoDaddy, AWS Route 53

AWS Route 53

DNS

A configuração de DNS de um domínio consiste em um conjunto de registros (ou entradas) que apontam o domínio ou um subdomínio para um IP, como:

  • aplicacao.com.br para 54.23.110.05
  • www.aplicacao.com.br para 54.23.110.05
  • api.aplicacao.com.br para 3.19.31.14

Cada registro é composto por:

  • tipo: veremos no slide a seguir
  • nome: aplicacao.com.br ou www.aplicacao.com.br
  • valor: os IPs fornecidos
  • TTL: time-to-live, que é o tempo que os serviços de resolução devem guardar aquele valor em seu cache

AWS Route 53

DNS

Tipos de registros

  • A e AAAA: para traduzir um domínio para IPv4 ou IPv6, respectivamente, como nos exemplos do slide anterior
  • CNAME: encaminha a requisição para outro domínio
  • MX: direciona para o servidor de e-mail
  • TXT: notas de texto, geralmente utilizados para verificação de propriedade do domínio e em mecanismos de segurança de e-mails
  • NS: indica o servidor autoritativo da entrada
  • SOA: guarda informações da autoridade da zona
[cloudflare.com/learning/dns/dns-records]

AWS Route 53

DNS

Consultando entradas

A principal ferramenta de linha de comando para consultar entradas DNS é o dig:


                            $ dig a google.com

                            ;; QUESTION SECTION:
                            ;google.com.			IN	A

                            ;; ANSWER SECTION:
                            google.com.		175	IN	A	142.251.132.238
                        

Dica: há também uma versão online em digwebinterface.com

[Dig Command in Linux] [How to Install Dig on Windows]

AWS Route 53

Roteamento

É possível criar registros com as seguintes políticas de roteamento:

  • Simples (Simple routing policy)
    roteamento simples e direto para um recurso, podendo conter vários IPs
  • Failover (Failover routing policy)
    permite o chaveamento entre IPs distintos caso algum recurso não estiver mais íntegro
  • Por localização geográfica (Geolocation routing policy)
    roteamento com base na localização dos usuários
  • Por proximidade geográfica (Geoproximity routing policy)
    roteamento com base na localização dos usuários e dos seus recursos, podendo especificar um "desvio" para que alguns lugares tenham mais prioridade
[docs.aws.amazon.com]

AWS Route 53

Roteamento

É possível criar registros com as seguintes políticas de roteamento:

  • Por latência (Latency routing policy)
    roteamento para a região que fornece a melhor latência
  • Baseado em IP (IP-based routing policy)
    roteamento de acordo com o IP de origem do usuário
  • Com vários valores (Multivalue answer routing policy)
    permite definir vários IPs e retornar somente os que estiverem íntegros (até 8)
  • Ponderado (Weighted routing policy)
    permite encaminhar o tráfego para vários recursos em proporções especificadas
[docs.aws.amazon.com]

AWS Route 53

Verificação de integridade

É possível realizar health checks nos seus destinos finais para que o Route 53 remova-o da lista caso o recurso não esteja mais íntegro

[docs.aws.amazon.com]

AWS Route 53

Prática

Como não está disponível no Free Tier, acompanhe a aula para ver os principais recursos deste serviço!

AWS CloudFront

Aula 7

AWS CloudFront

Serviço de Rede de Entrega de Conteúdo (do inglês Content Delivery Network, resultando na sigla CDN), responsável pelo caching e distribuição de conteúdo a partir de uma das localizações de borda mais próximas de seus clientes

[aws.amazon.com/cloudfront]

AWS CloudFront

Uso do CloudFront [aws.amazon.com/cloudfront]

AWS CloudFront

Rede global de borda (edge network)

Rede global de borda do CloudFront [aws.amazon.com/cloudfront]

AWS CloudFront

Free Tier

O Nível Gratuito fornece as especificações abaixo (por mês), sendo mais que o suficiente para nossos testes:

  • 1 TB de transferência de dados de saída
  • 10.000.000 de solicitações HTTP ou HTTPS
  • 2.000.000 de invocações do CloudFront Functions
[aws.amazon.com/cloudfront]

AWS CloudFront

Conceitos

Origem

Nosso servidor que está rodando e servindo a aplicação

Distribuição

Cadastro criado para cada origem, com suas configurações e políticas de caching

Invalidação

Ação de marcar um objeto (ou grupo de objetos) como obsoletos, fazendo com que o CloudFront busque novamente da origem

[aws.amazon.com/cloudfront]

AWS CloudFront

Prática

  • Suba um site simples com HTML e CSS em um bucket S3 (pode ser apenas um "Hello World" no mesmo bucket criado nas aulas anteriores)
  • Desabilite o acesso público ao seu bucket
  • Crie uma distribuição para servir o conteúdo do bucket
  • Acesse o site através do endereço da distribuição presente no dashboard
  • Altere alguma informação no HTML ou CSS do seu bucket e veja o CloudFront seguir servindo a versão em cache
  • Crie uma invalidação para o(s) objeto(s) e confirme que a alteração está sendo servida

AWS Well-Architected Framework

Aula 8

AWS Well-Architected Framework

Ele fornece orientações para ajudar os clientes a aplicar as melhores práticas nas áreas de projeto, entrega e manutenção dos ambientes da AWS. Abordamos princípios gerais de projeto, bem como as melhores práticas e orientações específicas em seis áreas conceituais que definimos como os pilares do Well-Architected Framework.
wa.aws.amazon.com

AWS Well-Architected Framework

Pilares

Excelência operacional [🡥]

Capacidade de apoiar o desenvolvimento e executar cargas de trabalho com eficácia, obter insights sobre as operações e melhorar continuamente procedimentos de suporte

Segurança [🡥]

Capacidade de proteger dados, sistemas e ativos para utilizar as tecnologias de nuvem para melhorar sua segurança

Confiabilidade [🡥]

Capacidade de uma carga de trabalho de executar a função pretendida de forma consistente e correta, incluindo testar a carga de trabalho durante todo seu ciclo de vida

Eficiência de performance [🡥]

Capacidade de usar recursos de computação com eficiência para atender aos requisitos do sistema e manter essa eficiência à medida que a demanda muda e as tecnologias evoluem

Otimização de custos [🡥]

Capacidade de executar sistemas para entregar o valor empresarial ao menor preço

Sustentabilidade [🡥]

Aborda o impacto ambiental, econômico e social de longo prazo de suas atividades empresariais, especialmente a eficiência e o consumo de energia

AWS Well-Architected Framework

Exemplos de Ferramentas

Excelência Operacional

  • AWS Organizations [🡥]

    Para gerenciamento de contas, permitindo alocação de recursos e faturamento simples

  • AWS Trusted Advisor [🡥]

    Serviço de recomendações de melhores práticas

Segurança

  • AWS WAF [🡥]

    O Web Application Firewall é uma ferramenta com as principais funcionalidades de proteção de suas aplicações Web

  • Amazon GuardDuty [🡥]

    Serviço de detecção inteligente de ameaças para identificar anomalias e acessos indesejados

AWS Well-Architected Framework

Exemplos de Ferramentas

Confiabilidade

  • AWS CloudFormation [🡥]

    Automação para criação de recursos através de IaC (Infraestrutura como Código)

  • Amazon CloudWatch [🡥]

    Serviço de coleta de dados, logs e métricas para monitoramento de suas aplicações

Eficiência de performance

  • AWS Lambda [🡥]

    Execute código em um ambiente serverless, sem se preocupar com a gestão do servidor

  • Amazon CloudFront [🡥]

    Serviço de CDN para entrega de conteúdo com baixa latência e alta velocidade

AWS Well-Architected Framework

Exemplos de Ferramentas

Otimização de custos

  • Instâncias reservadas do Amazon EC2 [🡥]

    Descontos de até 72% em relação ao preço de instâncias sob demanda em troca de um compromisso de no mínimo 1 ano

  • AWS Cost Explorer [🡥]

    Ferramenta do console para visualizar e entender o custos da sua conta

Sustentabilidade

  • AWS Trusted Advisor [🡥]

    Desative recursos sobressalentes para diminuir o impacto ambiental

AWS Well-Architected Framework

Exemplo de arquitetura

Exemplo de arquitetura

[clique para abrir em outra aba]

AWS Well-Architected Framework

Well-Architected Tool

Ferramenta que ajuda na revisão na arquitetura de seu ambiente, recomendando ações a serem tomadas após um longo questionário sobre como sua organização atua em cada pilar

[aws.amazon.com/well-architected-tool] [Ver relatório de exemplo]

AWS Well-Architected Framework

Prática

  • Acesse a ferramenta do Well-Architected Tool através do console, clique em Definir carga de trabalho e preencha as informações requisitadas de acordo com seu contexto
  • Na página seguinte, escolha a lente AWS Well-Architected Framework e confirme
  • Ao ser redirecionado para a tela principal da carga, clique no botão Iniciar análise que aparece no alerta azul e preencha todas as 58 perguntas do questionário
  • Após preenchê-lo, você será levado ao relatório da ferramenta, mostrando os itens de risco e um plano de melhoria para cada um deles

Se precisar de ajuda com esses passos, siga os vídeos presentes no Material do aluno no Class

[console.aws.amazon.com/wellarchitected]

Uso do Draw.io

Aula 8

Uso do Draw.io

Ferramenta para desenhar diagramas de forma colaborativa, disponível via aplicação Web ou de uma aplicação desktop (disponível para Windows, Linux, MacOS e Chrome OS).

A versão Web pode ser acessada em draw.io ou diagrams.net, "novo" nome que tem sido utilizado oficialmente desde fevereiro de 2020.

[Principais funcionalidades] [Integrações] [Exemplos de diagramas]

Uso do Draw.io

Prática

Desenhe a arquitetura do ambiente que criamos desde o começo do módulo com os serviços:

AWS Route 53

AWS Load Balancing

AWS Target Groups

AWS EC2