
Olá pessoal. Na próxima semana, as aulas do curso de
Serviços em Nuvem serão iniciadas. Chamamos a sua atenção uma breve recontagem da
lição aberta "AWS EC2-service". Foi conduzido por
Egor Zuev , professor e especialista em serviços em nuvem com mais de 10 anos de experiência. Neste seminário, analisamos o serviço AWS EC2, codificamos e implantamos um aplicativo simples, aumentamos o banco de dados e também examinamos a replicação de imagens e os balanceadores de carga.
Visão geral do serviço AWS EC2
O EC2 (nuvem de computação elástica) é um serviço que fornece poder de computação, fornecendo às máquinas virtuais / físicas imagens pré-criadas de sistemas operacionais (por exemplo, Ubuntu, Debian, Windows).
Tipos de instâncias disponíveis para seleção:

Quanto às imagens, o AWS EC2 usa AMI (Amazon machine image), que também é a imagem de um sistema operacional pré-criado que será usado pela instância do EC2. A analogia mais próxima é um disco virtual com um sistema já instalado, por exemplo, no Virtual Box.
É importante saber que, quando configuramos a máquina e selecionamos a imagem, precisamos configurar o acesso. Como a máquina estará na nuvem, nós e outros usuários precisaremos entrar em contato com ela. Para fazer isso, configure o grupo Segurança - um conjunto de regras (política) que se aplica à instância do EC2 e inclui permissões para o tráfego de entrada e saída.
Trabalhar com o console
Imediatamente após o registro no serviço, você será levado ao console do AWS EC2. Lá, você pode escolher o EC2 e o tipo de máquina na qual implementaremos tudo. No nosso caso, selecione Ubuntu Server.


Um ponto importante : na etapa número 2, estamos interessados no
t2micro (marcado com um adesivo verde),
porque todo o resto será pago.
Nas próximas três etapas, deixamos as configurações padrão, mas a etapa 6 deve receber atenção especial. Aqui você precisa digitar o nome do grupo, por exemplo, backend-security-group e, em seguida, adicionar imediatamente a regra para que somente a 80ª porta possa se conectar do mundo externo.

Na sétima etapa, clique em Iniciar e inicie a instância. Mas antes disso, o sistema solicitará que você crie uma chave para conectar via ssh. Quando todas as etapas são concluídas, leva 1-2 minutos para inicializar.
A instância criada é chamada de back-end.
Vídeo detalhado sobre as configurações .
Ligação
Se alguém se esqueceu dos meandros da conexão, o serviço informará imediatamente:

Você pode usar um programa separado para conectar, por exemplo, o Bitvise SSH Client - uma ferramenta muito conveniente.
A máquina possui imediatamente endereços IP públicos e privados. Usamos public para acessar a máquina, na qual dirigimos, acessando-a pelo ssh. Nós escrevemos o ubuntu como nome de usuário e depois importamos a chave que criamos. Tudo o que resta é fazer login de carro. A propósito, executaremos todas as ações abaixo da raiz, para inserir as quais
digitamos o comando
sudo su .
Detalhes da conexão.Nós conectamos o banco de dados
Como banco de dados, foi decidido usar o PostgreSQL. Para continuar, crie uma nova instância com as seguintes configurações:
- coloque 16 GB na coluna Tamanho (etapa número 4);
- O nome do grupo de segurança é chamado database-security-group (etapa número 6);
- adicione a regra na configuração escolhendo PostgreSQL na sub-lista (etapa número 6).
Aliás, aqui no campo de endereço IP, você pode direcionar grupos de segurança; no nosso caso, estamos falando de backend-security-group. Assim, todos os que pertencem a esse grupo terão acesso ao banco de dados na rede privada.
Aqui você pode ouvir que tipo de mágica é essa rede privada.
Como resultado, temos duas instâncias no console - back-end e banco de dados.
Detalhes da conexão com o banco de dados.Criamos e implantamos o aplicativo
Crie um novo projeto usando WebStorm e Node.js. Nossa tarefa é
escrever um aplicativo simples que faça apenas duas coisas - responda aos pings e conte o número de solicitações de solicitação para um ponto de extremidade específico e, consequentemente, emita-o.
Implementaremos o aplicativo em dois estágios. Para implantar, acesse uma máquina chamada back-end, faça uma atualização, instale o Node.js, git clone, instale bibliotecas.
A seguir,
elevamos a base . Observe que o Node e o Postgres funcionam em máquinas diferentes. O momento da verdade -
conexão com o aplicativo através de um endereço público. Viva, tudo funciona!

O próximo estágio é a
criação de nossa própria imagem AMI , que estará disponível para nós. Com base nessa imagem da AMI, podemos fazer uma cópia do nosso back-end e implantá-lo em dois cliques. Para fazer isso, vá para "Imagem" - "Criar imagem".

Depois de criar a imagem,
fazemos as configurações necessárias. Existem muito poucas opções: por exemplo, você precisa especificar o tamanho mínimo do disco rígido. Estamos falando do tamanho do instantâneo, ou seja, ele será removido do disco rígido no qual temos tudo instalado. Podemos dizer que a AMI é uma entidade virtual que consiste em configurações de imagem e instantâneo com o sistema operacional instalado (no nosso caso, o sistema operacional com o Node.js instalado e nosso aplicativo).
Um ponto importante : levará cerca de cinco minutos para criar um instantâneo, durante o qual a máquina estará no status de espera (quanto mais gorda a sua imagem, mais tempo ela terá).
Vamos nomear a imagem, por exemplo,
backend-ami . O nome é apresentado aqui:

Após criar a imagem, podemos replicá-la e obter a mesma cópia da máquina em apenas alguns cliques. E conectar-se às máquinas não separadamente, mas através de
balanceadores de carga . Existem vários balanceadores para escolher, que diferem nos algoritmos de balanceamento.
A configuração do balanceador selecionado não causará dificuldades, embora haja
nuances importantes a serem lembradas.

Modelos de preço
O AWS EC2 oferece 4 modelos de preço. A captura de tela abaixo contém descrições de três delas: Reservado, Spot Market e On Demand. A propósito, em uma lição aberta, usamos o modelo On Demand.
Mais sobre modelos.Além da escolha dos modelos, o serviço AWS EC2 também é bom porque é integrado (como muitos outros produtos da AWS) ao sistema de monitoramento da AWS -
Cloudwatch . Esse sistema de monitoramento é configurado com flexibilidade e permite monitorar o consumo de recursos e o orçamento. Em apenas alguns cliques, você pode definir um limite para o uso dos recursos do EC2, após o qual você receberá uma notificação, por exemplo, por email.
Resta acrescentar que a lição aberta acabou sendo muito informativa. E se você estiver interessado neste tópico, é melhor assistir a todo o webinar para não perder nada.