Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS para desenvolvedores

AWS para desenvolvedores

Apresentar a parte de infraestrutura na nuvem, como dar os primeiros passos pra colocar uma aplicação no ar e dicas práticas baseadas em experiências reais.

Bianca Rosa

October 23, 2015
Tweet

More Decks by Bianca Rosa

Other Decks in Technology

Transcript

  1. Cloud computing “É a rede que vem pelo ar” -

    Especialista do Jornal Hoje https://youtu.be/vAzntzrwv5U Só que não.
  2. Cloud computing • IaaS - Infrastructure as a service (Máquinas

    virtuais, servidores, discos, balanceadores de carga, rede) • PaaS - Platform as a service (Ambiente de desenvolvimento para uma aplicação, normalmente envolve um banco de dados, um web server e o ambiente para uma linguagem específica) • SaaS - Software as a service (Google Docs, Dropbox) 3 layers? 4 layers? 7 layers? Ou só 2? Existem n discussões sobre isso, aqui optei por usar a definição mais simples e tradicional, mas nada está escrito em pedra então… podem pesquisar sobre o assunto e tirar suas próprias conclusões
  3. Cloud computing Vantagens • Sem preocupação com backups • Servidores

    acessíveis sem a necessidade de se preocupar com infraestrutura • Pay-per-use • Riscos de acidentes físicos minimizados • Custo menor a curto prazo (+ fácil começar) • Fácil de escalar Desvantagens • Segurança (vamos falar disso lá na frente) • Custo maior a longo prazo
  4. Porque AWS? Existem outros serviços, mas comercialmente a Amazon é

    mais utilizada. E o primeiro ano é grátis!
  5. <- Tem um plano free <- Tem desconto no GitHub

    Student Pack! Corram! e muito mais! :)
  6. Fiz a aplicação e agora?! Java/Linguagens que rodam na JVM

    - war - Servlet container (Tomcat, Jetty...) ou Servidor de aplicação(JBoss, Glassfish, ...) PHP - .php - Apache NodeJS - .js - npm http server
  7. EC2 • Mais controle. • Você precisa começar a ficar

    confortável com shell script. • Você vai precisar aprender um pouco sobre os security groups e IAMs.
  8. S3 • "Buckets" que servem para guardar arquivos • Muito

    barato • Muito mais barato do que espaço em um EC2 • Serve pra redirecionar websites. (Quem nunca fez uma página html com redirect?) • Dá pra fazer upload via linha de comando.
  9. Route53 • Serve pra gerenciar domínios/subdomínios • Você vai precisar

    se familiarizar com termos relativos à domínios (O que é um CNAME, qual a diferença dele pra um ALIAS, etc)
  10. Desenvolvendo pra AWS • É mais simples do que parece.

    • É sério, eu me assustei mas foi bem tranquilo. • Existem SDKs pra várias linguagens.
  11. Case - Sites pessoais • Usuário pode ter um subdomínio.

    • Quando ele escolhe o subdomínio, verificamos se não está em uso e cadastramos (via linha de código) no Route53. • Subdomínio aponta pro tomcat, que tem uma regra que aponta todos os subdomínios pra uma aplicação. • Descobrimos via URL qual é o subdomínio do cara, já sabemos de quem é o site, daí carregamos o conteúdo praquele usuário.
  12. Outro exemplo - a implementar • Atualmente cada usuário pode

    ter uma foto de perfil. • Guardamos essas fotos num caminho dentro da máquina. • Deveria ir pro S3. • Pode ser feito também através de código, basicamente chamando um upload para o S3 e na hora de recuperar o arquivo chamando um get. • Gera tráfego entre o EC2 e o S3, mas o custo vai acabar sendo menor.
  13. Dicas marotas • Deixe suas chaves de acesso às máquinas

    sempre muito bem guardadas. • Fique de olho nas regiões na hora de criar um EC2, um bucket, etc. • Coloque alarmes pra receber avisos quando o custo ultrapasar 0.01$ por exemplo. • Quando seu free tier acabar, dê uma olhada em tudo que você criou e apague. Existe um relatório de uso. Veja lá. Muito cuidado com serviços que podem ser cobrados.