O Amazon Elastic Compute Cloud (Amazon EC2) oferece uma capacidade de computação dimensionável na nuvem da Amazon Web Services (AWS). O uso do Amazon EC2 elimina a necessidade de investir em hardware inicialmente, portanto, você pode desenvolver e implantar aplicativos com mais rapidez. Você pode usar o Amazon EC2 para executar o número de servidores virtuais que precisar, configurar a segurança e a rede, e gerenciar o armazenamento. O Amazon EC2 também permite a expansão ou a redução para gerenciar as alterações de requisitos ou picos de popularidade, reduzindo, assim, a sua necessidade de prever o tráfego do servidor.
O Amazon EC2 fornece os seguintes recursos:
-
Ambientes de computação virtual, conhecidos como instâncias
-
Os modelos pré-configurados para suas instâncias, conhecidos como Imagens de máquina da Amazon (AMIs), que empacotam os bits de que você precisa para seu servidor (incluindo o sistema operacional e software adicional)
-
Várias configurações de capacidade de CPU, memória, armazenamento e redes para suas instâncias, conhecidas como tipos de instância
-
Informações seguras de login para suas instâncias usando pares de chave (a AWS armazena a chave pública e você armazena a chave privada em um lugar seguro)
-
Volumes de armazenamento para dados temporários que são excluídos quando você interrompe ou encerra sua instância, conhecidos como volumes de armazenamento de instâncias
-
Volumes de armazenamento persistentes para seus dados usando o Amazon Elastic Block Store (Amazon EBS), conhecidos como volumes do Amazon EBS
-
Vários locais físicos para seus recursos, como instâncias e volumes do Amazon EBS, conhecidos como regiões e zonas de disponibilidade
-
Um firewall que permite especificar os protocolos, portas e intervalos de IPs de origem que podem acessar suas instâncias usando grupos de segurança
-
Os endereços IPv4 estáticos para computação em nuvem dinâmica, conhecidos como endereços IP elásticos
-
Metadados, conhecidos como tags, que você pode criar e atribuir aos recursos do Amazon EC2
-
Redes virtuais isoladas logicamente do restante da Nuvem AWS que você pode criar e conectar à sua própria rede, conhecidas como nuvens privadas virtuais (VPCs)
-
Realize o cadastro e/ou login na Amazon AWS
-
Navegue até o Console de gerenciamento da AWS
-
Localize os serviços da AWS -> Computação -> clique em EC2
-
Na nova página, clique em Launch Instance para criar sua nova instância EC2
-
Etapa 01: Escolha uma Amazon Machine Image (AMI) || Step 01: Choose an Amazon Machine Image (AMI)
- Ubuntu Server 18.04 LTS (HVM), SSD Volume Type | 64-bit (x86)
- Ubuntu Server 18.04 LTS (HVM), SSD Volume Type | 64-bit (x86)
-
Etapa 02: Escolha um tipo de instância || Step 02: Choose an Instance Type
-
Etapa 03: configurar os detalhes da instância || Step 03: Configure Instance Details
- Mantenha as configurações padrão
- Mantenha as configurações padrão
-
Etapa 04: adicionar armazenamento || Step 04: Add Storage
- Mantenha as configurações padrão
- Mantenha as configurações padrão
-
Etapa 05: adicionar tags || Step 05: Add Tags
- Mantenha as configurações padrão
- Mantenha as configurações padrão
-
Etapa 06: configurar o grupo de segurança || Step 06: Configure Security Group
- Crie um novo grupo de segurança
- De um nome para o grupo de segurança
- Coloque uma breve descrição para o grupo de segurança
-
Etapa 07: Revise o lançamento da instância || Step 07: Review Instance Launch
- Realize a revisão da instancia antes de finalizar
- Clique em Lançamento/Launch
-
Etapa 08: Selecione um par de chaves existente ou crie um novo par de chaves || Step 08: Select an existing key pair or create a new key pair
- Selecione criar um novo par de chaves
- De um nome para o par de chaves
- Realize o download do seu par de chaves
- Salve esse arquivo em um lugar seguro
- Realize um backup desse arquivo em um lugar seguro
-
OBS: O par de chaves que foi gerado vai ser utilizado para acessar a instancia do servidor EC2
- Para acessar à instância EC2, será utilizado o software Termius, que por sua vez é um cliente SSH
- Realize o download do software nesse link Termius
- Utilizando o IP atual da instância e o par de chaves que foi gerado na estapa 08 durante a criação da mesma, realize o acesso
- Inicie a instância no Console AWS e acesse o servidor pelo Termius
- Para realizar o update e o apgrade, execute:
sudo apt update
sudo apt upgrade
- Para instalar o apache, execute:
sudo apt install apache2
-
Para efetuar a liberação da porta 80, adicione uma nova regra de entrada em sua instância no grupo de seguração utilizado
-
Para instalar o editor de texto VIM, execute:
sudo apt install vim
- Para configurar as opções do editor, execute:
sudo vim /etc/vim/vimrc/
- Aperte I para entrar no modo de INSERÇÃO e descomente as seguintes linhas:
if has("syntax")
syntax on
endif
set background=dark
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal$
endif
if has("autocmd")
filetype plugin indent on
endif
- Incluir no final do arquivo
set nu
set cursorline
-
Aperte ESC e digite :wq! para salvar e sair
-
Agora com o VIM configurado, execute o seguinte comando para configurar o apache2:
sudo vim /etc/apache2/apache2.conf
-
Dentro do arquivo, edite a linha do KeepAlive para ON
-
OBS: O KeepAlive permite que o servidor utilize a mesma conexão para transferir múltiplos arquivos e é uma ótima maneira de reduzir o uso de recursos e aumentar a velocidade do seu site ao mesmo tempo.
- Inicie a instância no Console AWS e acesse o servidor pelo Termius
- Para realizar o update e o apgrade, execute:
sudo apt update
sudo apt upgrade
- Para criar a pasta onde vai ficar o virtual Host e a pasta de logs, execute:
sudo mkdir -p /var/www/html/ids.local/public_html
sudo mkdir /var/www/html/ids.local/logs
- Criamos agora um arquivo de chamada para ids
sudo vim /etc/apache2/sites-available/ids.local.conf
- Dentro deste arquivo colocamos a seguinte descrição
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName ids.local
ServerAlias www.ids.local
DocumentRoot /var/www/html/ids.local/public_html/
ErrorLog /var/www/html/ids.local/logs/error.log
CustomLog /var/www/html/ids.local/logs/access.log combined
</VirtualHost>
- Para conceder as permissões ao usuário logado
sudo chown -R $USER:$USER /var/www/html/ids.local/public_html
sudo chmod -R 755 /var/www/html/
- Criando um arquivo de exemplo e preenchendo com html:
sudo vim /var/www/html/ids.local/public_html/index.html
<html>
<head>
<title>Bem Vindo</title>
<meta charset="UTF-8">
</head>
<body>
<h1>Parabéns! O seu virtual host está funcionando!</h1>
</body>
</html>
- Para criar um link simbólico, execute:
sudo a2ensite ids.local.conf
- Agora desative o link principal:
sudo a2dissite 000-default.conf
- reinicie o servidor apache2
sudo service apache2 restart
- Para finalizar, coloque o IP do servidor no navegador e teste se está funcionando corretamente
- Inicie a instância no Console AWS e acesse o servidor pelo Termius
- Para realizar o update e o apgrade, execute:
sudo apt update
sudo apt upgrade
- Para instalar o postgres, execute:
sudo apt install postgresql-10
- Para habilitar/ativar o usuário no postgres, execute:
sudo -u postgres psql
alter user postgres with encrypted password 'senhaescolhida';
- Para habilitar acesso remoto ao servidor, execute:
sudo vim /etc/postgresql/10/main/postgresql.conf
Modifique
# listen_addresses = 'localhost' # what IP address(es) to listen on
Para
listen_addresses = '*' # what IP address(es) to listen on
OBS: descomentando e trocando 'localhost' por '*'
- Para modificar as regras de liberação, execute:
sudo vim /etc/postgresql/10/main/pg_hba.conf
Atualize as seguintes linhas conforme o exemplo a baixo:
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 0.0.0.0/0 md5
- reinicie o servico postgresql
sudo service postgresql restart
-
Para efetuar a liberação da porta 5432, adicione uma nova regra de entrada em sua instância no grupo de seguração utilizado
-
Para finalizar, acesse o postgresql remotamente e teste se está funcionando corretamente
- Inicie a instância no Console AWS e acesse o servidor pelo Termius
- Para realizar o update e o apgrade, execute:
sudo apt update
sudo apt upgrade
- Para instalar o MySQL, execute:
sudo apt install mysql-server-5.7
- Para realizar alguns ajustes na configuração e criar a nova senha, execute:
sudo mysql_secure_installation
- Para criar um super usuário no mysql, execute:
sudo mysql
GRANT ALL PRIVILEGES ON *.* TO 'ids'@'localhost' IDENTIFIED BY 'senhaescolhida';
- Para liberar o acesso remoto, execute:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Comente a linha do bind-address
- Para instalar o PHP e ativar seus diretórios, execute
sudo apt install php7.2 libapache2-mod-php7.2 php7.2-mysql php7.2-pgsql
sudo mkdir /var/log/php
sudo chown www-data /var/log/php
OBS: (www-data é usuário do apache)
- Crie um arquivo teste para verificar as funcionalidades.
sudo vim /var/www/html/ids.local/public_html/phpinfo.php
<?php
phpinfo();
?>
- Para instalar o phpmyadmin, execute
sudo apt install phpmyadmin
OBS: Selecione o servidor apache2 pois é o utilizado nesse cenário
- Inicie a instância no Console AWS e acesse o servidor pelo Termius
- Para realizar o update e o apgrade, execute:
sudo apt update
sudo apt upgrade
- Para ativar o módulo do usário logado, execute:
sudo a2enmod userdir
- Para atualizar a flag php_admin_flag engine Off, execute:
sudo /etc/apache2/mods-available/php7.2.conf
Comente a linha:
php_admin_flag engine Off
- Reinicie o apache
sudo service apache2 restart
- Para criar o diretório public_html, execute:
mkdir ~/public_html
- Para criar um template de pré configuração para todos os usuários, execute:
sudo mkdir /etc/skel/public_html
sudo chmod 0700 /etc/skel/public_html
OBS: Com isso os espaços pessoais “herdam” todas as potencialidades do site principal, ou seja, o utilizador tem ativado o suporte para php, as ligações seguras, acesso à base
de dados MySQL, etc.
-
O primeiro passo é criar uma conta no site do serviço gratuito no-ip https://www.noip.com
-
Após ter criado a conta, inicialize sua instância na AWS e pegue o IP para configurar o domínio no site
-
Feitas as configurações no site do serviço, agora é a hora de configurar o nosso servidor de modo a que ele envie seu novo IP para o no-ip a intervalos regulares, o que faz com que precisemos decorar somente o domínio que registramos, e não mais o IP. Isso facilita a configuração do Termius, por exemplo, não sendo mais necessário mudar o IP nele a cada vez que a instância é parada e iniciada novamente
-
Primeiramente vamos fazer o download do arquivo do cliente e descompactá-lo no nosso servidor
-
OBS: Para executar o comando make, que faz a compilação dos arquivos e gera o binário, são necessários dois pacotes que não estão instalados por padrão no Ubuntu (normalmente): o próprio make e o gcc.
sudo apt install make
sudo apt install gcc
cd /usr/local/src
wget https:www.noip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
make install
- Depois de feita a instalação, é necessário configurar o cliente no-ip, e isso é feito com o comando
/usr/local/bin/noip2 -C
-
Algumas perguntas serão feitas: e-mail cadastrado no site no-ip, senha, qual o tempo de atualização do IP (em minutos), se deseja salvar as alterações e qual o arquivo de configuração.
-
Feita a instalação e configuração, é hora de colocar o serviço para rodar. O comando por sua vez, executado no terminal, faz com o que o serviço passe a rodar, mas caso o servidor seja reinicializado, ele precisa ser rodado novamente.
/usr/local/bin/noip2
- Uma forma prática de automatizar a execução de um comando qualquer, é criando um arquivo chamado
rc.local
dentro do diretórioetc
e dar permissão de execussão para ele. Para fazer isso, execute os seguintes comandos
cd etc/
sudo vim rc.local
- Dentro desse arquivo adicione as seguintes linhas
#!/bin/bash
/usr/local/bin/noip2
- Para dar permissão de execução ao scritp digite
sudo chmod +x rc.local
- A partir deste momento, toda vez que o servidor for reiniciado, o arquivo
rc.local
será lido e o seu conteúdo interpretado, e o cliente noip voltará a ser executado automaticamente.
-
Apache Tomcat é um servidor web responsável por interpretar códigos java para web (arquivos .jsp). Com ele é possível portar toda versatilidade e capacidade do java server pages, criando paginas web dinâmicas e implementando sistemas de alta performance.
-
Inicialmente é necessário fazer a instalação do java. No Linux existe uma implementação opensourse do JDK e JRE.
sudo apt install default-jdk default-jre
- OBS: No comando será instalado a última versão do java, neste momento a versão 11, caso queira instalar a versão 8 utilize
sudo apt install openjdk-8-jdk openjdk-8-jre
- Crie um diretório para a instalação, nesse procedimento iremos usar um pacote, para ter acesso ao painel de gerenciamento
sudo mkdir /opt/tomcat
- Baixe o pacote mais atual, tar.gz do site Tomcat (https://tomcat.apache.org/download-90.cgi#9.0.37), e use junto ao comando, a seguir.
cd /tmp
curl -O https://downloads.apache.org/tomcat/tomcat9/v9.0.38/bin/apache-tomcat-9.0.38.tar.gz
cd /opt/tomcat
sudo tar xzvf /tmp/apache-tomcat-9.0.38.tar.gz -C /opt/tomcat --strip-components=1
- É importante para a segurança, ter um usuário especifico para usar o tomcat, por conta disso vamos criar um usuário especifico com os seguinte comandos
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R g+r conf
sudo chmod g+x conf
sudo chown -R tomcat webapps/ work/ temp/ logs/
- Vamos agora criar um novo arquivo único para executar o Tomcat como um serviço
sudo vim /etc/systemd/system/tomcat.service
- Nesse arquivo, adicione as informações conforme aqui indicado
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_Home=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS.awt.headless=true -Djava.security.egd=file:/dev/v/urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
- Em seguida, notifique o sistema que você criou um novo arquivo executando a seguinte linha de comando:
sudo systemctl daemon-reload
- Os seguintes comandos vão permitir que você execute o serviço Tomcat
sudo su
cd /opt/tomcat/bin
./startup.sh run
- Agora vamos adicionar um login no usuário Tomcat, para isso edite o arquivo tomcat-users.xml
sudo vim /opt/tomcat/conf/tomcat-users.xml
- Adicione as regras, dentro da tag
<role rolename="manager"/>
<role rolename="admin"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-xml"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<user username="admin" password="SuaSenha" roles="admin,admin-gui,manager,managergui,manager-status,manager-script,manager-xml,admin-script"/>
-
Agora vamos liberar o acesso a conexão remota ao Tomcat Manager. Para isso, crie ou edite o arquivo e cole o conteúdo a seguir
-
OBS: O campo “allow” define quais os endereços terão acesso à conexão remota ao Tomcat Manager. No exemplo abaixo, estão liberados todos os endereços. Para liberar o acesso somente a um endereço específico ou rede, substitua o conteúdo entre aspas pelo endereço desejado
sudo su
vim /opt/tomcat/conf/Catalina/localhost/manager.xml
<Context privileged="true" antiResourceLocking="false" docBase="$CATALINA_HOME/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
- Para liberar o acesso a role host-manager altere o seguinte arquivo e assim como no passo anterior, será necessário definir o campo allow
sudo su
vim /opt/tomcat/webapps/host-manager/META-INF/context.xml
// Cole ou somente altere código conforme necessário
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
- Vamos agora editar o arquivo, /etc/rc.local e inclua o caminho do startup.sh para realizar todo o processo de forma automatica
sudo vim /etc/rc.local
/opt/tomcat/bin/startup.sh
OBS: Não esqueça de liberar a porta padrão do Tomcat 8080 no servidor.
- CRISTIANE PASCHOALI DE OLIVEIRA VIDOVIX
- UBIRATAN ZAKAIB DO NASCIMENTO