Início rápido: Implantar uma aplicação .NET Core no Linux no Elastic Beanstalk - AWS Elastic Beanstalk

Início rápido: Implantar uma aplicação .NET Core no Linux no Elastic Beanstalk

Este tutorial de início rápido o orienta no processo de criação de uma aplicação .NET Core no Linux e sua implantação em um ambiente AWS Elastic Beanstalk.

Não é para uso em produção

Os exemplos são destinados apenas para demonstração. Não use aplicações de exemplo na produção.

Sua conta da AWS

Se você ainda não for um cliente da AWS, será necessário criar uma conta da AWS. O cadastro habilita o acesso ao Elastic Beanstalk e outros serviços necessários da AWS.

Se você já tem uma conta da AWS, pode prosseguir para Pré-requisitos.

Inscrever-se para uma Conta da AWS

Se você ainda não tem uma Conta da AWS, siga as etapas abaixo para criar uma.

Como cadastrar uma Conta da AWS
  1. Abra https://portal.aws.amazon.com/billing/signup.

  2. Siga as instruções online.

    Parte do procedimento de inscrição envolve receber uma chamada telefônica ou uma mensagem de texto e inserir um código de verificação pelo teclado do telefone.

    Quando você se inscreve para uma Conta da AWS, um Usuário raiz da conta da AWS é criado. O usuário-raiz tem acesso a todos os Serviços da AWS e recursos na conta. Como prática recomendada de segurança, atribua o acesso administrativo a um usuário e use somente o usuário-raiz para executar tarefas que exigem acesso de usuário-raiz.

A AWS envia um e-mail de confirmação depois que o processo de inscrição é concluído. A qualquer momento, é possível exibir as atividades da conta atual e gerenciar sua conta acessando https://aws.amazon.com/ e selecionando Minha conta.

Criar um usuário com acesso administrativo

Depois de se cadastrar em uma Conta da AWS, proteja seu Usuário raiz da conta da AWS, habilite o AWS IAM Identity Center e crie um usuário administrativo para não usar o usuário-raiz em tarefas cotidianas.

Proteger o Usuário raiz da conta da AWS
  1. Faça login no Console de gerenciamento da AWS como o proprietário da conta ao escolher a opção Usuário-raiz e inserir o endereço de e-mail da Conta da AWS. Na próxima página, insira a senha.

    Para obter ajuda ao fazer login usando o usuário-raiz, consulte Fazer login como usuário-raiz no Guia do usuário do Início de Sessão da AWS.

  2. Habilite a autenticação multifator (MFA) para o usuário-raiz.

    Para obter instruções, consulte Habilitar um dispositivo MFA virtual para sua Conta da AWS de usuário-raiz (console) no Guia do usuário do IAM.

Criar um usuário com acesso administrativo
  1. Habilita o Centro de Identidade do IAM.

    Para obter instruções, consulte Habilitar o AWS IAM Identity Center no Guia do usuário do AWS IAM Identity Center.

  2. No Centro de Identidade do IAM, conceda o acesso administrativo a um usuário.

    Para obter um tutorial sobre como usar o Diretório do Centro de Identidade do IAM como a fonte de identidade, consulte Configurar o acesso dos usuários com o Diretório do Centro de Identidade do IAM padrão no Guia do usuário do AWS IAM Identity Center.

Iniciar sessão como o usuário com acesso administrativo
  • Para fazer login com o seu usuário do Centro de Identidade do IAM, use o URL de login enviado ao seu endereço de e-mail quando o usuário do Centro de Identidade do IAM foi criado.

    Para obter ajuda para fazer login usando um usuário do Centro de Identidade do IAM, consulte Fazer login no portal de acesso da AWS, no Guia do usuário do Início de Sessão da AWS.

Atribuir acesso a usuários adicionais
  1. No Centro de Identidade do IAM, crie um conjunto de permissões que siga as práticas recomendadas de aplicação de permissões com privilégio mínimo.

    Para obter instruções, consulte Criar um conjunto de permissões no Guia do usuário do AWS IAM Identity Center.

  2. Atribua usuários a um grupo e, em seguida, atribua o acesso de autenticação única ao grupo.

    Para obter instruções, consulte Adicionar grupos no Guia do usuário do AWS IAM Identity Center.

Pré-requisitos

Para seguir os procedimentos neste manual, você precisa de um terminal de linha de comando ou de um shell para executar os comandos. Nas listagens, os comandos são mostrados precedidos por um símbolo de prompt ($) e pelo nome do diretório atual, quando apropriado.

~/eb-project$ this is a command this is output

No Linux e no macOS, você pode usar seu gerenciador de pacotes e de shell preferido. No Windows, você pode instalar o subsistema Windows para Linux para obter uma versão do Ubuntu e Bash integrada ao Windows.

EB CLI

Este tutorial também usa a Interface de Linhas de Comando do Elastic Beanstalk (CLI do EB). Para obter detalhes sobre a instalação e configuração da CLI do EB, consulte Instalar a EB CLI com script de configuração (recomendado) e Configurar a EB CLI.

.NET Core no Linux

Se não tiver o .NET SDK instalado na máquina local, você poderá instalá-lo seguindo o link Baixar .NET no site de Documentação do .NET.

Verifique sua instalação do .NET SDK executando o comando a seguir.

~$ dotnet --info

Etapa 1: criar uma aplicação .NET Core no Linux

Crie um diretório do projeto.

~$ mkdir eb-dotnetcore ~$ cd eb-dotnetcore

Em seguida, crie uma aplicação Hello World de exemplo executando os seguintes comandos.

~/eb-dotnetcore$ dotnet new web --name HelloElasticBeanstalk ~/eb-dotnetcore$ cd HelloElasticBeanstalk

Etapa 2: executar a aplicação localmente

Execute o seguinte comando para executar sua aplicação localmente.

~/eb-dotnetcore/HelloElasticBeasntalk$ dotnet run

A saída deve ser semelhante ao texto a seguir.

Building... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:7294 info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5052 info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development info: Microsoft.Hosting.Lifetime[0]
nota

O comando dotnet seleciona uma porta aleatoriamente ao executar a aplicação localmente. Neste exemplo, a porta é 5052. Ao implantar a aplicação no ambiente Elastic Beanstalk, ela será executada na porta 5000.

Insira o endereço URL http://localhost:port no navegador. Para este exemplo específico, o comando é http://localhost:5052. O navegador deve exibir “Hello World!”.

Etapa 3: implantar sua aplicação .NET Core no Linux com a EB CLI

Execute os seguintes comandos para criar um ambiente Elastic Beanstalk para essa aplicação.

Para criar um ambiente e implantar sua aplicação .NET Core no Linux
  1. Compile e publique sua aplicação em uma pasta para implantação no ambiente do Elastic Beanstalk que você está prestes a criar.

    ~$ cd eb-dotnetcore/HelloElasticBeanstalk ~/eb-dotnetcore/HelloElasticBeanstalk$ dotnet publish -o site
  2. Navegue até o diretório no qual você acabou de publicar a aplicação.

    ~/eb-dotnetcore/HelloElasticBeanstalk$ cd site
  3. Inicialize o repositório da EB CLI com o comando eb init:

    Observe os seguintes detalhes relacionados à versão da ramificação da plataforma que você especifica no comando:

    • Substitua x.y.zno comando a seguir pela versão mais recente da ramificação da plataforma . NET 6 no AL2023.

    • Para localizar a versão mais recente da ramificação da plataforma, consulte .NET Core no Linux Plataformas compatíveis no Guia de plataformas do AWS Elastic Beanstalk.

    • Um exemplo de um nome de pilha de soluções que inclui o número da versão é 64bit-amazon-linux-2023-v3.1.1-running-.net-6. Neste exemplo, a versão da ramificação é 3.1.1.

    ~eb-dotnetcore/HelloElasticBeanstalk/site$ eb init -p 64bit-amazon-linux-2023-vx.y.z-running-.net-6 dotnetcore-tutorial --region us-east-2 Application dotnetcore-tutorial has been created.

    Esse comando cria uma aplicação dotnetcore-tutorial e configura seu repositório local para criar ambientes com a versão da plataforma .NET Core on Linux especificada no comando.

  4. (Opcional) Execute eb init novamente para configurar um par de chaves padrão para que você possa usar SSH para se conectar à instância do EC2 que está executando seu aplicativo:

    ~eb-dotnetcore/HelloElasticBeanstalk/site$ eb init Do you want to set up SSH for your instances? (y/n): y Select a keypair. 1) my-keypair 2) [ Create new KeyPair ]

    Selecione um par de chaves se você já tiver um, ou siga os as instruções na tela para criar um. Se nenhum prompt aparecer ou se for necessário alterar as configurações posteriormente, execute eb init -i.

  5. Crie um ambiente e implante seu aplicativo nele com eb create. O Elastic Beanstalk cria automaticamente um arquivo zip para a aplicação e o inicia na porta 5000.

    com

    ~eb-dotnetcore/HelloElasticBeanstalk/site$ eb create dotnet-tutorial

    O Elastic Beanstalk leva cerca de cinco minutos para criar seu ambiente.

Etapa 4: executar a aplicação no Elastic Beanstalk

Quando o processo de criação de seu ambiente for concluído, abra seu site com eb open.

~eb-dotnetcore/HelloElasticBeanstalk/site$ eb open

Parabéns! Você implantou uma aplicação .NET Core no Linux com o Elastic Beanstalk! Isso abre uma janela do navegador usando o nome de domínio criado para o seu aplicativo.

Etapa 5: limpar

Você pode encerrar o ambiente quando terminar de trabalhar com a aplicação. O Elastic Beanstalk encerra todos os recursos da AWS associados ao seu ambiente.

Para encerrar seu ambiente do Elastic Beanstalk com a CLI do EB, execute o seguinte comando.

~eb-dotnetcore/HelloElasticBeanstalk/site$ eb terminate

Recursos da AWS para sua aplicação

Você acabou de criar uma aplicação de instância única. Ela serve como uma aplicação de exemplo simples com uma única instância do EC2 e, portanto, não requer balanceamento de carga ou ajuste de escala automático. Para aplicações de instância única, o Elastic Beanstalk cria os seguintes recursos da AWS:

  • Instância do EC2: uma máquina virtual do Amazon EC2 configurada para executar aplicações Web na plataforma de sua escolha.

    Cada plataforma executa um conjunto diferente de software, arquivos de configuração e scripts para oferecer suporte a uma versão de linguagem, framework, contêiner da Web específicos ou a uma combinação deles. A maioria das plataformas usa o Apache ou nginx como um proxy reverso que processa tráfego da web na frente do aplicativo web, encaminha solicitações para ele, atende ativos estáticos e gera logs de acesso e de erro.

  • Grupo de segurança de instância: um grupo de segurança do Amazon EC2 configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP do load balancer chegue à instância do EC2 que executa seu aplicativo Web. Por padrão, o tráfego não é permitido em outras portas.

  • Bucket do Amazon S3: um local de armazenamento do seu código-fonte, logs e outros artefatos criados quando o Elastic Beanstalk é utilizado.

  • Alarmes do Amazon CloudWatch: dois alarmes do CloudWatch que monitoram a carga nas instâncias do ambiente e são acionados quando ela está muito alta ou muito baixa. Quando um alarme é acionado, o seu grupo de Auto Scaling pode aumentar ou diminuir.

  • Pilha do CloudFormation: o Elastic Beanstalk usa o CloudFormation para iniciar os recursos em seu ambiente e propagar alterações de configuração. Os recursos são definidos em um modelo que você pode visualizar no console do CloudFormation.

  • Nome de domínio: um nome de domínio que encaminha para a aplicação Web no formato subdomínio.região.elasticbeanstalk.com.

O Elastic Beanstalk gerencia todos esses recursos. Quando você encerra o ambiente, o Elastic Beanstalk encerra todos os recursos dele.

Próximas etapas

Depois que um ambiente estiver executando um aplicativo, você poderá implantar uma nova versão do aplicativo ou um aplicativo diferente a qualquer momento. A implantação de uma nova versão do aplicativo é muito rápida, pois não é necessário provisionar ou reiniciar as instâncias do EC2. Também é possível explorar o novo ambiente usando o console do Elastic Beanstalk. Para conhecer as etapas detalhadas, consulte Explore seu ambiente, no capítulo Primeiros passos deste guia.

Depois que você implantar um ou dois aplicações de amostra e estiver pronto para começar a desenvolver e executar aplicações .NET Core no Linux localmente, consulte Configuração do ambiente de desenvolvimento .NET Core no Linux para o Elastic Beanstalk.

Implantar com o console do Elastic Beanstalk

Você também pode usar o console do Elastic Beanstalk para iniciar a aplicação de exemplo. Para conhecer as etapas detalhadas, consulte Criar uma aplicação de exemplo, no capítulo Primeiros passos deste guia.