Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
166 lines (106 sloc) 9.11 KB
layout title modified categories excerpt tags image date
post
Hospendando seu Blog Na AWS por Centavos
aws
cloud
blog
jekyll
feature
2015-02-12 09:00:00 -0200

###O Primeiro Post

A ideia deste primeiro post é começar a demonstrar como montei este blog, para que possa servir como um tutorial para quem quiser começar o seu próprio.

O processo pode ser dividido em 3 partes: criação, versionamento, e hospedagem. Creio que para os dois primeiros já existe bastante material, então resolvi escrever detalhadamente somente sobre a hospedagem que foi a parte que não encontrei muita coisa em português.

###Criação

Para criação do blog utilizei o gerador de sites estáticos Jekyll. O Jekyll é uma ferramenta que facilita a construção de sites estáticos como por exemplo blog. Seu objetivo é fazer com que o usuário se preocupe quase que exclusivamente com o texto, uma vez que ele já tenha criado seu template.

O Willian Justen escreveu um ótimo post demonstrando desde a instalação até a criação das páginas utilizando Jekyll.

###Versionamento

É muito importante que tenhamos um controle sobre as modificações do blog. Para isso utilizei Git + Github para fazer o versionamento dos arquivos. Além disso utilizar o Github possibilita que outras pessoas possam contribuir com o blog.

O Fernando Daciuk tem diversos posts sobre Git e Github no seu blog.

###Hospedagem

Para hospedagem vou demonstrar alguns serviços da AWS (Amazon Web Services). A AWS oferece uma enorme gama de serviços utilizando o paradigma de Cloud Computing. A principal característica destes serviços é o modelo pay-as-you-go, onde você só é cobrado pelo tempo que utilizar o serviço, sem contratos.

Irá ser necessário criar uma conta na AWS. Isso pode ser feito aqui. Ao criar a conta você poderá utilizar diversos serviços gratuitamente durante 1 ano. Com exceção do Route53, os demais serviços apresentados a seguir se enquadram no nível gratuito.

Os serviços que utilizei para hospedar o blog foram:

S3 Simple Storage Service - Armazenamento de arquivos estáticos

CloudFront - Serviço de entrega de conteúdo (CDN)

Route53 - Domínio e DNS

###Armazenando Seus Arquivos No S3 O Simple Storage Service, mais conhecido por S3 é o serviço de armazenamento de arquivos da AWS. É aqui que vamos colocar o conteúdo do blog. Qualquer questão relativa a backup dos arquivos é providenciada pela AWS. Você só precisa se preocupar em fazer o upload dos arquivos.

No console principal, selecione o S3:

console aws

Clique no botão Create Bucket. O bucket é o lugar onde irão ficar armazenados seus objetos no S3. Após, preencha o nome do bucket com o domínio do seu blog. Escolha a região US Standard pois é a mais barata e clique em Create.

Criando um bucket

Faça upload do conteúdo do seu blog dentro do bucket. Se você já leu o post sobre Jekyll faça upload do conteúdo da pasta _site.

Upload de arquivos no bucket

Selecione o bucket criado e vá na aba Properties e na opção Permissions. Clique no botão Edit bucket policy

Permissões do bucket

Adicione o seguinte código:

{% highlight json %} { "Version": "2008-10-17", "Statement": [ { "Sid": "Allow Public Access to All Objects", "Effect": "Allow", "Principal": { "AWS": "" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::www.meublog.com/" } ] } {% endhighlight %}

Agora no menu Static Web Hosting selecione a opção Enable website hosting e informe sua página inicial e a página de erro.

Ativando página estática no bucket

Ao ativar esta opção o S3 já lhe fornece uma URL para o seu bucket. Se você acessá-la já deverá visualizar a página inicial do seu blog.

URL Bucket S3

Mas não queremos está URL feia certo? Vamos trabalhar nisso então.

###Entregando o Conteúdo Do Seu Blog Rapidamente Com CloudFront

Ao criarmos o bucket no S3 selecionamos a região US Standard. Isso significa que nossos arquivos estão sendo hospedados nos Estados Unidos. Sempre que um leitor de seu blog acessá-lo de fora dos EUA ele vai ter um tempo de carregamento da página maior, em virtude da latência.

Mas como podemos entregar o conteúdo do nosso blog de forma otimizada para qualquer lugar do mundo? É neste ponto que entra o CloudFront. Este serviço funciona como um CDN - Content Delivery Network. Ele se encarrega de armazenar uma cópia de seus arquivos em diversos lugares do mundo.

Assim se alguém acessar o seu blog do Brasil, os arquivos serão recuperados dos servidores da AWS localizados no Brasil, reduzindo a latência e entregando uma melhor experiência para o leitor.

O primeiro passo para termos estas vantagens em nosso blog é selecionar a opção CloudFront no console principal, clicar em Create Distribution e selecionar a opção Web. Em Origin Domain Name selecione o bucket criado no S3. As demais opções não precisam ser alteradas.

Criando distribuição no CloudFront

No campo Alternate Domain Names coloque o domínio do seu blog das duas formas que são mostradas na imagem. Também adicione o objeto raiz da sua distribuição, que será o mesmo que você selecionou no S3, nesse caso o index.html. As demais opções podem permanecer com os valores padrão.

Criando distribuição no CloudFront

Agora se irmos no menu lateral Distributions e selecionarmos a distribuição recém criada, poderemos verificar que ela tem um Domain Name. Essa url irá devolver também a página inicial do blog, mas agora utilizando o serviço CloudFront. Mas ainda temos uma URL pouco amigável. Chegou a hora de comprarmos nosso próprio domínio.

###Obtendo Uma URL Amigável Com Route53

Agora que já temos nossos arquivos hospedados e sendo entregues da melhor forma possível, precisamos ter uma URL amigável para que nosso blog seja encontrado facilmente pelos leitores. O primeiro passo é adquirir um domínio, que será o endereço de seu blog na web. Selecione o Route53 no console principal, Registered Domains, Register Domain. Escolha o nome do seu domínio e a extensão final da URL. Domínios .com custam $12, mas não se assuste com esse valor ele é anual.

Registrando um domínio no Route53

Clicando no botão check o sistema irá verificar se o domínio escolhido está disponível. Se positivo clique em continue até finalizar a compra.

Agora que temos nosso domínio precisamos fazer as configurações de DNS para quando o leitor digitar o endereço do nosso blog ele seja redirecionado para a nossa distribuição do CloudFront.

Ainda no Route53 clique na opção Hosted Zones, e depois em Create Hosted Zone. Em Domain Name coloque o endereço do seu blog e clique em Create.

Hosted Zone no Route53

Com a Hosted Zone selecionada clique em Go to Record Sets. Clique em Create Record Set. Marque a opção Alias como Yes, e selecione sua distribuição do CloudFront no campo Alias Target.

Records Sets no Route53

Faça o mesmo procedimento novamente, mas agora preenchendo o campo Name com www. Seus Records Sets devem estar parecidos com estes.

Records Sets no Route53

###Pronto

Agora basta esperar a propagação do DNS, que pode levar até 24 horas e depois começar a escrever em seu blog. Mesmo após passar o período do free trial da AWS o custo de hospedagem do blog será muito baixo. Tirando o domínio que tem um custo um pouco mais elevado, você irá gastar menos de $1 por mês.

Se interessou pelos serviços da AWS? Fique atento que virão mais posts sobre o assunto em breve. Até mais.