Criando o Servidor de Origem com o EC2 da AWS

Se você desenvolveu ou tem um Website e agora precisa fazer a distribuição desse site, colocar ele no ar digamos assim. Começa aqui uma série de Posts que ajudarão você a configurar um servidor na Amazon para fazer isso.

Nessa sequência de postagens, vamos discorrer sobre a criação, configuração e disponibilização de um Servidor de Origem onde vão estar de fato os arquivos do nosso site, distribuição do site mais localmente aos usuários, de forma a garantir boa performance para acessos de qualquer lugar do mundo, registro e configuração de um domínio customizado e amigável ao usuário, comunicação segura via https entre cliente e servidor e veiculação do conteúdo do nosso site em um endereço único.

O local onde vamos montar toda a estrutura para rodar o nosso site é a plataforma de Computação em nuvem da Amazon, chamada Amazon Web Services. Também conhecida como AWS.

Você precisa ter uma conta na AWS para que possa utilizar os serviços dessa plataforma e, na criação dessa conta, precisa informar um cartão de crédito válido. Mas fique tranquilo! A boa notícia é que a Amazon oferece uma faixa de serviços gratuitamente por doze meses, e a maior parte dos serviços que iremos utilizar para criação dessa estrutura, está inclusa nessa faixa gratuita.

Só para você ter uma ideia de custos, estou experimentando esse período gratuito e tenho um site rodando em uma estrutura igual a que vou te ajudar a montar na AWS. Estou tendo um custo de aproximadamente 1 dólar por mês.

Bom, a nossa tarefa nesse primeiro artigo, vai ser criar um Servidor de Origem utilizando o EC2. É nesse Servidor de Origem que vão estar os arquivos do nosso site.

Podemos localizar a plataforma fazendo uma busca por aws no Google. Mas se você quiser pular essa etapa, é só clicar aqui.

Resultado de pesquisa por AWS no Google.

Na página inicial da plataforma, você encontra os botões para criação da conta ou login. Eu já tenho uma conta, então vou passar o mouse sobre o link Minha conta e clicar em Console de Gerenciamento da AWS. Também posso clicar diretamente em Faça login no console.

Página inicial do Console da AWS.

Após o login, devemos ser redirecionados para a área com os serviços da AWS no Console de Gerenciamento.

Elastic Compute Cloud - EC2

O serviço que vamos utilizar nessa primeira etapa é o EC2 que são Servidores Virtuais na Nuvem. O EC2 está na categoria de Infraestrutura como um serviço - IaaS. E a grosso modo é aluguel de poder computacional elástico, justamente dando a possibilidade de controlarmos a potência (power) de acordo com a demanda. Ele é a primeira opção na seção Computação e também pode ser localizado através da consulta.

Home, serviços e Zonas de Disponibilidade AWS.

Clique sobre o nome do serviço para ser levado até sua página inicial.

Página inicial do Amazon Elastic Compute Cloud - EC2.

Simular Configuração dos Recursos

Quando fazemos a configuração de um servidor, é razoável considerar que ele fique rodando a longo prazo. Temos, no canto superior direito do console, as diversas regiões onde a Amazon possui seus Datacenters. Se o interesse for manter este servidor rodando para além do período gratuito de 12 meses que a Amazon oferece, precisamos prestar atenção na região que formos escolher, porque o custo por hora desse servidor rodando, após o período gratuito, pode variar um pouco, dependendo da região que escolhermos colocar esse servidor.

Dentre as regiões, a mais barata é a do Norte da Virgínia, por isso ela já vem selecionada por padrão. Mas podemos acessar a documentação da Amazon clicando em Pricing localizado na seção Additional Information e, na página para onde fomos levados, na parte em que explica sobre instâncias sob demanda, clicar em Consulte a definição de preço de instâncias sob demanda. Nessa página da documentação, podemos fazer uma simulação escolhendo os recursos que pretendemos utilizar, e a Amazon nos retorna o custo que vamos ter para as configurações selecionadas após o período gratuito.

Seção Informações Adicionais do EC2. Documentação de Instâncias Sob demanda do EC2.

Vou analisar o custo para uma instância t2micro, porque ela é elegível para o período gratuito e atende às necessidades do nosso projeto. O sistema operacional que essa máquina vai comportar será uma distribuição Linux e essa máquina vai estar hospedada na região Norte da Virgínia.

O custo por hora depois do período gratuito de colocarmos o servidor no Norte da Virgínia é de $0.0116 Dólares, vezes 720 que é a quantidade aproximada de horas que tem um mês, resulta em 8.35 dólares/mês. Fazendo isso vezes 4.1, cotação do Dólar hoje, temos um custo de 34.24 Reais para um mês.

Mas, a maior parte dos usuários que vão acessar nosso site, pelo menos por enquanto, é aqui do Brasil. Então vamos ver qual é o custo por hora de colocarmos esse servidor aqui em São Paulo. O custo em Dólar por hora será de 0.0186 vezes a quantidade de horas aproximadas de um mês que é 720 será igual a 13.39 Dólares, multiplicado pela cotação do Dólar hoje (4.1) temos um custo de R$54.91 Reais.

Dessa forma, é mais interessante hospedar nosso site em um servidor configurado e rodando no Norte da Virgínia. Depois de escolhermos a região, clicamos no botão Launch Instance pra subir essa instância.

Escolhendo a Imagem da Instância do Servidor

Definida a região, a primeira etapa é escolher a imagem do sistema operacional que pretendemos utilizar para essa instância do servidor.

Existem várias aqui, algumas são gratuitas, outras não. Eu vou escolher a do Ubuntu Server que é da comunidade e não precisaremos pagar para utilizar no periodo gratuito.

Escolha de Imagem para a Instância do EC2.

Tipo da Instância

Já vem selecionada por padrão a máquina t2micro que comentamos anteriormente. Vamos mantê-la.

Escolhendo o tipo da instância do EC2.

Detalhes da Instância

Na terceira etapa, precisamos especificar quantos servidores queremos subir nessa região do Norte da Virgínia. Vamos precisar de um servidor somente, então mantemos o número 1 em Number of Instances.

Em cada região, a Amazon possui diversos Data Centers. Então, em Subnet, especificamos em qual dessas localidades queremos hospedar nosso servidor na região selecionada. Podemos escolher qualquer uma dessas zonas de disponibilidade que não faz muita diferença. Mas precisamos escolher uma para que a Amazon nos entregue um endereço IP.

Escolher detalhes da instância do EC2, como quantidade e Data Center.

Habilitar entrega de IP público

Este servidor vai ter o nosso site, e desejamos que todos os usuários da internet possam acessá-lo. Então precisamos tornar o acesso de leitura a ele público. Para isso, precisamos pedir a Amazon que entregue um endereço de IP público. Fazemos isso, selecionando Enable em Auto-assig Public-IP.

Habilitar entrega de endereço de IP público em instância EC2.

Uma vez feita essas configurações, podemos clicar novamente em Next.

Anexando Volume à Instância

Nessa fase, temos a opção do volume que vai ser anexado a essa máquina t2micro. Se quisermos um volume com maior capacidade podemos mudar esse valor também. Mas 8GB atende com sobra a nossa necessidade aqui.

Anexando Volume à instância do EC2.

Adicionar Tags à Instância

Na etapa 5, temos a opção de adicionar Tags para identificar os servidores, útil se começarmos a ter mais deles. Por enquanto vamos ter somente um servidor, então não vamos utilizar esse recurso no momento.

Marcando instância EC2 com Tag.

Regras de Segurança

A etapa 6 é bem importante. Todas essas máquinas que configuramos na Amazon, têm que ter algum critério de segurança. A Amazon implementa isso através dos chamados Security Groups ou Grupos de Segurança. Então vamos marcar a flag Create new security group e dar um nome para esse nosso grupo. Vou colocar aqui SG-EC2 (Security Group do EC2).

Abertura de Portas no Servidor

Repare abaixo que a Amazon já libera por padrão a porta 22, que é utilizada pelo protocolo de comunicação SSH. Assim podemos posteriormente acessar o servidor através dessa porta para fazer as configurações e enviar os arquivos do nosso site. Veja em Source (fonte) o valor 0.0.0.0/0 que permite o acesso a qualquer IP. É claro que você acessa se tiver o par de chaves do Grupo de Segurança que definiremos nos próximos passos.

Habilitando Grupo de Segurança para instância EC2.

Para que o público possa ter acesso de leitura ao conteúdo do nosso site, precisamos abrir a porta 80, onde acontece a comunicação via protocolo HTTP.

Para isso, vamos clicar em Add Rule, selecionar o protocolo HTTP, deixar os valores de Porta e Fonte padrão e clicar em Review and Launch.

Abrir porta 80, por onde acontece a comunicação via protocolo http.

Revisando as Configurações

Recebemos uma tela para justamente fazer a última revisão. Estamos utilizando aqui a imagem do Ubuntu Server, habilitamos o Grupo de Segurança, liberamos a porta 22 para podermos acessar remotamente esse servidor via SSH com o objetivo de depois fazermos as configurações e enviarmos nossos arquivos do site para ele e estamos liberando a porta 80 que é utilizada pelo protocolo HTTP para que as pessoas possam visualizar nosso conteúdo. Aparentemente está tudo ok, então vou clicar no botão Launch para finalmente startar a nossa instância do servidor.

Chave para Acesso ao Servidor

Antes de subir esse servidor, a Amazon sabe que vamos precisar posteriormente de uma chave de identificação para que possamos acessar esse servidor via SSH para fazermos as devidas configurações e enviar os arquivos.

Eu não tenho ainda nenhum Par de Chaves, então vou escolher Create a new Key pair e nomear o par como sendo chave-servidor-dev-content. Faço o Download, e é importante não perder essa chave, porque vamos precisar dela toda vez que quisermos acessar o servidor via SSH.

Criando Par de Chaves para Grupo de Segurança da instância EC2.

Subindo a Instância do Servidor

Agora sim está tudo ok, então clicamos em Launch Instance para de fato iniciar essa instância do servidor.

Nesse momento, de fato, a instância está sendo inicializada.

Status de Inicializando em instância EC2.

Se clicarmos em View Instances, no canto inferior direito, vemos a nossa instância já rodando.

Instância EC2 rodando.
Ir para o topo