Fork me on GitHub
Você esta em:Home » Destaque » O lado oculto do EC2 – Ephemeral Storage

O lado oculto do EC2 – Ephemeral Storage

ephemeral-storage-ec2De quanto espaço em HD você precisa? Quer pagar quanto???

Bem de quanto de espaço em HD você precisa no EC2? Bem em meus teste procurei otimizar ao máximo os custos do AWS, dai então minhas instancias possuem somente 10gb de espaço de disco.

Descobri com a prática(Pois não sou sysadmin sou desenvolvedor com foco na melhor performance de uso do Magento) que se paga mais por HD maiores no AWS, ou seja, uma instancia média(medium) com 8gb custa em torno de uns 60USD/mensal, já uma instancia também medium com 15gb de hd custa em torno de uns 100USD/mensal. Preço legal para pequenas empresas que usam particularmente o Magento.

Pois sem sombras de dúvidas o Magento fica FODA!!! Com as tecnologias e configurações adequadas, tais como: Nginx, Varnish, Memcached, FPM, APC, Percona, Sphinx,…

Um simples teste que posso apresentar do Magento com o sample data, utilizando essas tecnologias(Nginx, Varnish, Memcached, FPM, APC, Percona, Sphinx,…) e o AWS na instancia Médium acima seria esse nível:

print-webpageteste

print-webpageteste2

Ou seja, First Byte de 0.061s e o Load Time de 1.373s no primeiro view e no segundo apenas 0.868s, ou seja, menos de 1 segundo para carregar o Magento!

PS: Nota-se que o fator de maior destaque para os analistas não é o Load Time que pode ser influenciado por sua conexão com a internet, mas sim o First byte que como pode ser visto ficou pica das galáxias! com menos de 10 milésimo de segundos, com 0.061s!

O link desse teste pode ser visitado por aqui: http://www.webpagetest.org/result/130529_YX_6PX/

Apesar desse espaço ser ótimo para pequenas empresas, ele é pouco para empresa médias! Um cliente que usa a mesma configuração acima porém com 100GB de HD, paga aproximadamente 250USD/mensal. Ou seja, muito caro né? Na verdade não muito comparado com a qualidade, mas já que podemos otimizar custos, vamos lá!

PS: Você pode conferir os espaços reservados para cada instancia visitando o link: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#using-instance-storage ou a tabela abaixo:

print03
Então já que consultando a documentação da instancias EC2 vemos que existem valores de espaço em HD pré definidos para cada instancia. Por exemplo uma instancia média(medium) possui 410GB de HD reservados, e se estamos usando 10gb ainda teria 400GB livres correto?Ou seja, a instancia Small possui um HD com 160GB, já a instancia M1 Extra Large possui 4 HDs com 420GB cada!

Se a instancia medium possui 410GB de HD reservados, porque existe a diferença de um cliente que usa 8gb para o que usa 100gb? E o que usa 100GB já esta pagando quase 500reais mês! Imagina se jogar para 400GB, provavelmente deve bater próximo aos 1.200 reais mensal.

O espaço reservado para a instancia (O Ephemeral Storage)

Antes de tudo, você sabe oque é Efemero? Não, não é um herói grego, Apesar do nome bem sugestivo! Mas se ele fosse um herói grego, viveria por pouco tempo rs! Isso porque efémero é um adjetivo para algo que só existem durante alguns dias. Ou seja, algo transitório, passageiro ou que dura pouco tempo.

Então vamos lá! Em meu conceito abaixo que seja eterno o efémero! rs

Então depois de muito soco em ponta de faca, descobri que esse espaço adicional reservado para cada instancia se chama ephemeral(efêmero).  Descobri também que se estamos usando 10GB de HD para o root numa instancia média(medium) os outros 400GB estão ocultos!!!!!! PQP

Esse espaço denominado ephemeral(efêmero)  não vem montado previamente nas instancias do tipo Amazon Linux AMI, Centos ou Red Hat, somente na distro do Ubuntu que ele vem previamente montando como segue no print seguinte (em destaque com a linha laranja):

print01

Bem existem outras informações que precisamos saber sobre o volume ephemeral.

  • O ephemeral não POSSUI CUSTO já que se encontra reservado para as instancias;
  • O ephemeral só será encontrado apartir da instancia do tipo Small;
  • Para cada tipo de instancia se tem um tamanho do ephemeral  reservado, por exemplo: Small = 160GB, Medium = 410GB, M1 Large = 2 x 420 GB (840 GB),…;
  • O ephemeral NÃO participa da solução de bakups EBS, ou seja, se você parar a instancia se perde todos os dados dentro da unidade montada com o uso do ephemeral. Ou seja, DONT STOP! Ou… podemos definir nossos soluções de backups para a partição do tipo ephemeral(Vamos ver mais para baixo!)

Como usar o Ephemeral?

Bem como dito anteriormente temos que ter muito cuidado com a partição ephemeral, pois a mesma não esta incluída nas políticas de backups da EBS. Ou seja, não adianta criar AMI ou Snapshot que não vai contemplar esse tipo de partição!

Caso você utilize a distro Ubuntu, você vera que a partição do tipo ephemeral já virá montada por default como um print que passamos acima e irei repetir aqui tb. Caso seja utilizado outra distro teremos que montar na mão a partição do tipo ephemeral.

print01

Segue alguns links que explicam como montar a partição do tipo ephemeral:

Pelo que notei em alguns testes que somente uma partição é montanda no Ubuntu e fica na /mnt, caso utilize instancias maiores que a medium e caso necessite de mais espaços, veja quanto de espaço sua instancia oferece e monte a mesma.

O Backup dos dados da partição do tipo Ephemeral

Bem como já dito anteriormente e novamente irei repetir rs, a unidade ephemeral não esta incluída nas políticas de backups da EBS. Ou seja, não adianta criar AMI ou Snapshot que não vai contemplar esse tipo de partição! OU SEJA, CUIDADO!!!! Pois temos que adortar nossas próprias políticas de backup para essa unidade!

Então pensando nisso descobri algumas formas, tais como: Github, S3, Dropbox,….

Pelo Github

Bem a mais interessante achei a do Github, pois podemos configurar em nosso cron o auto commit(Push) dos dados do nosso Magento para o git private. Assim além de mantermos backup dos dados teremos um alto nível de controle de versões como todos conhecem o Github!

Segue link de alguns projetos para adicionar o git no cron do linux para manter o backup dos dados no proprio git.

Ainda dentro do Git podemos aproveitar e também enviar os backups dos bancos de dados, segue script para criação dos bkps do banco de dados seja em percona, seja no RDS ou mysql.

PS: Seria bom contribuições sobre o https://bitbucket.org/

Pelo S3

Existe também o backup utilizando o S3, existem uns tutos na web como o do Roberto Silva do http://planetatecnologia.com que detalha como montar uma partição usando o S3, apesar de ser uma ótima idéia, não sei se com a partição montada será cobrado por demanda. Mas a ideia que considero legal é de so criar o bkp dos arquivos alterados, para diminuir consumo. Montar o S3 em uma partição é possível graças ao projeto S3FS.

Outros meios

Bem existe inúmeros outros meios, tais como dropbox e outros CDNs, mas recomendo colocar em mente que que devemos fazer o bkp somente dos arquivos alterados para diminuir a carga e assim economizarmos.

Conclusões:

Eu poderia fazer como muitos e guardar essas informações para uso exclusivo, já que não vi muitos posts sobre tal informação. Mas acredito que ele pode ajudar à muitos sysadmins e devsops Magento que usam o AWS a economizarem um bom $$.

E assim continuo mantendo a fé que um dia o EBS fique mais barato e assim possamos aposentar o grande herói grego Ephemero!

Referencias:

Agradeço aos Brothers Isaac Lopes Santos, Samuel Maciel Sampaio, Isaac Sampaio que me ajudam muito enquanto a adm do Linux e outras dúvidas!

Sobre o Autor

Designer, Web Developer & Linux Administrator

Meu nome é Deivison Arthur, tenho 29 anos, sou Administrador Linux, Analista de Sistema, Webdesigner e Pesquisador. há mais de dez anos. Nasci no Rio de Janeiro, atualmente trabalho como Gerente de Tecnologia e E-commerce at Grupo FFernandes e Freelancer nas horas vagas. Desenvolvimento em Joomla, Wordpress, Drupal, Magento e outros GPLs...

Quantidade de Artigos : 114

Comentários (3)

  • Alex Braga

    Parabéns pelo artigo Deivison!!

    Mais uma vez arrebentou.

    Achei interessante a parte do backup pelo github, vou dar uma estudada nisso depois

    Abçs..

    Responder
  • Andre Mesquita

    Parabéns pelo artigo. Me ajudou muito a entender o disco efêmero.

    Nos meus servidores linux possuo um shell script que executa os backups dos arquivos e bancos de dados, compacta e envia para um bucket S3 só de backups. Ainda aproveito o recurso Lifecicle do S3 que apaga automaticamente os backups mais antigos e não deixa o espaço crescer muito. Não corro o disco de falhar a montagem do bucket como volume do servidor.

    Espero que esta dica também possa ajudar outras pessoas.

    Abs!

    Responder

Enviar Comentário

© 2012 Powered By Wordpress, Deivison Arthur

Ir para cima