Serviços aws
Os Serviços AWS são um conjunto diverso de serviços de computação em nuvem oferecidos pela Amazon. No contexto atual de Big Data, a Amazon se firmou como a principal empresa provedora desses tipos de serviços no mercado, para o mundo de Data Science, por exemplo, ter familiaridade com essas ferramentas já chega a ser uma necessidade do profissional.
Esses serviços permitem que empresas e desenvolvedores criem, implementem e gerenciam aplicativos de forma eficiente, escalável e econômica, o que pode garantir para Devs, por exemplo, um meio pelo qual se pode escalar sua aplicação de forma mais simples.
Começando com 3 serviços e hoje contando com mais de 200, existem alguns desses que valem a pena serem destacados por sua importância e presença no mundo de TI.
AWS S3 (Simple Storage Service)
[editar | editar código-fonte]O AWS S3 é um serviço de armazenamento de objetos projetado para armazenar e recuperar qualquer quantidade de dados, a qualquer momento, de qualquer lugar.
Para começar a utilizar, basta escolher uma região onde você quer que seus dados sejam armazenados e criar Buckets, onde essas informações ficarão armazenadas.
Com esse serviço, a antiga necessidade de se manter um sistema de gerenciamento de dados complexo e físico, que envolve um alto custo de software, hardware, energia e mão de obra responsável pela sua manutenção é drasticamente reduzido. Além disso, o S3 permite uma escalabilidade muito mais simples, não é necessário "chutar" qual será a quantidade de armazenamento necessário, o custo será sempre a quantidade utilizada.
O uso do S3 também traz benefícios como integridade dos dados a partir de sistemas de controle de versão dos objetos armazenados, podendo restaurar versões anteriores de dados. Ademais, também é implementado um sistema que cria cópias dos dados armazenados em vários Data Centers, o que garante uma maior segurança em casos de problemas físicos nos servidores da empresa.
Em um contexto de acessos, o S3 também permite a criação de permissões para seus diferentes usuários, o que é valioso para garantir uma evolução e trabalho paralelo entre os Devs.
Amazon EC2 (Elastic Compute Cloud)
[editar | editar código-fonte]O AWS EC2 é um serviço de computação em nuvem que fornece capacidade de processamento redimensionável. Ele é projeto para facilitar o desenvolvimento, implantação e execução de aplicações de forma eficiente.
Para começar com o EC2, basta escolher uma região onde você quer que suas instâncias sejam executadas e selecionar o tipo de instância que melhor se adapta à sua necessidade , levando em consideração fatores como CPU, memória, armazenamento e rede.
Assim como o S3, esse serviço elimina a necessidade de um Data Center físico, o que alivia o usuário dos custos de hardware, energia, etc. Novamente aqui, a ideia chave é a de pagar apenas pelo utilizado.
Em termos de flexibilidade e controle, há a possibilidade de criar Amazon Machine Images (AMIs), que são modelos predefinidos já contendo o sistema operacional, software e configurações necessárias. Outro benefício do uso das AMIs AWS é a facilidade de integração com os outros serviços oferecidos, como o S3 e o Amazon RDS (banco de dados gerenciados) para armazenamento de objetos, criando um ecossistema coeso e eficiente.
Em um contexto de segurança, de forma semelhante ao S3, o EC2 também apresenta um sistema de access management em que há a possibilidade da definição de permissões detalhadas para o controle de quem pode acessar e gerenciar as instâncias criadas.
Amazon RDS (Relational Database Service)
[editar | editar código-fonte]É um serviço de banco de dados relacional que facilita a configuração, operação e escalabilidade de BDs em cloud. Assim como os SGBDs habituais, o Amazon RDS garante uma facilidade no compartilhamento e gestão eficiente de dados, segurança, evita redundâncias e inconsistência e garante uma eficiência maior de manipulação das informações armazenadas.
Nesse serviço, o principal diferencial é, de fato, a infraestrutura e ecossistema oferecidos pelos outros serviços AWS. Além disso, esse serviço também apresenta todas os outras características fundamentais dos demais serviços, como escalabilidade dinâmica, manutenção e gerenciamento de tarefas administrativas e operacionais cuidado pela própria Amazon, provisionamento fácil, automação de tarefas como backups, etc.
Amazon DynamoDB
[editar | editar código-fonte]DynamoDB é um serviço de banco de dados NoSQL que permite ao Dev o desenvolvimento de aplicações em qualquer escala.
Como esse serviço se trata de um NoSQL BD, temos algumas características típicas, como:
- Flexibilidade: BDs NoSQL são não-relacionais, ou seja, não requerem um esquema fixo, o que permite o armazenamento tanto de dados estruturados quanto não-estruturados.
- Escalabilidade Horizontal: Esse tipo de BD tem a capacidade de distribuir dados através de múltiplos servidores ao invés de escalar uma única instância adicionando mais processamento, o que permite o manejo de volumes maiores de dados e baixa latência.
- Eficiência: NoSQL permite uma performance otimizada de operações de leitura e escrita em comparação com bancos relacionais.
- Developer-friendly: Usualmente, esse tipo de BD providencia APIs e linguagem próprias de consulta que está mais alinhada com práticas modernas e usuais de programação, facilitando o uso para Devs.
Assim como a imensa parte dos outros serviços AWS, o DynamoDB também apresenta sinergia e funcionalidades integradas do ecossistema AWS. Todavia, uma das combinações mais interessantes e úteis que podem ser feitas dentro desse ecossistema é a integração desse serviço com o VPC (Virtual Private Cloud) oferecido. Essa junção dá uma maior segurança às operações de consulta e leitura feitas nesse BD.
Amazon Lambda
[editar | editar código-fonte]Da mesma forma que o Ecossistema Cloud permite a execução de aplicativos, o Amazon Lambda é o serviço que permite a execução de uma Função em cloud. Para a escrita da função há disponibilidade de uso de uma grande gama de linguagens, como Java, Python, .NET, até mesmo COBOL.
Entretanto, o mais interessante desse serviço é a sua responsividade não somente à requisições HTTP, mas também à eventos ligados ao ecossistemas AWS. Em alguma aplicação utilizando os serviços AWS, podemos ter, por exemplo, o upload de imagens de usuários no S3, algo de interessante que se pode ser feito é um gatilho para a chamada de uma função lambda quando esse upload de fato ocorrer.
As funções Lambda podem tanto ser escritas pelos desenvolvedores quanto pode ser escolhida de uma variedade de funções já desenvolvidas e disponibilizadas no console AWS, como por exemplo uma função de compressão de imagens.
O que torna o Lambda especial é a possibilidade de criação de aplicações extremamente poderosas e únicas por desenvolvedores em times pequenos ou até trabalhando individualmente. O fato do processamento ser feito em um nível função reduz os custos atrelados a features não utilizadas pelos Devs de outros provedores de processamento.
Além de todos esses pontos ressaltados, o Lambda também disponibiliza o Amazon Cloud Watch, uma interface que expõe informações de performance daquela determinada função além de Logs de suas chamadas realizadas pelos usuários da aplicação.