seu site no aws

18
(2+2) Como e quanto custa colocar seu site no AWS S3 Victor Hugo de Oliveira 29/07/2014 Cloud Computing - AWS Nós utilizamos diversos serviços da AWS (Amazon Web Services), e não é apenas para nossos clientes, pelo contrário. Começamos usando dentro da Concrete para acelerar a disponibilidade dos ambientes de desenvolvimento e QA, e depois disso, começamos a utilizar para nossa própria infraestrutura. Nossa parceria e prestação de serviços e revenda dos serviços da Amazon são consequências. Dentre os serviços que usamos estão o próprio domínio da Concrete Solutions e este blog. Ambos rodando em cima de máquinas no EC2. Tínhamos também, na mesma estrutura EC2 em Apache, a Landing Page sobre nossos serviços AWS (http://aws.concretesolutions.com.br). Mesmo sendo um gasto pequeno, nossas conversas internas sempre Buscar Newsletter da CS Assine a Newsletter quinzenal da Concrete Email Subscribe Categorias: Cloud Computing – AWS (38) Desenvolvimento Web (166) DevOps (5) E-Commerce (2) Empreendedorismo e Negócios (131) Institucional (52) Metodologias ágeis (41) Mobile (104) QA (8) (2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s... 1 de 18 05-08-2015 18:25

description

seu site no aws

Transcript of seu site no aws

Page 1: seu site no aws

(2+2) Como e quanto custacolocar seu site no AWS S3

Victor Hugo de Oliveira 29/07/2014

Cloud Computing - AWS

Nós utilizamos diversos serviços da AWS (AmazonWeb Services), e não é apenas para nossos clientes,pelo contrário. Começamos usando dentro daConcrete para acelerar a disponibilidade dosambientes de desenvolvimento e QA, e depois disso,começamos a utilizar para nossa própriainfraestrutura.Nossa parceria e prestação de serviços e revenda dosserviços da Amazon são consequências.

Dentre os serviços que usamos estão o própriodomínio da Concrete Solutions e este blog. Ambosrodando em cima de máquinas no EC2.

Tínhamos também, na mesma estrutura EC2 emApache, a Landing Page sobre nossos serviços AWS(http://aws.concretesolutions.com.br). Mesmo sendoum gasto pequeno, nossas conversas internas sempre

Buscar

Newsletter da CSAssine a Newsletter quinzenalda Concrete

Email

Subscribe

Categorias:Cloud Computing – AWS (38)

Desenvolvimento Web (166)

DevOps (5)

E-Commerce (2)

Empreendedorismo e Negócios(131)

Institucional (52)

Metodologias ágeis (41)

Mobile (104)

QA (8)

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

1 de 18 05-08-2015 18:25

Page 2: seu site no aws

trazem oportunidade para evoluir, e nos pareceudesperdício ter um servidor para páginas que sãoessencialmente estáticas.

O site da Concrete Solutions foi parar no GitHub. Ohosting do GitHub para projetos públicos é gratuito,e nem precisa ser totalmente estático uma vez quevocê pode usar Jekyll nas suas páginas.

Agora vamos deixar o GitHub para outro dia. Oassunto é o hosting do S3.

Achamos que seria muito apropriado colocar nossalanding page sobre AWS na própria Amazon e,sendo possível, foi isso mesmo que fizemos.Movemos a página para o S3. Veja como fizemosabaixo.

Passo a passoO primeiro passo é criar um Bucket no S3.Acesse o console do S3 e clique em Create a Bucket.Crie o Bucket com o nome do domínio que você vaiusar. No nosso caso, colocamosaws.concretesolutions.com.br.

Há um motivo duplo para colocar o nome do bucketigual ao do seu site. O primeiro tem relação com o

UX (6)

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

2 de 18 05-08-2015 18:25

Page 3: seu site no aws

suporte a CNAME do S3, e o segundo com autilização do CloudFront para a entrega do site.

Em ambos os casos, as regras de nome são maisrestritivas que as regras para nomear Buckets.Então, fique atento a isso.

É interessante deixar o log habilitado. Asinformações de acesso, por exemplo, somenteficarão acessíveis dessa forma.

Tendo criado o Bucket, precisamos habilitar ohosting. De dentro do console do S3, selecione aspropriedades do seu novo Bucket criado e habiliteo Website Hosting.

Nós marcamos o arquivo da home do site para sero index.html, e no nosso caso, não há arquivopara erros customizado.Então, se você acessar um arquivo que não existeno nosso site, verá a tela de erro 403 (forbidden)padrão do S3. Por exemplo,

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

3 de 18 05-08-2015 18:25

Page 4: seu site no aws

acessando: http://aws.concretesolutions.com.br/essearquivonaoexiste.html.

O próximo passo é fazer o upload dos seusarquivos estáticos para o site.

Com o site habilitado, e antes de fazer amudança do nosso domínio nos servidores deDNS, já podemos testar.Nas propriedades do Bucket existe um endpointque deixa o seu site acessível sem um domíniocustomizado.

Agora só falta uma coisinha para subir: o sitetem um formulário em PHP que envia um emailpara nós. Ou seja, não é estático! E agora ?

SDK Javascript e SNSFelizmente, para nós há uma grande variedadede serviços, e há como contornar muitas dasnecessidades de páginas dinâmicas no nossosite. Mandar um e-mail de contato em um

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

4 de 18 05-08-2015 18:25

Page 5: seu site no aws

formulário não deveria ser complicado.

Uma forma de resolver a questão é utilizar oSNS para nos mandar um email e o SDKJavascript para fazer a comunicação entre obrowser do cliente e o SNS.

Configurando o SNSAcessando o console do SNS, o primeiro passoé criar um novo Tópico.

O site vai enviar mensagens para este tópico,então precisamos subscrever a este tópico dealguma forma.O jeito mais simples é subscrever com umaconta de e-mail.

Não se esqueça de confirmar a subscrição nacaixa de entrada do seu e-mail.Depois disso, faça um teste publicando umamensagem para esse tópico.

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

5 de 18 05-08-2015 18:25

Page 6: seu site no aws

Javascript SDKUma vez configurado o tópico, podemoscolocar no site nosso javascript para enviarmensagens. O javascript vai fazer com que obrowser do cliente envie mensagens para otópico que criamos. Assim conseguimosmandar um e-mail de contato usando umsite totalmente estático.O uso do javascript é bem fácil.Comece por incluir na página em que vocêquer usar o SDK o seguinte script.<script src="https://sdk.amazonaws.com

/js/aws-sdk-2.0.9.min.js"></script>

O passo seguinte é colocar suas credenciaisde acesso.É claro que você não quer que todo mundopossa usar a sua conta, então, o jeito maisfácil é criar um usuário para isso, comcredenciais de segurança apenas comdireito para publicar no tópico específico já

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

6 de 18 05-08-2015 18:25

Page 7: seu site no aws

criado.Crie no console do IAM um usuário,gerando credenciais de acesso noprocesso de criação.No item de segurança, escolha apenas oacesso ao SNS com a função Publish, e noARN coloque os dados do tópico que vocêcriou anteriormente.

Ou seja, a única funcionalidade que estascredenciais dão acesso é a de envio demensagem para o tópico que você criou.Assim, ficamos tranquilos de incluir estascredenciais nos arquivos estáticos do site.Afinal, eles não têm grande utilidade alémde mandar uma mensagem de e-mail.

A seguir, disponibilizamos estascredenciais para o javascript.

Agora ficou fácil, é só pegar os valoresdesejados e montar a mensagem!

12345

<script type="text/javascript">AWS.config.update({accessKeyId: 'IDdoAcce

, secretAccessKey: 'AccessKeyDoUsuarioAWS.config.region = 'us-east-1';

</script>

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

7 de 18 05-08-2015 18:25

Page 8: seu site no aws

Veja aqui outros exemplos de como usaro SDK no Browser.

Agora que resolvemos a parte“dinâmica” do site e atualizamos osarquivos no S3, estamos prontos paraapontar o domínio para nosso resultadofinal.

Route 53, why not ?Agora só falta configurar nosso domíniono Route 53 para apontar para o novosite.

CloudfrontPara garantir uma latência ainda menor,nada melhor que habilitar o Cloudfrontpara o site.Acesse o console do Cloudfront e crieuma nova distribuição.

No nosso caso, vamos fazer umadistribuição Web. A outra opção RTMP

123456

var sns = new AWS.SNS({params: {TopicArn: 'Asns.publish({Message: str_var_da_mensagem}, if (!err) {

console.log('Message published');alert('Biutiful');

});

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

8 de 18 05-08-2015 18:25

Page 9: seu site no aws

vai te ajudar em casos de streamingpara Adobe Flash, utilizando esteprotocolo.

A próxima parece complicada, masnão é.

Fique atento para não criar umadistribuição do seu bucket, e sim doseu site. O autocomplete vai teapresentar o endereço do Bucket,cuidado. Para isso, coloque noDomain Name o Endpoint que vimosacima, o endpoint da opção de StaticWebsite Hosting. E é só.A sua preocupação maior ao usar oCloudfront vai ser na verdade ainvalidação de cache quando vocêmudar o seu site. Dúvidas sobre oCloundfront ? Se houver algumainsegurança no uso, você pode deixarsem no início e ligar o serviço depois.

Isso é caro ?

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

9 de 18 05-08-2015 18:25

Page 10: seu site no aws

É na verdade uma das soluções maisbaratas que você pode ter para umsite estático.Ainda mais considerando aescalabilidade, latência edurabilidade disponível.

A qualidade final é muito grandepelo preço pago. Não precisaacreditar em mim. Vamos olhar paracada serviço:

S3

A precificação do S3 leva em conta aregião. Regiões diferentes tempreços diferentes. No caso destesite, pagamos $0,03/Gb. Há aindaum valor gratuito para os primeiros5Gb. Ou seja, para este site ostorage é gratuito.

Pagamos também pelos requests.Para os requests de administração(PUT, COPY, POST, or LIST Requests)a cobrança é de $0,005/1000pedidos. Também nos encaixamosno free tier de 2.000 requests/mês.Para os requests de GET os preçossão de $0,004/10.000 pedidos, e afaixa gratuita de 20.000 requests.Duvido que nos custe mais quealguns centavos/mês para estalanding page.

O terceiro critério de cobrança para

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

10 de 18 05-08-2015 18:25

Page 11: seu site no aws

o S3 é a tranferência de dados.Como o Cloudfront vai seencarregar da maior parte datransferência, nosso eventualcusto deve ficar lá, e não aqui noS3. De qualquer forma, o custo detranferência para o Cloudfront éde $0,02/GB. E para a Internet, ocusto de tranferência fica em$0,12/GB (o 1o Gb é gratuito).Na prática, com o Cloudfrontconfigurado, nosso custo em S3deve ficar menor que $0,10/mês.

SNS

A precificação do SNS vaidepender muito de quais são assubscrições do seu canal.

O custo do 1o milhão depublicações é 0. A partir daí ocusto é de $0.50/milhão depublicações. No nosso caso, aspublicações vão custar pelomenos $0.50 centavos#soquenao, e também ficagratuito.

Para a entrega o custo será de$0.50/milhão para Push Mobile.Para SMS o custo é de$0.75/centena.No caso de email/email-JSON são$2,00/100.000 envios. A faixagratuita é de 1.000 emails.

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

11 de 18 05-08-2015 18:25

Page 12: seu site no aws

Ainda há envios via http ou parao serviço SQS.Talvez seja o mais caro do nossonovo site, mas $2.00/mês aindaestão valendo.

Há também o custo detransferência de dados damensagem, e que no nossocaso, certamente fica na quotagratuita de 1Gb/mês.

Route 53

O serviço do Route 53

vai nos cobrar $0.50/mês porcada hosted zone. As queriesALIAS para o Cloudfront e parabuckets são gratuitas. As outrasqueries, dependendo do tipo,custam $0.50/milhão ou$0.75/milhão. Não vou entrarem detalhes sobre ofuncionamento do DNS em si,mas na prática não vamos tertantos request para o DNS dosite.

Cloudfront

Agora sim, o cara que vai nosdar o prejuízo. O Cloudfront éque vai fazer a maior parte dotrabalho e efetivamente servir o

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

12 de 18 05-08-2015 18:25

Page 13: seu site no aws

site estático para os clientes.Lembrando que, tipicamentena AWS, pagamos pelos dadosque saem da infra Amazon, enão pelos que entram.No caso do Cloudfront,pagamos pelos dados quesaem do S3 para cada CDN, edos dados que saem dos CDNpara os browsers dos clientes.De qualquer forma, com CDNsno Rio de Janeiro e em SãoPaulo, a latência do nosso sitecertamente será baixa paraclientes aqui no Brasil.

A taxa de transferência doBrasil é a mais cara, masmesmo assim, estamosfalando de $0,25 para 10TB detransferência. Ok, é mais queo dobro dos $0,12 nos EUA,mas mesmo assim, acho quecom uma moeda/mêspagamos essa.

Vamos também pagar pelosrequests http e https, são$0,016 e $0,022 por 10.000pedidos respectivamente.Também nada que chamemuito a atenção.

Somando tudo

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

13 de 18 05-08-2015 18:25

Page 14: seu site no aws

Temos uns centavos aqui,outros ali, mas quanto vaicustar tudo ?Para isso, podemos usar acalculadora AWS e somartodos os valores com o usoque vamos ter.

Veja a calculadora quefizemos para a nossalanding pagehttp://aws.concretesolutions.com.br.Com a estimativa de gastarno total $1,77/mêsseguimos em frente. E agoranossa landing page éservida pela infraestruturaAWS.

Dúvidas? Só deixar aqui noscomentários! Até a próxima.

Confira Também:Como plugar a AmazonAWS em grandesinfraestruturas

1.

(2+2) Computação maisbarata, um guia rápidode precificação AWSEC2

2.

Como gerar umrelatório de preços deinstâncias AWS usandoRuby

3.

Plugar o memcachedcom WordPress

4.

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

14 de 18 05-08-2015 18:25

Page 15: seu site no aws

TweetTweet 12 1

usando AWS

Did you like this article? Share

it with your friends!

WrittenbyVictorHugodeOliveira

EmpresárioeEngenheirodeComputação,Sócio-fundadordaConcreteSolutions,ConselheirodaFFReal,TrainerpelaScrum.org,

2+2 Amazon AWS

como faz how to

precificação princing

S3

9LikeLike

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

15 de 18 05-08-2015 18:25

Page 16: seu site no aws

ProgramadoremlinguagensLALR,ouoquehouverparaodia

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

16 de 18 05-08-2015 18:25

Page 17: seu site no aws

`

Comments Community

Login1

Sort by Best

Join the discussion…

• Reply •

Victor HugoOliveira• 6 months ago

Oi Thiago, foi o que

citei na seção

Cloudfront, mas não

detalhei acima de

10TB para simplificar

a explicação. O link

para o pricing

completo é o primeiro

link da seção.

Uma correção que

vale a pena citar é

que o preço das

transferência do S3

que mudou em

01/12/2014.

https://aws.amazon.com

/blogs/a...

Além de reduzir de

$0,12 por Gb para

$0,09 por Gb eles

transformaram a

transferência do S3

para o Cloudfront em

gratuita. Essa foi boa!

Recommend

Share ›

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

17 de 18 05-08-2015 18:25

Page 18: seu site no aws

© 2015 Blog da Concrete Powered by Pinboard Theme by One Designs andWordPress

(2+2) Como e quanto custa colocar seu site no A... http://blog.concretesolutions.com.br/2014/07/22-s...

18 de 18 05-08-2015 18:25