
Cloud Computing: Criando instâncias na AWS EC2
Como criar máquinas virtuais na AWS para executar suas aplicações
A AWS EC2 é um serviço de infraestrutura em nuvem que oferece uma capacidade de processamento escalável e flexível, permitindo que os usuários possam criar e executar aplicativos e serviços em um ambiente de computação na nuvem.
A AWS EC2 pode ser utilizada para a execução de aplicativos web, hospedagem de sites, processamento de dados, assim como o desenvolvimento e teste de aplicativos. Ela oferece escalabilidade, segurança, controle, flexibilidade e alta disponibilidade, já que os recursos podem ser aumentados ou reduzidos de acordo com a demanda. Além disso, a AWS EC2 oferece uma ampla variedade de sistemas operacionais, configurações e custos (incluindo opções cobertas pelo teste gratuito).
Antes de criar sua instância, é importante que você tenha configurado corretamente sua VPC, suas sub-redes e seus grupos de acesso. Todas essas configurações podem ser feitas seguindo esse artigo.
Para criar uma nova instancia, acesse o painel da EC2 e clique em Executar instância ou Launch Instance e informe um nome para essa instância. Agora você precisará selecionar uma AMI (Amazon Machine Images) que são modelos pré-configurados de sistemas operacionais. É importante observar que alguns AMI estão inclusos no periodo de testes da AWS e isso pode nos ajudar a reduzir os custos. Nesse exemplo, nós utilizaremo o Amazon Linux 2, que é uma imagem criada pela própria Amazon e otimizada para ser executada em cloud. A arquitetura utilizada será a x86 mas também há opções com arquitetura ARM.
O tipo de instância é outro ponto importante a ser observado. Existem diversos tipos de instâncias EC2, cada uma com características específicas e destinadas a diferentes tipos de cargas de trabalho. Alguns exemplos de tipos de instâncias EC2 são: t2, c5, m5, r5, x1, z1. Cada tipo oferece diferentes níveis de CPU, memória, armazenamento e desempenho de rede, permitindo que os usuários escolham as instâncias mais adequadas para suas necessidades e orçamentos. Mais uma vez, alguns tipos de instância são cobertos pelo periodo gratuito de testes e por isso utilizaremo a t2.micro que nos permitirá utilizar 1 CPU e 1GB de RAM e até 30GB de armazenamento SSD totalmente de graça.
Em Configurações de rede selecione a VPC e o Security Group criados anteriormente e mantenha a sub-rede já selecionada (A AWS já proporciona uma VPC e um grupo de acesso padrão para você criar suas instâncias EC2 mas é uma boa prática criar configurar esses recursos manualmente para aumentar a segurança das nossas aplicações). Por ultimo, habilite a criação de um IP público.
Em configurações de armazenamento nós podemos manter os 8GB gp3 (SSD de uso geral). É importante destacar que esse armazenamento se comporta como um SSD físico dedicado à maquina virtual, porém, por baixo dos panos estaremos utilizando um serviço chamado Elastic Block Store (EBS), uma solução de armazenamento de bloco na nuvem da Amazon. O EBS é projetado para fornecer armazenamento persistente e de baixa latência para instâncias de computação em nuvem da AWS, como o Amazon EC2. O EBS oferece diferentes tipos de volume, como SSDs e discos rígidos baseados em HDD, para atender às necessidades de desempenho, capacidade e custo do usuário. Além disso, os dados armazenados no EBS são automaticamente replicados em várias zonas de disponibilidade, garantindo alta disponibilidade e durabilidade. Ele também pode escalar facilmente para atender às necessidades de armazenamento de dados das instâncias EC2.
Nas configurações de Par de chaves nós iremos criar uma nova, caso não tenhamos uma ainda. Um par de chaves pode ser utilizado em várias EC2 para acesso SSH. No entanto, é recomendado que cada EC2 tenha um par de chaves individual para fins de segurança e para evitar a propagação de chaves comprometidas em várias instâncias. Além disso, ter uma chave separada para cada instância pode ajudar a controlar o acesso de cada usuário à instância específica. Para criar uma nova chave basta informar o nome do par de chaves e manter as configurações de criptografia padrão. Como resultado será gerado um arquivo .pem ou .ppk que será utilizado para conexão SSH. Agora basta informar a chave criada e confirmar a criação da instância.
Após a instancia ser criada, o status dela passará por "inicializando" e depois "verificando" e então estará disponível para ser acessada. Dentro da instância poderemos verificar algumas informações como endereço IP público e privado, DNS público e privado, par de chaves, grupos de segurança, regras de entrada e saída, ID da VPC e subnet e zona de disponibilidade.
Associando um Elastic IP
Um Elastic IP é um endereço de IP estático que pode ser vinculado e desvinculado de uma instância EC2 em execução na nuvem da AWS. Quando você cria uma instância EC2 na AWS, ela recebe um endereço IP dinâmico. Isso significa que sempre que você parar e reiniciar a instância, o endereço IP poderá mudar. No entanto, com um Elastic IP, você pode associar um endereço IP persistente à sua instância, garantindo que ela sempre tenha o mesmo endereço IP, independentemente de quantas vezes você reiniciá-la ou pará-la. Para associar um Elastic IP a uma instância vá ao painel de IP's elasticos, clique em "Alocar endereço IP elástico", adicione uma tag "Name" com o nome que deseja dar a esse endereço de IP e confirme a criação. Em seguida selecione o endereço de IP criado, em ações clique em "Associar endereço IP elástico", mantenha o tipo de recurso como "instância", selecione a instância que deseja associar com esse IP e ative a opção "Permitir que o endereço IP elástico seja reassociado". Isso vai garantir que esse IP seja associado automaticamente quando a instância reiniciar. Agora basta confirmar para associar esse Elastic IP com sua instância EC2.
Imagens e Snapshots
Uma forma de manter backups das nossas instâncias é criando uma imagem que reflita o estado da nossa maquina virtual. Um ponto importante à entender é a diferença entre uma imagem e um snapshot. Uma imagem de uma instância é uma cópia completa da instância inteira (incluindo o sistema operacional, as configurações, os dados e quaisquer aplicativos instalados), que pode ser usada para criar uma nova instância ou reimplantar uma instância existente em outro local. Um snapshot de uma instância é uma imagem dos volumes de armazenamento associados a uma instância (por exemplo, os discos rígidos virtuais EBS). Ele captura apenas os dados dos volumes EBS e não inclui informações de configuração, aplicativos ou sistema operacional. Ou seja, uma imagem de uma instância é uma cópia completa da instância e pode ser utilizada para criar novas instâncias, enquanto um snapshot de uma instância é uma cópia dos volumes de armazenamento da instância.
Para criar uma imagem, selecione a instância e em ações clique em "Imagem e modelos" e "Criar imagem". Em seguida informe o nome da imagem (uma boa prática é utilizar o nome para fazer o versionamento das imagens) e uma descrição. Podemos manter as configurações de armazenamento e reinicialização padrões e confirmar a criação da imagem. As imagens geradas estarão disponiveis no painel AMI. Para criar um snapshot, vá ao painel de volumes na seção ELB, selecione o volume e em ações clique em "Criar snapshot".
Interrompendo e encerrando instâncias
Uma vez que uma instância não esteja sendo utilizada, nós podemos interrompe-la ou encerrá-la. Interromper uma instância EC2 significa que ela é colocada em um estado de hibernação. A instância em execução é pausada e todos os dados presentes na memória são armazenados em um disco virtual. Ao interromper uma instância, você não paga mais pelo tempo de execução, mas ainda paga pelos recursos de armazenamento de disco virtual e IP elástico. Já encerrar uma instância EC2 significa que ela quase que instantaneamente é desligada e todos os dados presentes na memória são perdidos. Quando uma instância é encerrada, todos os dados armazenados em armazenamento de disco virtual ou volume do EBS (Elastic Block Store) permanecem intactos. Ao encerrar uma instância, você não paga mais por nenhum recurso vinculado à instância.
Esse artigo faz parte de uma série sobre computação em nuvem e é importante que você siga os artigos na integra para que não hajam lacunas de conhecimento. Para ver os outros artigos sobre computação em nuvem acesse esse link.