Implementando Amazon S3 para blogs WordPress

amazon s3 wordpress

Observação: Desde que escrevemos isso, migramos para Pêndulo com um Content Delivery Network alimentado por StackPath CDN, um CDN muito mais rápido do que o Amazon.378

A menos que você esteja em uma plataforma de hospedagem empresarial premium, é difícil obter desempenho empresarial com um CMS como WordPress. Compartilhamento de carga, backups, redundância, replicação e entrega de conteúdo não são baratos.

Muitos representantes de TI visualizam plataformas como o WordPress e as usam porque são sem. No entanto, o Grátis é relativo. Coloque o WordPress em uma infraestrutura de hospedagem típica e algumas centenas de usuários simultâneos podem interromper o seu site. Para ajudar no desempenho do meu blog, esta semana eu modifiquei minha instalação do WordPress para enviar todos os gráficos do Amazon S3 (Amazon Simple Storage Service). Isso deixa meu servidor para simplesmente enviar HTML por meio de PHP / MySQL.

O Amazon S3 fornece uma interface de serviços da web simples que pode ser usada para armazenar e recuperar qualquer quantidade de dados, a qualquer momento, de qualquer lugar na web. Ele dá a qualquer desenvolvedor acesso à mesma infraestrutura de armazenamento de dados altamente escalonável, confiável, rápida e econômica que a Amazon usa para executar sua própria rede global de sites. O serviço visa maximizar os benefícios de escala e repassar esses benefícios aos desenvolvedores.

Converter o site para o Amazon S3 deu um pouco de trabalho, mas aqui estão os princípios básicos:

  1. Registe-se para Amazon Web Services.
  2. Carregue o complemento do Firefox para S3. Isso fornece uma ótima interface para gerenciamento de conteúdo no S3.
  3. Adicionar uma balde, neste caso eu adicionei www.martech.zone.
  4. Adicione um CNAME ao seu registrador de domínio para apontar um subdomínio do seu site para o Amazon S3 para hospedagem virtual.
  5. Baixe e instale o plugin do WordPress para Amazon S3.
  6. Defina sua AWS Access Key ID e Secret Key e clique em update.
  7. Selecione o subdomínio / intervalo que você criou acima para o Use este balde criação.

wp-amazon-s3-settings.png

Os próximos passos foram a parte divertida! Eu não queria apenas servir conteúdo futuro do S3, eu queria servir todo o conteúdo, incluindo anúncios, temas e arquivos de mídia anteriores.

  1. Criei pastas para anúncios, temas e a Uploads no meu balde no S3.
  2. Fiz backup de todo o meu conteúdo atual (arquivos de imagem e mídia) para as pastas aplicáveis.
  3. Modifiquei meu arquivo CSS no meu tema para extrair todas as imagens de www.martech.zone/themes.
  4. Eu fiz um Pesquisar e substituir MySQL e atualizou todas as referências ao conteúdo de mídia a ser exibido no subdomínio S3.
  5. Atualizei todas as referências de imagens para anúncios a serem exibidos da pasta de anúncios no subdomínio S3.

De agora em diante, eu simplesmente preciso fazer upload de mídia para o S3, em vez de usar a caixa de diálogo de upload de imagem padrão para WordPress. O plugin faz um trabalho fantástico ao colocar um ícone S3 no mesmo local dos ícones Upload / Insert no administrador do WordPress.

Mover todos os dados e rodar no S3 por alguns dias agora resultou em $ 0.12 em cobranças do S3, então não estou preocupado com as taxas envolvidas - talvez alguns dólares por mês seja o que custará. No lado positivo, se eu receber uma tonelada de visitantes, devo ser capaz de lidar com muito mais do que a plataforma atual suporta. Meu site está carregando a página inicial em cerca de 40% do tempo que costumava, estou muito feliz com a mudança!

A melhor coisa sobre esse movimento é que ele não exigiu nenhum desenvolvimento!

28 Comentários

  1. 1

    Oi,

    Eu tenho uma conta no Amazon S3, mas depois de tentar descobrir as coisas, eu apenas a deixei porque é muito difícil. O addin do firefox para S3 torna muito mais fácil?

  2. 3

    Devo acrescentar, você precisará apontar seu CNAME para o novo your_unique_cloudfront_distribution_name.cloudfront.net em vez de para your_unique_subdomain.s3.amazonaws.com. Mas depois disso, você o trata como um balde S3 normal.

    Ele custa mais ao usar a opção do CloudFront de alta velocidade / baixa latência. Se você decidir que prefere voltar para a versão padrão do S3, apenas mude seu CNAME para apontar de volta para s3.amazonaws.com.

    Cerca de um ano atrás, eu escrevihttp://www.carltonbale.com/tag/amazon-s3/"a alguns posts de blog no Amaon S3 para todos os interessados.

  3. 4

    Se você estiver procurando por um aumento ainda maior na velocidade, transforme seu Amazon S3 Bucket em um bucket do Amazon CloudFront, que cria uma verdadeira rede de distribuição de conteúdo multisservidor global e de baixa latência. Aqui está um link com todos os detalhes: http://aws.amazon.com/cloudfront/faqs/

    Além disso, o plug-in wp-supercache pode oferecer aumentos de velocidade tremendos em sites de alto tráfego, pois reduz muito a carga da CPU e as chamadas de banco de dados.

    • 5

      Muito legal, Carlton! Portanto, é muito mais uma rede distribuída, como Akamai. Eu não sabia que eles tinham isso disponível! Posso aproveitar depois de ver alguns dos custos.

      Eu já tive o cache com wp habilitado antes, mas tenho algum conteúdo dinâmico, então eu realmente tive dificuldades com isso, já que às vezes ele armazenava em cache o conteúdo que eu realmente queria carregar em tempo real.

      • 6

        Douglas,

        Pela descrição deles, parece que a Amazon está fazendo algo completamente diferente, eles dizem:

        “O Amazon CloudFront usa 14 pontos de presença nos principais mercados em todo o mundo. Oito estão nos Estados Unidos (Ashburn, VA; Dallas / Fort Worth, TX; Los Angeles, CA; Miami, FL; Newark, NJ; Palo Alto, CA; Seattle, WA; St. Louis, MO). Quatro estão na Europa (Amsterdã; Dublin; Frankfurt; Londres). Dois estão na Ásia (Hong Kong, Tóquio). ”

        Basicamente, aproveitam as trocas da Internet para alavancar sua proximidade com o usuário final, enquanto CDNs como a Akamai têm servidores muito mais próximos do usuário final, geralmente na rede do ISP.

        A maneira das amazonas de fazer isso é muito mais barata e eficaz da Akamai.

        Rogerio - http://www.itjuju.com/

  4. 7

    Eu não diria que é difícil “obter desempenho empresarial com um CMS como o WordPress”.

    Tudo depende de como você configura sua infraestrutura ou da maneira como hospeda seu CMS.
    A maneira como o próprio CMS foi codificado também pode desempenhar um grande papel em seu desempenho, como Carlton apontou ao usar o plugin wp-supercache.

    Teria sido melhor se a funcionalidade do plugin wp-supercache fosse incorporada ao wordpress desde o início - mas isso exigiria reescrever o front end. Qual é o que lightpress.org fez.

    Descarregar o conteúdo estático em algo como o S3 é uma boa maneira de descarregar o processamento e a entrega do servidor principal. É uma maneira fácil e conveniente de acessar a infraestrutura da Amazon para fazer o trabalho pesado, mas assim que você atingir um limite cretino, a Amazon começará a ficar cara e será mais barato fazê-lo internamente e ir com um CDN.

    Rogerio - http://www.itjuju.com/

    Ps
    Eu estive pensando sobre essa situação um pouco, se apenas 100 pessoas se reunissem e contribuíssem a cada mês com o preço de um servidor decente que normalmente estariam pagando, poderiam construir / montar uma infraestrutura de hospedagem que poderia lidar com quase tudo.

  5. 8

    $ 0.12 para os primeiros dias de serviços S3. Você revisitaria o tópico em alguns meses e mostraria algumas estatísticas de tráfego versus custos? Seria interessante ver como o custo se divide para visitantes únicos e em relação aos custos de anúncios ou outras entradas.

  6. 13
  7. 14

    Amazon S3 é um serviço extremamente bem avaliado. Estou apenas no processo de integrá-lo a um CMS. O único problema que eu encontrei de uma perspectiva de desenvolvimento, não de uma perspectiva de serviço da Amazon, é que se você deseja que seu usuário carregue de forma transparente o arquivo diretamente para S3 via POST e você tem um formulário multiparte que incorpora texto destinado ao seu banco de dados, você está preso. Você precisa separá-lo em dois formulários ou tentar usar ajax para fazer upload do arquivo primeiro e, em seguida, enviar os dados localmente com sucesso.

    Se alguém tiver uma solução melhor, fique à vontade para me avisar: o)

    No entanto, a economia de custos para hospedar arquivos grandes de alto tráfego garante o desenvolvimento de tal sistema.

    Conceda

    Sistemas de gerenciamento de lista de supressão

  8. 15

    Oi,

    Ótimo escrever. Eu percorri como você descreveu, mas no meu painel de administração onde carrego imagens, não vejo um botão S3. Percebi que minhas imagens, quando carregadas normalmente acabam na Amazon, isso significa que agora posso copiar todas as minhas imagens existentes e excluir as do servidor?

    E preciso modificar de onde vêm minhas imagens ou o plugin faz isso?

  9. 16

    Oi Scott,

    Você deverá ver um pequeno ícone de aparência de banco de dados à direita do ícone típico. Esse é o ícone para abrir a janela da Amazon. Mudei todo o wp-content / uploads para a Amazon e me certifiquei de que tinha o mesmo caminho ... a única diferença é o subdomínio. Eles estavam em http://www... e agora estão em images.marketingtechblog.com. Depois de copiar todas as imagens para a Amazon, usei PHPMyAdmin, fiz uma pesquisa e substituí src = ”http://martech.zone e substituí-lo por src =” images.marketingtechblog.com. (https://martech.zone/wordpress/mysql-search-replace/)

    Espero que ajude! Não é perfeito, mas funciona.

    Doug

  10. 17

    Olá Douglas, obrigado por isso, atualizei o banco de dados para que todas as imagens apontem para imagens., Mas vejo que alguns dos polegares (quando olhados através das informações da página) mostram a imagem ainda em www.

    Aqui está o site (www.gamefreaks.co.nz) - a, alos tendo algum grande problema de memória para a página inicial, só começou depois que mudamos a hospedagem, portanto, agora estou pensando em descarregar parte da pressão de hospedagem para o S3. 😎

  11. 18
  12. 19
  13. 20
    • 21

      É compatível com a versão mais recente, mas honestamente não gosto da maneira como funciona - você tem que mudar e carregar todas as imagens para o S3 com um processo diferente. Na verdade, podemos construir uma integração mais robusta de CDN (Content Delivery Network) com WP que sincroniza em vez de exigir um processo diferente.

  14. 22
  15. 23

    Você sabe se isso funciona com “Buckets externos” também? Quero configurar isso para um blog de um amigo meu e deixá-lo usar um bucket em minha conta da AWS (já criei uma conta de usuário para ele e dei a ele acesso a um de meus buckets usando as ferramentas Amazon IAM).

  16. 24
  17. 25
    • 26

      Celia, vá para a casa AWS http://aws.amazon.com/ e na lista suspensa “Minha conta / console”, selecione “Credenciais de segurança”. Faça login se precisar. De lá, role para baixo até Access Credentials e você verá suas IDs de chave de acesso listadas. Copie um desses para o ID da chave para este plugin e, a seguir, clique no link “Mostrar” para ver a chave de acesso secreta mais longa. Copie e cole nas configurações do plugin também. Você deve estar pronto depois disso!

  18. 27
  19. 28

O que você acha?

Este site usa o Akismet para reduzir o spam. Saiba como seus dados de comentário são processados.