Publicação

Amazon Web Services - Tudo que Você Deve Saber!

foto de
Christian Guerreiro CONTEÚDO EM DESTAQUE

Todo mundo sabe que a Amazon é a líder no mercado de computação em nuvem, e com bastante folga. Enquanto a empresa de Jeff Bezos detém 47% do mercado, a Microsoft fica com 10% e a Google com "míseros" 3,95%.

Portanto, conhecer melhor o funcionamento dos serviços de cloud da Big A de Seattle é importante pra qualquer profissional de TI que pretenda ter uma carreira na área de infraestrutura, você há de concordar comigo.

Sendo assim, sem mais blá-blá-blá, vamos ao que realmente importa.

Eu fiz uma análise do excelente "The Open Guide To Amazon Web Services", e relacionei as características, funcionalidades, recursos e dicas mais interessantes para quem quer ter uma visão ampla dos serviços e possibilidades que a gigante oferece.

Assim, cheguei a uma lista de conteúdos que serão compartilhados aqui no blog ao longo das próximas semanas, abordando desde os recursos mais básicos de gerenciamento da plataforma AWS até serviços mais específicos, envolvendo armazenamento, análise de dados com Big Data, escalabilidade, e muito mais!

Mas vamos começar do começo.

Para isso, resolvi trazer inicialmente informações sobre o gerenciamento dos serviços da AWS.

Quais as opções disponíveis pra gerencias minhas instâncias na Amazon, meus dados, aplicações, clusters, etc, etc, etc?

Qual a melhor opção?

O que levar em conta para decidir?

Confira tudo isso a seguir.

Introdução

Amazon S3 (Simple Storage Service) é o serviço padrão de armazenamento em nuvem da AWS, oferecendo armazenamento de arquivos de números arbitrários de arquivos de quase todos os tamanhos, de 0 a 5 TB (antes de 2011 O tamanho máximo era de 5 GB; tamanhos maiores agora são bem suportados via multipart support).

Um grande desafio ao usar o AWS para criar sistemas complexos (e com o DevOps em geral) é gerenciar o estado da infra-estrutura efetivamente ao longo do tempo. Em geral, isto abrange três metas gerais para o estado de sua infra-estrutura:

Visibilidade: Você conhece o estado da sua infra-estrutura (quais serviços você está usando e exatamente como)? Você também sabe quando você - e alguém em sua equipe - faz mudanças? Você consegue detectar configurações erradas, problemas e incidentes com seu serviço?

 Automação: você pode reconfigurar sua infra-estrutura para reproduzir configurações passadas ou ampliar as existentes sem muito trabalho manual extra ou requerer conhecimento que é apenas na cabeça de alguém? Você pode responder a incidentes facilmente ou automaticamente?

 Flexibilidade: você pode melhorar suas configurações e expandir de forma nova sem esforço significativo? Você pode adicionar mais complexidade usando as mesmas ferramentas? Você compartilha, revisa e melhora suas configurações dentro de sua equipe?

 Muito do que discutimos abaixo é realmente sobre como melhorar as respostas a essas questões.

 Existem várias abordagens para implementar #Infraestrutura com a AWS, desde o console até ferramentas de automação complexas, a serviços de terceiros, que tentam ajudar a alcançar visibilidade, automação e flexibilidade.

A primeira maneira pela qual a maioria das pessoas experimenta o AWS é através da sua interface web, o AWS Console. Mas o uso do Console é um processo altamente manual, e muitas vezes funciona contra a automação ou a flexibilidade.

Então, se você não vai gerenciar suas configurações AWS manualmente, o que você deve fazer? Infelizmente, não há respostas simples e universais - cada abordagem tem prós e contras, e as abordagens tomadas por diferentes empresas variam amplamente e incluem diretamente usando APIs (e criando ferramentas no topo você mesmo), usando ferramentas command-line e usando ferramentas e serviços de terceiros.

Console AWS

O AWS Console permite controlar muita funcionalidade (mas não todas) da AWS através da web.

Idealmente, você só deve usar o AWS Console em algumas situações específicas:

  • É ótimo para uso somente leitura. Se você está tentando entender o estado do seu sistema, fazer login e navegar é muito útil. 
  • Também é razoavelmente viável para sistemas e equipes muito pequenas (por exemplo, um engenheiro que configura um servidor que não muda frequentemente).
  • Pode ser útil para operações que você apenas fará raramente, como menos de uma vez por mês (por exemplo, uma configuração VPC única que você provavelmente não irá revisitar por um ano). Neste caso, usar o console pode ser a abordagem mais simples.

❗Pense antes de usar o console: o AWS Console é conveniente, mas também o inimigo da automação, reprodutibilidade e comunicação em equipe. Se é provável que você faça a mesma mudança várias vezes, evite o console. Favor favorecer algum tipo de automação, ou pelo menos ter um caminho para a automação, conforme discutido em seguida. Não só o uso do console impede a automação, que desperdiça o tempo mais tarde, mas evita documentação, clareza e padronização em torno de processos para você e sua equipe.

Ferramentas de Linha de Comando

A interface command-line da aws (CLI), usada através do comando aws, é a maneira mais básica de salvar e automatizar operações AWS.

Não subestime seu poder. Também tem a vantagem de ser bem conservado - abrange uma grande proporção de todos os serviços da AWS e está atualizado.

Em geral, sempre que você pode, prefira a linha de comando para o AWS Console para realizar operações.

Se na ausência de ferramentas mais sofisticadas, você pode escrever scripts bash simples que invocam AWS com argumentos específicos e verificar isso no Git. Esta é uma maneira primitiva, mas eficaz, de documentar as operações que você realizou. Ele melhora a automação, permite a revisão e compartilhamento de código em uma equipe e dá aos outros um ponto de partida para o trabalho futuro.

Para uso que é principalmente interativo, considere, em vez disso, usar a ferramenta aws-shell da AWS. É mais fácil de usar, com auto-completar e uma UI colorida, mas ainda funciona na linha de comando. Se você estiver usando o SAWS, uma versão anterior do programa, você deve migrar para aws-shell.

APIs e SDKs

Os SDKs para usar API AWS estão disponíveis na maioria das principais linguagens, com Go, #iOS#Java, #JavaScript, #Python, #Ruby, e #PHP sendo mais usados. A AWS mantém uma pequena lista mas a maravilhosa lista AWS é o mais completa e atual. Note que support for #C++ é nova.

Um aspecto importante a considerar sempre que usar SDKs é o tratamento de erros; Com o uso intenso, pode ocorrer uma grande variedade de falhas, desde erros de programação até falhas relacionadas ao AWS. Os SDKs normalmente implementam backoff exponencial para resolver isso, mas isso pode precisar ser entendido e ajustado ao longo do tempo para algumas aplicações. Por exemplo, muitas vezes é útil alertar sobre alguns códigos de erro e não sobre outros.

❗Não use as APIs diretamente. Embora a documentação da AWS inclua muitos detalhes da API, é melhor usar os SDKs para o seu idioma preferido para acessar as APIs. Os SDKs são mais maduros e bem conservados do que algo que você escreveu.

Boto

Uma boa maneira de automatizar operações de forma personalizada é o Boto3, também conhecido como o Amazon SDK para Python. Boto2, A versão anterior desta biblioteca, tem sido amplamente utilizada por anos, mas agora existe uma versão mais recente com suporte oficial da Amazon, então prefira o Boto3 para novos projetos.

Se você estiver escrevendo um script bash com mais de um ou dois comandos da CLI, provavelmente está fazendo isso de forma errada. Pare e considere escrever um script Boto em vez disso. Isso tem as vantagens que você pode:

  • Verificar os códigos de retorno facilmente, de modo que o sucesso de cada etapa depende do sucesso das etapas passadas.
  • Pegar interessantes bits de dados de respostas, como ids de instância ou nomes de DNS.
  • Adicionar informações de ambiente útil (por exemplo, marque suas instâncias com revisões de git ou injete o identificador de compilação mais recente em seu script de inicialização).

Visibilidade Geral

Recurso de marcação é uma prática essencial, especialmente à medida que as organizações crescem, para entender melhor seu uso de recursos. Por exemplo, através de automação ou convenção, você pode adicionar tags: 

  • Para a organização ou desenvolvedor que "possui" esse recurso;
  • Para o produto que o recurso oferece;
  • Para rotular os ciclos de vida, como recursos temporários ou um que deve ser desprovisionado no futuro;
  • Para distinguir infra-estrutura de produção crítica (por exemplo, sistemas de serviço versus tubagens de backend);
  • Para distinguir recursos com requisitos especiais de segurança ou conformidade;
  • Durante muitos anos, havia um limite notório de 10 tags por recurso, que não poderia ser aumentado e causou muita dor significativa das empresas. A partir de 2016, isso foi aumentado para 50 tags por recurso.
  • Em 2017, a AWS introduziu a capacidade de reforçar marcações na criação de instâncias e volumes, depreciando partes de ferramentas de terceiros, como a Cloud Custodian.

Aprendizagem e Desenvolvimento de Carreira 

Certificações 

A AWS oferece certificações para profissionais de TI que desejam demonstrar seus conhecimentos.

  • Certified Solutions Architect Associate 
  • Certified Developer Associate 
  • Certified SysOps Administrator Associate 
  • Certified Solutions Architect Professional 
  • Certified DevOps Engineer Professional 

Recebendo certificado: você está interessado em estudar e obter certificações, esta visão geral prática vai lhe mostrar muito do que você precisa saber. A página oficial está aqui e aqui está uma FAQ. 

Você precisa de uma certificação?

Especialmente em empresas de consultoria ou quando trabalha em papéis de tecnologia chave em grandes empresas não-tecnológicas, as certificações são credenciais importantes.

Em outros, inclusive em muitas empresas de tecnologia e startups, as certificações não são comuns ou consideradas necessárias. (Na verdade, justamente ou não, alguns gerentes e engenheiros de contratação do Silicon Valley os veem como um sinal "negativo" em um currículo.)

Mais informações: http://blog.tecnologiaqueinteressa.com/2017/07/amazon-web-services-tudo-que-voce-deve.html

Comentários