O gerenciamento de sites WordPress de tráfego pesado tem muitos desafios, e um deles é um base de dados.
O banco de dados é conhecido por utilizando altos recursos como CPU, memória, IO, então seria uma boa ideia hospedar o banco de dados separadamente.
Um site WordPress típico seria algo como abaixo.
Onde todos os softwares como Nginx/Apache, PHP, WordPress, MySQL/MariaDB estão rodando no mesmo servidor.
Ter tudo no mesmo servidor é bom para tráfego pequeno a médio, mas se você estiver Gerenciando um site de tráfego intenso e otimizando cada camada para desempenho ideal então você pode desacoplar o servidor de banco de dados.
Existem duas maneiras possíveis de fazer isso.
- Hospede o banco de dados em um servidor diferente
- Use o SQL gerenciado do Google Cloud
A primeira opção é boa, se você estiver pronto para gastar tempo e se esforçar para gerenciar o banco de dados, isso seria legal. No entanto, se você não estiver preparado para isso, poderá aproveitar SQL gerenciado do Google Cloud .
O que é Google Cloud SQL?
O Cloud SQL é um banco de dados gerenciado de alto desempenho (MySQL, PostgreSQL, servidor SQL) do Google. Você não precisa se preocupar com instalação, gerenciamento e otimização de desempenho.
Você paga pelo que usa e deixa o Google cuidar da infraestrutura do banco de dados.
O Google Cloud SQL pode ser integrado com App Engine, Compute Engine ou qualquer outro serviço/hospedagem, incluindo sua estação de trabalho local. Configurar a replicação de banco de dados, failover automático de alta disponibilidade não requer habilidades de banco de dados e você os configura usando o Console do GCP.
Preparar para ver como o Cloud SQL funciona com o WordPress?
Cenário – Tenho um site WordPress hospedado no Google Cloud (Compute Engine) onde tudo roda em um único servidor. Farei o seguinte para separar o banco de dados.
- Criar uma instância do Cloud SQL
- Exporte os dados do banco de dados MySQL existente
- Importe os dados para o Cloud SQL
- Permitir que o Cloud SQL seja conectado a partir do servidor WordPress existente
- Altere a configuração do WordPress para se conectar ao Cloud SQL
Criando instância do Google Cloud SQL
- Vá para Nuvem SQL e clique Criar instância
- Escolher MySQL e a seguir
- Insira as informações da instância
- Introduzir o ID da instância
- Selecione os Versão do banco de dados (sempre o mais recente é melhor)
- Escolha o região e zona (Estou procedendo com uma zona única e posso ter HA a qualquer momento, mais tarde)
- Clique em MOSTRAR OPÇÕES DE CONFIGURAÇÃO para personalizar o tipo de instância de VM, backup, manutenção etc.
Dica : sempre prefira ter instâncias SQL na mesma região que seu servidor WordPress existente. No entanto, se o seu WordPress não estiver no Google Cloud, escolha o local mais próximo do seu servidor.
- Deixe ser o tipo de armazenamento padrão escolhido como SSD
- Backup automático, registro binário é selecionado como padrão – altere se precisar
- Melhor definir o janela e tempo de manutenção para correção.
Dica : escolha sempre o dia e a hora menos movimentados para o seu negócio
- Depois de tudo configurado, clique em CRIAR INSTÂNCIA
Levará alguns segundos para criar e, após a conclusão, você verá a instância na lista.
Obtendo exportação de dados do banco de dados existente
- Efetue login em um servidor atual onde o MySQL está sendo executado
- Usar
mysqldump
comando para exportar o banco de dados
mysqldump -u root -p (DATABASE_NAME) >/tmp/export.sql
Existem mais alguns procedimentos para exportar, conforme explicado em Documentos Google .
Depois que a exportação estiver concluída, você precisa fazer o upload do arquivo SQL para algum lugar no Armazenamento em nuvem do Google (S3).
Importando dados para o Cloud SQL
Vamos criar um banco de dados e manter o nome existente
- Vá para instância SQL
- Clique bancos de dados no painel de navegação esquerdo >> criar banco de dados
- Digite o nome do banco de dados e clique em criar
Agora, é hora de importar os dados.
- Acesse a visão geral da instância e clique no botão Importar botão
- Selecione o arquivo SQL do depósito de armazenamento que você carregou na etapa anterior durante a exportação
- Selecione o banco de dados sob o destino
- Clique em IMPORTAR
Levará alguns segundos e você receberá uma confirmação após a conclusão
Como configurar o acesso ao Cloud SQL
O controle de acesso é crítico, pois é aqui que você define quem deve se conectar à sua instância. Existem duas partes.
Rede de autorização – adicione o endereço IP que deve permitir a conexão com a instância do Cloud SQL
- Vá para Conexões >> Adicionar rede (em IP público se o WordPress estiver hospedado fora do GCP e IP privado se hospedado no Google Cloud VM) e insira os endereços IP.
Conta de usuário – é bom ter uma conta de usuário separada criada para o banco de dados do WordPress.
- Vá para Usuários >> ADICIONAR CONTA DE EUAUÁRIO
- Insira o usuário, a senha e o nome do host para permitir o acesso de
Dica : você pode manter o usuário e a senha existentes para que você tenha alterações mínimas de configuração no WordPress
Configurando WordPress para Cloud SQL
E a última parte, você precisa mudar wp-config.php
para apontar para o Cloud SQL
Como de costume, faça um backup de wp-config.php arquivo
Edite o arquivo usando vi
e atualizar o DB_HOST
valor para o endereço IP do Cloud SQL
De
/** MySQL hostname */ define('DB_HOST', 'localhost');
Para
/** MySQL hostname */ define('DB_HOST', '104.155.153.82');
104.155.153.82 é o IP da minha instância do Cloud SQL, que você encontrará no Visão geral página.
Salve o arquivo e reinicie o PHP, Nginx no servidor WordPress
Observação : você também pode se conectar à instância do Cloud SQL usando o cliente MySQL do Compute Engine, que é explicado aqui .
Bom trabalho! Você tem com sucesso separou o banco de dados do WordPress.
Tente acessar para garantir que funciona. Depois de tudo bem, você pode querer parar o MySQL no servidor WordPress.
Parando o MySQL
Quando estiver satisfeito com o Google CloudSQL, você pode pensar em interromper a execução do MySQL em seu servidor.
Se estiver usando Ubuntu 16.x
service mysql stop
Isso irá parar, mas começará novamente quando um servidor for reinicializado, então, em seguida, você precisa desabilitar a inicialização automática.
update-rc.d mysql disable
para CentOS 6.x
service mysqld stop
e para desativar a inicialização automática
chkconfig --del mysqld
Você também pode querer desinstalar o MySQL, mas eu recomendo deixá-lo instalado para o futuro, caso queira usá-lo localmente.
Obter MySQL gerenciado no Google Cloud é bastante direto e não encontrei nenhum problema.
Se você precisar dividir o banco de dados de um servidor WordPress, o Google Cloud SQL seria uma boa opção. Experimente para ver como funciona.
Não se sente confortável com modificação de configuração, coisas relacionadas à administração do servidor? Aproveitar plataforma gerenciada do Google Cloud para WordPress .