- Gerar uma chave pública para acesso ao ambiente;
- Criar 1 instância EC2 com o sistema operacional Amazon Linux 2 (Família t3.small, 16 GB SSD);
- Gerar 1 Elastic IP e anexar à instância EC2;
- Liberar as portas de comunicação para acesso público:
- 22/TCP,
- 111/TCP e UDP,
- 2049/TCP/UDP,
- 80/TCP,
- 443/TCP.
- Configurar o NFS entregue;
- Criar um diretório dentro do filesystem do NFS com seu nome;
- Subir um Apache no servidor (deve estar online e rodando);
- Criar um script que:
- Valide se o serviço está online;
- Envie o resultado da validação para o diretório no NFS;
- Inclua no log: Data e Hora, nome do serviço, status e mensagem personalizada (ONLINE ou OFFLINE);
- Gere dois arquivos de saída:
- Um para o serviço ONLINE;
- Um para o serviço OFFLINE;
- Configurar a execução automatizada do script a cada 5 minutos;
- Fazer o versionamento da atividade;
- Documentar o processo de instalação do Linux.
- Criar uma chave pública de acesso e anexá-la à nova instância EC2.
- No console da AWS, buscar por EC2 e ir em Pares de chaves.
- Escolher um nome para a chave e clicar em Criar par de chaves.
- Um arquivo contendo a chave será gerado (xxx.pem). Não perca este arquivo!
- Criar a instância usando a opção Executar instâncias.
- Configurar as Tags (Name, Project e CostCenter) para evitar problemas futuros.
- Selecionar a imagem Amazon Linux 2 AMI, SSD Volume Type.
- Escolher a instância do tipo t3.small.
- Utilizar um SSD modelo gp2 com 16 GB de armazenamento.
- Finalizar clicando em Executar instância.
- No console AWS, acessar EC2 > IPs elásticos.
- Escolher Alocar endereço IP elástico.
- Associar o endereço IP elástico à instância EC2 criada.
- No console do serviço EC2, acessar Segurança > Grupos de segurança.
- Configurar as seguintes regras de entrada no grupo de segurança:
Tipo | Protocolo | Intervalo de Portas | Origem | Descrição |
---|---|---|---|---|
SSH | TCP | 22 | MEU IP | Acesso SSH |
UDP personalizado | UDP | 111 | 0.0.0.0/0 | RPC |
UDP personalizado | UDP | 2049 | 0.0.0.0/0 | NFS |
TCP personalizado | TCP | 80 | 0.0.0.0/0 | HTTP |
TCP personalizado | TCP | 443 | 0.0.0.0/0 | HTTPS |
TCP personalizado | TCP | 111 | 0.0.0.0/0 | RPC |
TCP personalizado | TCP | 2049 | 0.0.0.0/0 | NFS |
- No console AWS, buscar pelo serviço EFS.
- Criar um Sistema de Arquivos EFS.
- Certificar-se de que a VPC seja a mesma da instância EC2.
- Liberar a porta 2049/TCP para acesso.
-
Instalar o pacote necessário:
sudo yum install -y amazon-efs-utils
-
Criar um diretório local para o ponto de montagem.
-
Obter as informações de DNS do ponto de montagem no console do EFS.
-
Montar o sistema de arquivos usando: h
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 ://
- Editar o arquivo /etc/fstab e adicionar a seguinte linha:
file_system_id.efs.aws-region.amazonaws.com:/ mount_point nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0
- Verificar a montagem usando:
df -h
- Atualizar o sistema:
sudo yum update -y
- Instalar o Apache:
sudo yum install httpd -y
- Iniciar o Apache:
sudo systemctl start httpd
- Habilitar o Apache para iniciar automaticamente:
sudo systemctl enable httpd
- Verificar o status:
sudo systemctl status httpd
Criar o script usando o editor nano:
nano script.sh
Adicionar o conteúdo abaixo ao script:
#!/bin/bash
SERVICE_NAME="httpd"
EFS_MOUNT_PATH="/var/efs/ronaldo"
CURRENT_DATE=$(date "+%Y-%m-%d")
CURRENT_TIME=$(date "+%H:%M:%S")
if systemctl is-active --quiet $SERVICE_NAME; then
STATUS="ONLINE"
MESSAGE="O serviço $SERVICE_NAME está online."
OUTPUT_FILE="$EFS_MOUNT_PATH/status_online.txt"
else
STATUS="OFFLINE"
MESSAGE="O serviço $SERVICE_NAME está offline."
OUTPUT_FILE="$EFS_MOUNT_PATH/status_offline.txt"
if
echo "$CURRENT_DATE $CURRENT_TIME - $STATUS - $MESSAGE" > $OUTPUT_FILE
Tornar o script executável:
chmod +x script.sh
Executar o script:
./script.sh
Configurar a execução automática com Cron
-
Editar o cronjob:
crontab -e
Adicionar a seguinte linha:
*/5 * * * * /caminho/do/script/check_service.sh
Projeto Finalizado!