Vamos ver neste artigo a utilização da função User Data dentro da EC2 que nos permite a automação de alguns processo e a padronização de processos.
Se você chegou aqui e não sabe ainda, o Elastic Compute Cloud, A.k.a EC2, é o serviço da AWS que permite a criação e administração de máquinas virtuais (chamadas de instâncias no mundo cloud), uma grande parcela de coisas que são criadas em um ambiente cloud, geralmente são máquinas virtuais.
Se quiser conhecer um pouco mais sobre EC2 e os outros serviços principais da AWS você pode baixar o e-book gratuito “Os Principais Serviços da AWS“.
Dentro do serviço EC2, você consegue definir scripts que serão executados durante a inicialização da sua máquina, podemos incluir neste local scripts de inicialização feitos em bash ou utilizar esta entrada para executar outros comandos em python por exemplo.
Neste artigo vamos subir um serviço de host, de forma simples com alguns comandos, iremos subir uma página de PHP, sem necessariamente precisarmos entrar na máquina.
Entre no console da aws e pesquise por EC2
Vamos iniciar a geração de uma nova máquina, criaremos uma t3.Micro e usaremos a imagem linux da amazon, para iniciar a criação clique em:
Vamos selecionar a imagem linux e clique em select:
Selecione a t2.micro que é uma imagem elegivel no free tier para este nosso teste e clique em next.
Nesta tela, teremos algumas configurações para selecionar, como VPC, IAM Roles, mas vamos focar no final da tela, onde temos as definições dos comandos de script que irá executar na inicialização da máquina.
No campo do User data vamos colocar o script que irá configurar o httpd na máquina e iremos subir uma página php para ver o resultado no browser
#!/bin/bash
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
yum install -y httpd mariadb-server
systemctl start httpd
systemctl enable httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
O código acima é um exemplo rápido para colocarmos no form de User Data, note que inicializamos de um script do tipo bash e rodamos comandos em sequência que fazem a instalação e configuração do httpd e banco da dados por exemplo.
As primeiras linhas, são para atualizar a imagem do linux e rodar comandos especificos da imagem linux da AWS, a partir disso, começamos a instalar o mariadb (Banco de dados) e iniciando o serviço httpd e colocando as permissões padrões de pasta, permitindo que os usuários do apache e da máquina possam operar sobre os arquivos.
Assim sendo, qualquer comando que você deseja ou necessite para preparar seu ambiente, este é o lugar. E não se limite, pois é possível executar comandos de outras aplicações por ele, como por exemplo, o aws-cli.
Agora, após a criação da máquina, pegue o DNS público da sua EC2 e coloque no browser, note que agora vamos ver o site de teste do apache.
No nossos comandos, subimos juntamente uma pequena página em php com algumas infos de sistema e jogamos ela no caminho root com o nome: phpinfo.php, sendo assim se colocarmos esse nome no browser, teremos o retorno de algumas informações da máquina.
Fácil, agora o mesmo procedimento servirá para você hospedar sua aplicação web.
Estas configurações ficam atreladas a máquina e sempre irá executar ao iniciar, então em um ambiente de escala de máquinas para suportar uma quantidade de acesso maior, as novas máquinas já ligaram e estarão prontas para servir, em todo caso isso envolve alguns outros assuntos, como AutoScalling, LoadBalance, Failovers, vamos ver isso em outros artigos.
Se você quiser aprender mais sobre cloud e como alavancar o seu software ou a sua carreira você pode participar do Bootcamp de Cloud, é um treinamento gratuito, online, ao vivo e prático onde você vai ter a oportunidade de colocar uma aplicação na nuvem e deixar essa aplicação com, no mínimo, 99,99% de disponibilidade usando as mesmas técnicas das empresas mais inovadoras do mercado como Netflix, Nubank, iFood e várias outras. Para participar CLIQUE AQUI e faça seu cadastro.
Abraços
A Inteligência Artificial (IA) é um campo multidisciplinar que busca desenvolver sistemas capazes de simular a inteligência humana. Neste artigo, vamos explorar os fundamentos da IA, suas técnicas e aplicações, além de discutir as perspectivas futuras dessa tecnologia revolucionária. Ao compreendermos a IA em sua totalidade, podemos apreciar seu potencial impacto em diversas áreas da … Continue reading O que é Inteligência Artificial: Uma Visão Abrangente e Perspectivas Futuras
A Transformação Digital tem sido um dos principais focos das empresas nos últimos anos. Ela implica em aproveitar as inovações tecnológicas para melhorar processos, aumentar a eficiência e a produtividade, além de proporcionar uma experiência superior para os clientes. Nesse contexto, o DevOps emerge como uma abordagem fundamental para impulsionar essa transformação. Neste artigo, discutiremos … Continue reading A Importância do DevOps na Transformação Digital das Empresas
A computação em nuvem revolucionou a forma como as empresas e indivíduos utilizam a tecnologia. Além dos benefícios óbvios, como maior flexibilidade, escalabilidade e redução de custos, a nuvem também pode desempenhar um papel fundamental na promoção da sustentabilidade ambiental. Neste artigo, vamos explorar como a computação em nuvem pode contribuir para a redução do … Continue reading A Nuvem e a Sustentabilidade Ambiental: Explorando os Benefícios Ambientais da Computação em Nuvem