Como dar o primeiro passo
Introdução
Os contêineres são um componente essencial do desenvolvimento moderno de aplicações. Eles se tornaram uma forma padrão de organizar recursos computacionais e gerenciar o conteúdo das implantações de aplicações.
Os contêineres fornecem um ambiente computacional discreto e reproduzível. Eles também oferecem uma maneira de simplificar o gerenciamento de pacotes e dependências. Desde a orquestração de grandes propriedades com vários clusters até aplicações Web, ou até mesmo testar seu trabalho e realizar uma prova de conceito em seu laptop, elas são uma ótima maneira de começar e criar software para implantação na nuvem.
Este guia de decisão ajuda você a começar e a escolher o serviço de contêiner da AWS certo para o desenvolvimento de aplicações modernas.
Este trecho de quatro minutos faz parte de uma gravação de 57 minutos de uma apresentação de Vikram Venkataraman, gerente de contas técnico sênior da AWS, feita no AWS Summit DC 2022. Ele fornece uma visão geral dos serviços de contêiner da AWS disponíveis.
Hora de ler
20 minutos
Finalidade
Ajudar a determinar qual serviço de contêiner da AWS é o mais adequado para sua organização.
Nível
Iniciante
Data da última atualização
26 de abril de 2023
Serviços cobertos
Mais guias de decisão sobre
Entender
Os contêineres se tornaram um padrão de fato para empacotar código, configurações e dependências de aplicações em um único artefato, porque podem ser implantados de forma consistente em vários ambientes.
Contêineres são uma peça fundamental de qualquer estratégia de desenvolvimento de aplicações modernas. Para fornecer algum contexto para os serviços da AWS relacionados a contêineres, a imagem à direita mostra as opções de contêineres da AWS disponíveis por camada (explicadas mais detalhadamente neste vídeo).
Capacidade
A capacidade se refere à computação subjacente na qual você implantará o contêiner, junto com os requisitos de unidade de processamento central (CPU) e memória. A capacidade é a infraestrutura na qual o contêiner será executado. Há duas opções de capacidade para os contêineres na AWS:
- O Amazon Elastic Compute Cloud (AmazonEC2) permite que você execute seus contêineres nas máquinas virtuais que você gerencia.
- O AWS Fargate é um mecanismo de computação para contêineres com tecnologia sem servidor que permite executar contêineres sem que seja necessário gerenciar a infraestrutura subjacente. Com o Fargate, é possível iniciar e escalar contêineres sem se preocupar com as instâncias subjacentes do EC2.
Orquestração
Não é incomum para uma organização administrar não só alguns, mas milhares de contêineres. Gerenciar um ambiente tão complexo é desafiador. Os serviços de orquestração ajudam a facilitar a implantação e o gerenciamento dessas aplicações. A AWS oferece três serviços de orquestração:
- O Amazon Elastic Container Service (Amazon ECS) é um serviço de orquestração de contêineres totalmente gerenciado e é ideal para organizações que desejam uma maneira simples e econômica de implantar e gerenciar aplicações em contêineres.
- O Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço de Kubernetes totalmente gerenciado que permite executar e gerenciar clusters do Kubernetes na AWS.
- O Serviço Red Hat OpenShift na AWS (ROSA) é um serviço totalmente gerenciado do OpenShift que permite executar e gerenciar clusters do OpenShift na AWS. Ele é uma boa opção para clientes que já executam o OpenShift on-premises.
Provisionamento
O provisionamento fornece uma interface para a camada de serviços de orquestração. Cada orquestrador apresenta suas próprias complexidades. Os serviços de provisionamento ocultam essa complexidade e ajudam a facilitar o consumo do serviço. Nesta categoria, os serviços da AWS incluem:
- O AWS App Runner é um serviço totalmente gerenciado que cria automaticamente imagens de contêineres com base no código-fonte, implanta os contêineres em uma infraestrutura totalmente gerenciada e os escala com base na demanda.
- O AWS Elastic Beanstalk é um serviço totalmente gerenciado que facilita a implantação, o gerenciamento e a escalabilidade de aplicações Web. O Elastic Beanstalk também oferece suporte a contêineres e fornece uma plataforma totalmente gerenciada para implantação e escalabilidade de aplicações em contêineres.
- O Amazon Lightsail é uma forma simples e econômica de iniciar e gerenciar servidores virtuais privados, mas também oferece suporte a contêineres, permitindo criar e implantar aplicações em contêineres usando instâncias do Lightsail.
Considerar
É importante escolher um serviço de contêiner que se alinhe aos seus requisitos de aplicações e às preferências operacionais. A seção a seguir descreve alguns dos principais critérios a serem considerados ao escolher um serviço de contêineres, bem como ferramentas e serviços de suporte.
-
Serviço gerenciado e custos gerais de operação
-
Características da workload
-
Portabilidade de aplicações
-
Tamanho e habilidades da organização
-
Facilidade de implantação
-
As organizações podem escolher a nuvem para reduzir os custos operacionais por meio da padronização de serviços gerenciados que transferem a carga operacional para a AWS. Níveis mais altos de abstração permitem que desenvolvedores e operadores se concentrem em suas próprias atividades diferenciadas agregadoras de valor, em vez de tarefas genéricas.
A criação com contêineres na AWS usa serviços com níveis mais altos de abstração para transferir os custos operacionais de manutenção da infraestrutura para a AWS.
-
Ao entender seus padrões de workload, você pode fazer escolhas de arquitetura de forma mais fácil. Elas podem incluir aplicações Web, microsserviços baseados em API, aplicações orientadas a eventos, streaming e mensagens, pipelines de dados, automações de TI e muito mais. Algumas workloads terão desempenho melhor ou serão mais econômicas em um ambiente computacional do que em outros tipos de ambiente.
-
Muitos clientes querem garantir que suas aplicações possam ser executadas e facilmente migradas ou movidas para um ambiente diferente. É importante para eles poder preservar a escolha ou executar uma aplicação on-premises e na nuvem.
Recomendamos desenvolver competências em arquiteturas de software e criar pacotes que permitam portar com mais facilidade a lógica de negócios diferenciadora entre serviços de computação.
As aplicações criadas com algumas tecnologias podem ser executadas com mais eficiência em alguns serviços de computação do que em outros.
-
As competências da sua organização são um fator importante ao decidir quais serviços de contêiner serão usados. A abordagem adotada exigirá algum investimento nas equipes de DevOps e engenharia de confiabilidade do site (SRE). A criação de um pipeline automatizado para implantar aplicações é comum no desenvolvimento da maioria das aplicações modernas.
Algumas opções elevam o volume de gerenciamento. Por exemplo, algumas organizações têm as habilidades e os recursos necessários para executar e gerenciar uma implementação do Kubernetes porque investem em equipes de SRE fortes para gerenciar clusters do Kubernetes. Essas equipes lidam com atualizações de cluster frequentes (por exemplo, o Kubernetes disponibiliza três lançamentos importantes por ano e descontinua as versões antigas).
O tamanho da organização é um fator-chave, pois startups menores podem ter uma pequena equipe de TI composta por pessoas que desempenham várias funções, enquanto empresas maiores podem comportar centenas de workloads na produção ao mesmo tempo.
-
Diferentes serviços de contêiner da AWS atendem a necessidades únicas em termos de complexidade de implantação. Veja como cada um é otimizado para sua própria função:
- O AWS AppRunner oferece o caminho mais simples, permitindo que você implante a aplicação na Internet pública sem gerenciar ou personalizar a infraestrutura subjacente.
- O Amazon ECS é uma boa opção quando for necessário um pouco mais de controle sobre as configurações de rede e segurança sem sacrificar a escala ou os atributos.
- O Amazon EKS pode permitir flexibilidade e controle sobre a implantação e a orquestração de aplicações fornecidas pela tecnologia Kubernetes.
- O AWS AppRunner oferece o caminho mais simples, permitindo que você implante a aplicação na Internet pública sem gerenciar ou personalizar a infraestrutura subjacente.
Escolher
Agora que conhece os critérios pelos quais avaliará suas opções de contêiner, você tem tudo pronto para escolher quais serviços de contêiner da AWS podem ser adequados para suas necessidades organizacionais.
A tabela a seguir destaca quais serviços são otimizados para quais circunstâncias. Use a tabela para ajudar a determinar qual o serviço de contêiner mais adequado para sua organização e caso de uso.
Opções de capacidade
A capacidade se refere à computação subjacente na qual você implantará o contêiner, assim como os requisitos de CPU e memória. A capacidade é a infraestrutura na qual o contêiner será executado.
O Amazon EC2 é um serviço Web que fornece capacidade de computação escalável, usando servidores nos datacenters da Amazon que você pode utilizar para criar e hospedar os sistemas de software.
O AWS Fargate é uma tecnologia que pode ser usada com o Amazon ECS para executar contêineres sem que seja necessário gerenciar servidores ou clusters de instâncias do Amazon EC2. Com o Fargate, você não precisa mais provisionar, configurar e escalar clusters de máquinas virtuais para executar contêineres.
Orquestração de contêineres
Os serviços de orquestração de contêineres gerenciam quando e onde os contêineres são executados.
Serviço Red Hat OpenShift na AWS (ROSA)
O Serviço Red Hat OpenShift na AWS simplifica a criação e a operação de clusters do Red Hat OpenShift na AWS. Para aplicações já em contêineres on-premises na OpenShift Container Platform, o ROSA fornece uma superfície de API familiar e mantém a mesma cadeia de ferramentas de implantação para que você possa se concentrar em refatorar o modelo de dados, e não a pilha de aplicações inteira.
Amazon Elastic Kubernetes Service
O Amazon EKS ajuda você a iniciar, executar e escalar aplicações Kubernetes na Nuvem AWS ou on-premises.
O Amazon ECS é serviço de orquestração de contêineres totalmente gerenciado para ajudar a implantar, gerenciar e escalar aplicações em contêineres.
Provisionamento
A categoria de provisionamento de serviços fornece uma interface para a camada de orquestração de serviços. Cada orquestrador apresenta suas próprias complexidades. Os serviços de provisionamento ocultam essa complexidade e facilitam o consumo do serviço pelos clientes.
Com o Elastic Beanstalk, você pode implantar e gerenciar rapidamente aplicações na Nuvem AWS sem precisar aprender sobre a infraestrutura que executa essas aplicações. O Elastic Beanstalk reduz a complexidade do gerenciamento sem restringir a escolha ou o controle.
O AWS App Runner permite criar e executar aplicações em contêineres em um serviço totalmente gerenciado com conhecimento mínimo de infraestrutura.
O Lightsail oferece instâncias de servidor privado virtual (VPS), contêineres, armazenamento, bancos de dados e outros recursos de fácil utilização a um preço mensal acessível.
Ferramentas
Ferramentas para fornecer um registro de contêineres, bem como para conteinerizar e migrar aplicações existentes.
Amazon Elastic Container Registry
O Amazon ECR é um registro de contêiner totalmente gerenciado que oferece hospedagem de alta performance para que você possa implantar imagens e artefatos de aplicações de forma confiável em qualquer lugar.
On-premises
Permite executar um ambiente de gerenciamento conhecido para garantir uma experiência consistente, não importa onde as aplicações baseadas em contêineres estejam sendo executadas.
Amazon Elastic Container Service (ECS) Anywhere
O Amazon ECS Anywhere é um atributo do Amazon ECS que permite executar e gerenciar workloads de contêineres em sua infraestrutura.
O Amazon EKS Anywhere permite criar e operar clusters Kubernetes em sua própria infraestrutura.
O Amazon EKS usa o Amazon EKS Distro, uma distribuição Kubernetes criada e mantida pela AWS. O Amazon EKS Distro facilita a criação de clusters confiáveis e seguros.
Usar
Agora você deve ter uma compreensão clara de cada serviço de contêiner da AWS (e das ferramentas e serviços de suporte da AWS) e qual deles pode ser o mais adequado para sua organização e caso de uso.
Para explorar como usar e saber mais sobre cada um dos serviços de contêineres da AWS disponíveis, fornecemos um caminho para explorar como cada um dos serviços funciona. A seção a seguir fornece links para uma documentação detalhada, tutoriais práticos e recursos para você começar.
-
Amazon EC2
-
Amazon ECR
-
Amazon ECS
-
Amazon EKS
-
Amazon Lightsail
-
AWS App Runner
-
AWS Elastic Beanstalk
-
AWS Fargate
-
ROSA
-
Amazon EC2
-
Conceitos básicos do Amazon EC2
Acesse o conjunto completo de documentação técnica do Amazon EC2, incluindo guias para instâncias do Linux e Windows.
Guia do usuário do VM Import/Export
Saiba como importar imagens de máquina virtual (VM) do seu ambiente de virtualização existente para o Amazon EC2 e, depois, exportá-las de volta.Amazon EC2 Auto Scaling com instâncias spot do EC2
Saiba como criar uma workload sem estado e tolerante a falhas usando o Amazon EC2 Auto Scaling com modelos de execução para solicitar instâncias spot do Amazon EC2.
Implantar uma aplicação Web no Amazon EC2
Você aprenderá a criar uma instância do AWS EC2 usando o Amazon CDK e implantando uma aplicação Web nessa instância.
-
Amazon ECR
-
O que é o Amazon Elastic Container Registry (ECR)?
Um guia para começar a usar o ECR.Amazon ECR em arquiteturas de várias contas e várias regiões
Explore as principais considerações sobre as arquiteturas do Amazon ECR que abrangem contas e regiões da AWS e arquiteturas relacionadas a casos hipotéticos de uso de clientes.
Crie um pipeline com uma fonte do Amazon ECR e uma implantação do ECS-to-CodeDeploy
Configure um pipeline no AWS CodePipeline para implantar aplicações em contêiner usando uma implantação azul/verde que ofereça suporte a imagens do Docker.
-
Amazon ECS
-
Conceitos básicos do Amazon ECS
Este guia fornece uma introdução às ferramentas disponíveis para acessar o Amazon ECS e procedimentos introdutórios passo a passo para executar contêineres.
O que há de novo e o que vem por aí com o Amazon ECS
Saiba o que há de novo desde o lançamento do Amazon ECS Anywhere, os novos recursos do AWS Fargate e veja os empolgantes aprimoramentos do Amazon ECS.
Implantação do Amazon Elastic Container Service (ECS)
Este guia oferece uma visão geral das opções de implantação do Amazon ECS na AWS e mostra como ele pode ser usado para gerenciar aplicações simples em contêineres.
Workshop do Amazon ECS
Este workshop foi criado para ensinar aqueles que talvez não estejam familiarizados com o AWS Fargate, o Amazon ECS e, possivelmente, nem mesmo com o fluxo de trabalho de contêineres do Docker.
Implantar contêineres do Docker no Amazon ECS
Aprenda a executar uma aplicação de exemplo habilitada para Docker em um cluster do Amazon ECS por trás de um balanceador de carga, testar a aplicação de exemplo e excluir os recursos para evitar cobranças.
-
Amazon EKS
-
Conceitos básicos do Amazon EKS
Saiba mais sobre o Amazon Elastic Kubernetes Service (Amazon EKS), um serviço gerenciado que pode ser usado para executar Kubernetes na AWS sem a necessidade de instalar, operar e manter o seu próprio ambiente de gerenciamento do Kubernetes.
Implantação do Amazon Elastic Kubernetes Service (EKS)
Explore as opções de implantação do Amazon EKS na AWS e saiba como ele pode ser usado para gerenciar uma aplicação conteinerizada geral.
Implantação de referência de início rápido do Amazon EKS
Usando um guia de implantação de referência de início rápido, fornecemos instruções detalhadas para a implantação de clusters do Amazon Elastic Kubernetes Service (Amazon EKS).
Implantar uma aplicação do Kubernetes
Este tutorial mostra como implantar uma aplicação habilitada para contêiner em um cluster do Kubernetes gerenciado pelo Amazon Elastic Container Service for Kubernetes (Amazon EKS).Workshop sobre o Amazon EKS
Exercícios práticos para aprender sobre o Amazon Elastic Kubernetes Service.
Visite o workshop »
-
Amazon Lightsail
-
Criação, envio e implantação de imagens de contêineres
com o Amazon Lightsail
Este tutorial mostra como criar uma imagem de contêiner em sua máquina local usando um Dockerfile. Após a criação da imagem, você poderá enviá-la para seu serviço de contêiner do Lightsail a fim de implantá-la.
Centro de recursos do Amazon Lightsail
Explore os tutoriais, vídeos e links do Lightsail para a documentação conceitual básica.
Iniciar uma máquina virtual Linux com o Amazon Lightsail
Neste tutorial, você criará uma instância do Amazon Linux no Amazon Lightsail. Quando a instância estiver ativa e em execução, você se conectará a ela via SSH no console do Lightsail usando o terminal SSH baseado em navegador.
-
AWS App Runner
-
Conceitos básicos do AWS App Runner
Este tutorial explica como configurar o código-fonte e a implantação, a criação do serviço e o runtime do serviço para implantar sua aplicação no serviço App Runner. Ele também mostra como implantar uma versão de código, fazer alterações na configuração e visualizar logs.
Use o tutorial »
AWS App Runner: de código a uma aplicação Web escalável e segura em questão de minutos
Explore como o AWS App Runner foi desenvolvido para facilitar a implantação de aplicações Web e APIs na nuvem, independentemente da linguagem em que estão escritas, até mesmo para equipes sem experiência prévia na implantação e no gerenciamento de contêineres ou infraestrutura.
Implantar uma aplicação Web usando o AWS App Runner
Siga estas instruções passo a passo para implantar uma aplicação Web em contêiner usando o AWS App Runner. Comece com o código-fonte ou uma imagem de contêiner. O App Runner cria e implanta automaticamente a aplicação Web e balanceia a carga de tráfego com criptografia. -
AWS Elastic Beanstalk
-
Conceitos básicos do Elastic Beanstalk
Este guia orienta você pela criação, exploração, atualização e exclusão de uma aplicação do Elastic Beanstalk.Opções de implantação no AWS Elastic Beanstalk
Este guia explica como usar o AWS Elastic Beanstalk para implantar, gerenciar e escalar aplicações sem a sobrecarga operacional de gerenciar a infraestrutura.
Tutoriais e exemplos intermediários do AWS Electric Beanstalk
Esses tutoriais são direcionados para usuários intermediários e podem não conter instruções para etapas básicas, como se inscrever na AWS.
-
AWS Fargate
-
Conceitos básicos do AWS Fargate
Este guia explica os conceitos básicos do AWS Fargate, uma tecnologia que pode ser usada com o Amazon ECS para executar contêineres sem que seja necessário gerenciar servidores ou clusters de instâncias do Amazon EC2.
Introdução do console com contêineres Linux no AWS Fargate
Comece a usar o Amazon ECS no AWS Fargate usando o tipo de execução do Fargate para suas tarefas nas regiões em que o Amazon ECS oferece suporte ao AWS Fargate.
Criar um cluster com uma tarefa do Fargate Linux usando a AWS CLI
Configure um cluster, registre uma definição de tarefa, execute uma tarefa do Linux e realize outros cenários comuns no Amazon ECS com a AWS CLI. -
ROSA
-
Novidades do Serviço Red Hat OpenShift Service na AWS
Este guia ajudará você a começar a usar o Serviço Red Hat OpenShift na AWS.
Por que você usar o ROSA?
Este vídeo mostra quando o Red Hat OpenShift poderia ser usado em vez do Kubernetes padrão e explora o ROSA em detalhes na AWS.
Explorar
Explore diagramas de arquitetura de referência para contêineres na AWS.
Explore os whitepapers para ajudar você a começar e aprender as melhores práticas.
Explore soluções aprovadas e orientações de arquitetura para casos de uso comuns de contêineres.