Introdução aos contêineres da AWS
Os contêineres são unidades padronizadas de desenvolvimento de software que permitem empacotar o código, as configurações e as dependências do seu aplicativo em um único objeto. Os contêineres são derivados dos princípios da virtualização no nível do SO. Permite executar o aplicativo e suas dependências em processos isolados por recursos, o que garante implantações rápidas, confiáveis e consistentes em qualquer ambiente.
Tipos de recipientes
As ferramentas de gerenciamento de contêiner podem ser categorizadas em três tipos: registro, orquestração e computação. Os serviços de registro ajudam a armazenar e gerenciar com segurança suas imagens de contêiner. A orquestração gerencia quando e onde seus contêineres são executados. E os motores de computação alimentam seus contêineres. Todas as infra-estruturas subjacentes são atendidas pela AWS. Os contêineres tornam os desenvolvimentos e implantações fáceis e eficientes.
1. Registro
Amazon Elastic Container Registry (ECR)
É um registro de contêiner do Docker altamente escalável, disponível, altamente seguro e totalmente gerenciado. Ajuda os desenvolvedores a armazenar, gerenciar e implantar imagens de contêiner do Docker com eficiência. O Amazon ECR é integrado ao Amazon Elastic Container Service (ECS), que simplifica a implantação. O Amazon ECR é pago apenas pela quantidade de dados que você armazena em seus repositórios e pelos dados transferidos na Internet.
Exemplo de criação de imagem do Docker de um aplicativo Web simples e introduzido no Amazon ECR:
- Crie um arquivo, Dockerfile.
- Edite o Dockerfile.
- Crie uma imagem do Docker.
- Verifique a imagem do Docker, executando-a.
Resultado:
- Execute a imagem recém-criada.
- Aponte seu navegador para http://locallhost.com/ e a saída será:
- Pare o contêiner do Docker digitando Ctrl + c.
- Envie sua imagem para o Amazon ECR. Crie um repositório Amazon ECR para armazenar a imagem.
Resultado:
- Marque a imagem de exemplo com o valor Uri.
- Execute o comando de autenticação de login do Docker para seu registro.
- Execute o comando de login do Docker.
- Envie a imagem para o Amazon ECR com o repositório Uri
2. Orquestração
Amazon Elastic Container Service (ECS)
É um serviço de gerenciamento de contêiner totalmente gerenciado, altamente escalável e de alto desempenho. Ele suporta contêineres do Docker e permite que os usuários executem o aplicativo com eficiência em um cluster gerenciado de instâncias do EC2. As instalações e operações da orquestração de contêiner são gerenciadas pela AWS.
Exemplo de implantação de contêineres Docker no Amazon ECS:
- Amazon ECS - Configuração da primeira execução : permitirá criar clusters e iniciar aplicativos da web de amostra. Você entrará no console do Amazon ECS e iniciará o assistente. Você também pode usar o Amazon ECR para criar um repositório de imagens e enviar a imagem para ele.
Selecione a opção e selecione Continuar.
- Criação de definição de tarefa: é o modelo do seu aplicativo. Revise os valores padrão e selecione a próxima etapa.
- Configuração do serviço: o serviço inicia e mantém cópias da definição de tarefa no seu cluster.
- Nome do serviço: A AWS fornece um aplicativo "Hello World" de exemplo na Web, exemplo de aplicativo da Web por padrão.
- Número de tarefas desejado: o valor padrão é 1, para o nível gratuito da AWS.
- Balanceamento de carga elástico: você pode usar um balanceador de carga com o seu serviço.
- Nome do contêiner: Porta do host: selecione Aplicativo simples : 80 e padronize os campos restantes.
Selecione Função do IAM de serviço, se você já tiver no menu suspenso, ou o Amazon ECS criará uma função de serviço do ECS por padrão.
Revise suas entradas e selecione a próxima etapa.
- Configuração de Cluster
- Nome do cluster: o nome padrão é cluster de amostra .
- Tipo de instância do EC2: o tipo padrão é t2.micro para a camada livre da AWS.
- Um número de instâncias: o valor padrão é 1, para o nível gratuito da AWS.
- Par de chaves: Você pode continuar selecionando um - Não é possível o SSH .
- Grupo de segurança: em qualquer lugar por padrão. Permite acesso de toda a internet.
- Função IAM da instância do contêiner: selecione uma se você já tiver no menu suspenso ou
O Amazon ECS criará um por padrão.
Selecione Revisar e iniciar.
- Iniciar e exibir recursos
Você pode revisar sua definição de tarefa, configuração de tarefa e configurações de cluster antes de iniciar.
Selecione Iniciar instância e executar serviço.
Após a conclusão do lançamento, selecione Exibir serviço.
- Abra o aplicativo de exemplo: Você pode verificar e executar seu aplicativo de exemplo apontando o navegador para o nome DNS do balanceador de carga.
Abra a página de amostra do aplicativo da web e selecione o nome do balanceador de carga.
Copie o nome DNS do ELB e cole-o em um novo navegador e pressione Enter no teclado.
Você pode visualizar seu aplicativo de amostra.
Você também pode limpar seus recursos a qualquer momento para evitar cobranças desnecessárias.
Serviço Amazon Elastic Kubernetes (EKS)
Ele permite gerenciar, implantar e dimensionar facilmente aplicativos em contêineres usando o Kubernetes na AWS. Ele executa o serviço Kubernetes em várias zonas da AWS para eliminar um único ponto de erro. O Amazon EKS é uma integração certificada do Kubernetes. Você pode migrar facilmente os aplicativos em execução em qualquer ambiente Kubernetes padrão para o AWS EKS.
3. Computar
Amazon Elastic Compute Cloud (Amazon EC2)
É uma capacidade de computação segura e redimensionável na nuvem que executa contêineres em infraestruturas de máquinas virtuais com controle total sobre o dimensionamento e a configuração. Dá a você o controle completo de seus recursos de computação. Reduz o tempo necessário para obter e inicializar novas instâncias do servidor em apenas alguns minutos. O Amazon EC2 fornece aos desenvolvedores as ferramentas para criar aplicativos resistentes a falhas.
Exemplo: Instale um servidor da Web LAMP com a Amazon Linux AMI.
Este exemplo ajuda a instalar um servidor da web Apache com suporte a PHP e MySQL na sua instância do Amazon Linux (também chamada de servidor da web LAMP).
- Conecte-se à instância do Linux.
- Atualize pacotes de software, se houver.
- Instale o servidor da web Apache, MySQL e pacotes de software PHP usando o comando yum install.
- Inicie o servidor da web Apache.
- Configure o servidor da web Apache para iniciar em cada inicialização do sistema.
- Verifique se o httpd está ativado.
- Adicione uma nova regra de segurança de entrada com os seguintes valores:
- Tipo: HTTP
- Protocolo: TCP
- Port Range: 80
- Fonte: Personalizado
- Teste o servidor da web digitando o endereço DNS em um navegador da web.
- Defina as permissões de arquivo necessárias, se necessário.
- Teste seu servidor LAMP.
- Proteja o servidor de banco de dados.
AWS Fargate
É um mecanismo de computação sem servidor para Amazon ECS que permite executar contêineres sem gerenciar servidores. A Amazon cuida de todos os gerenciamentos subjacentes de servidores, permitindo que você se concentre no design e na construção de seus aplicativos
Tem dois modos:
Fargate Launch Type: Empacote seu aplicativo em contêineres, especifique os requisitos de CPU e memória, defina políticas de rede e IAM e inicie o aplicativo.
Tipo de inicialização do EC2: permite que você tenha um controle no nível do servidor sobre um recurso que executa seus aplicativos de contêiner.
Benefícios dos contêineres da AWS
- Executa em qualquer lugar: os contêineres empacotam seu código com os arquivos de configuração e as dependências necessárias para executar em qualquer ambiente de forma consistente.
- Melhorar a utilização de recursos: os contêineres fornecem isolamento do processo que permite definir a utilização da CPU e da memória para melhor uso dos recursos da computação.
- Escala rápida: cada contêiner é executado como um processo separado que compartilha os recursos do sistema operacional subjacente. Isso permite que os contêineres iniciem e parem rapidamente.
Como funciona?
- Crie uma imagem de contêiner: empacote seu código e todas as suas dependências em um contêiner.
- Automatizar teste e implantação: unidade de código padronizada, o contêiner atua como um edifício consistente
- Executar em qualquer lugar: seu contêiner será executado em qualquer ambiente de forma consistente.
- Escalonamento rápido: os contêineres iniciam e terminam rapidamente, para que seu aplicativo possa aumentar e diminuir
Conclusão - AWS Containers
A Amazon fornece uma ampla gama de serviços para armazenamento, gerenciamento e execução de contêineres. Os contêineres facilitam os desenvolvimentos e implantações para os desenvolvedores, pois todas as infraestruturas subjacentes, incluindo o gerenciamento de servidores, são cuidadas pela Amazon, permitindo que os desenvolvedores se concentrem em seu desenvolvimento. Escolha o serviço AWS certo para sua carga de trabalho.
Artigos recomendados
Este é um guia para os contêineres da AWS. Aqui discutimos a introdução, tipos de contêineres, que inclui registro, orquestração e computação, além dos benefícios dos contêineres da AWS. Você também pode consultar os seguintes artigos para saber mais:
- Serviços da AWS
- AWS Kinesis
- Arquitetura da AWS
- O que é o AWS RedShift?
- Guia completo para concorrentes da AWS
- Aprenda a lista de recursos do Amazon Web Services