quarta-feira, 14 de agosto de 2013

AWS Summit 2013

Seguindo o post sobre Cloud Computing, fiz uma apresentação das palestras assisitidas no AWS Summit 2013 em São Paulo.



segunda-feira, 5 de agosto de 2013

Cloud Computing: Criar um site estático na AWS (Amazon)

Uma das facilidades de hoje em dia é você poder ter quantas máquinas quiser, sem realmente precisar comprar uma.

A nuvem te proporciona isso, a chamada cloud computing.

Cloud Computing



Não vou explicar o conceito de Cloud Computing aqui, mas imagine você precisar testar uma aplicação em um servidor de uma OS específica, de uma versão específica, em uma máquina física específica. Teoricamente você teria que comprar uma máquina, certo? Com a "nuvem", isso não será necessário. Utilizando a Amazon (AWS) por exemplo, você pode ter a máquina, testar e depois descartá-lo.

Existe alguns tipos de serviço na nuvem:

IaaS - Infrastructure as a Service: quando se utiliza uma percentagem de um servidor, geralmente com configuração que se adeque à sua necessidade.
PaaS - Plataform as a Service: utilizando-se apenas uma plataforma como um banco de dados, um web-service, etc. (p.ex.: Windows Azure).
SaaS - Software as a Service: uso de um software em regime de utilização web (p.ex.: Google Docs , Microsoft SharePoint Online).

AWS (Amazon Web Service)



A AWS (http://aws.amazon.com/) é uma das mais completas plataformas para se beneficiar da Nuvem. 

Dentro dela existe vários serviços como:
  • Amazon Simple Storage Service (S3)
  • Amazon CloudFront 
  • Amazon SimpleDB
  • Amazon CloudWatch
  • Amazon Virtual Private Cloud (VPC)
  • Amazon DynamoDB
  • Amazon Elastic Compute Cloud (EC2)
  • Amazon Elastic MapReduce
  • e muitas e muitas outras....
Não vou explicar cada uma delas, pois além de serem muitas, a Amazon lança serviços frequentemente. Alguns serviço vou explicar abaixo ao criar um site estático.

Para ajudar mais ainda, ao cadastrar na AWS, você ganha vários serviços de graça. Dá uma olhada em:


Criar um site estático na AWS

Para criar um site estático na AWS, é preciso enteder alguns serviços:
  • Amazon Simple Storage Service (S3) - Esse é um serviço de armazenamento. Ou seja aqui é que vamos armazenar todos os arquivos estáticos, como o css, js, imagens, etc.
  • Amazon CloudFront - É um serviço web para distribuição de conteúdo. Os arquivos são entregues aos usuários finais usando uma rede global de pontos de presença.

S3



O primeiro passo é entrar no serviço S3 através da console:













1) Crie um bucket no S3 para seus logs
Buket-name: meuprojeto-log (nome do diretório onde vão estar os logs)
Region: São Paulo
Clique em Create e não em Set Up Logging






2) Crie outro bucket no S3
Buket-name: meuprojeto (nome do diretório do seu projeto, do seu site estático)
Region: São Paulo
Clique em: Set Up Logging

Ative o: Enabled
Target Bucket: Referencie ao bucket criado no passo 1
Target Prefix: s3_meuprojeto (ou um prefixo da sua preferência para indentificá-lo)



Não é necessario mudar as configurações dos bucket (permissões) nesse momento se for usar o cloud front.

3) Coloque os arquivos estáticos (html, js, css, imagens, etc) no diretório criado no passo 2

Cloud Front

Entre no serviço Cloud Front


5) Clique em Create Distribution


- Escolha: Download



- Origin Domain Name: referencie o bucket criado (meuprojeto do passo 2), ou se for referenciar fora utilize o dominio de origem (meuprojeto.com.br)
- Origin ID: um nome
- Viewer Protocol Policy: HTTP e HTTPS
- Object Caching: Ao ativar o “Customize” abrirá o campo “minimum TTL”
- Minimum TTL: Coloque em segundos (tempo de cache)
- Forward Cookies: None (imporoves caching) - já que serão objetos estáticos
- Forward Query Strings: No (improves caching)
- Restrict Viewer Access (Use Signed URLs) - nesse local coloque Yes para que os usuário apenas acessem o Cloud Front, e nunca pelo S3 (irá mudar as permissões do S3, que comentei no item 2)
- Trusted Signers: self
- Price Class: Use All Edge Location
- Alternate Domain Names(CNAMEs): Aqui coloque o dominio do seu projeto meuprojeto.com.br - dominio que o usuario irá digitar
- SSL Certificate: default cloud certificate
- Default Root Object: não preencha
- Logging: on (aqui irá habilitar todos os logs de usuários que visitaram a página)
- Bucket for Logs: Referencie o buket criado acima (ex: meuprojeto-log, criado no item 1)
- Log Prefix: cf_meuprojeto (ou qualquer outro prefixo para identificá-los)
- Cookie Logging: off
- Comment: apenas se quiser escrever algo para lembrar



6) Pronto! Agora é só esperar o serviço ir pro ar e testar. Normalmente demora entre 5 a 10 minutos!