Como configurar o postgresql no EC2 para que meus dados sejam salvos em backup e seguros?

3

Eu estou no processo de criar um aplicativo web muito pequeno que espero eventualmente crescer em algo maior. Por enquanto, é um projeto pessoal de orçamento quase nulo, então não tenho muitos recursos para jogá-lo. Eu quero definir as coisas de uma forma que eu possa aumentar se eu começar a ver algum sucesso.

Estou pretendendo configurar uma única micro instância no EC2 com um aplicativo Rails usando o PostgreSQL como banco de dados. Sou novo no EC2 e estou bastante confuso sobre o processo de configuração de um servidor.

Eu tenho lido o suficiente para saber que executar o PostgreSQL em uma Micro instância geralmente não é recomendado e rodar o servidor web na mesma instância ainda menos, mas o desempenho não é de nenhuma preocupação substancial neste momento (eu tenho apenas 3 usuários para agora!). O tempo de atividade é mais importante, mas não é crítico. O que é crítico é a integridade e confiabilidade do banco de dados.

Pelo que eu posso dizer, apenas a configuração de uma instalação padrão do PostgreSQL na instância do EC2 funcionará, mas os dados desaparecerão se a instância fosse finalizada. O que eu quero saber é:

  1. Como configuro o PostgreSQL para armazenar seus dados em algum lugar que persistirá?

  2. Como configuro backups contínuos para que haja sempre outra cópia dos dados do meu usuário?

Eu percebo que nenhuma dessas perguntas é trivial, mas apenas ser apontado na direção certa seria uma grande ajuda, já que este é um tópico muito importante para se ter uma idéia.

    
por brad 24.11.2012 / 11:59

2 respostas

7

Crie sua instância no EBS com "delete on terminate" desabilitado para o volume raiz. Isso tornará mais difícil destruir seus dados por acidente. Eu escrevi um pouco sobre o EBS vs instance store nesta postagem há alguns dias . O mesmo post discute as opções para fazer o PostgreSQL no EC2 ter um desempenho aceitável (dica: não use uma micro instância).

Agora, mais importante, certifique-se de configurar backups regulares de pg_dump ou pg_basebackup + WAL para algum lugar fora da nuvem da Amazon. Confira o barman para isso . Você poderia arquivar no S3 (preferencialmente em outro S3 da região da AWS) se estivesse disposto a confiar muito na nuvem da AWS ou se não se importar com a interrupção estranha.

Se possível, configure também replicação de streaming para um segundo servidor Pg em outro zona ou região de disponibilidade.

Teste seus backups regularmente. Monitore sua replicação (possivelmente usando ferramentas como repmgr para ajudar a automatizá-la).

Os instantâneos do seu host não são uma má ideia, mas não devem ser realmente necessários se você documentar como o configurou e testar os seus backups .

    
por 24.11.2012 / 12:37
2

Inicialmente, você pode usar uma instância de EBS para sua micro instância. Isso deve cuidar de sua preocupação inicial sobre a perda de dados após reinicializações.

Posteriormente, você deve configurar sua instância para ter um disco EBS adicional apenas para os dados (raiz de documento e arquivos de banco de dados). Você pode usar o recurso de instantâneo do EBS para obter instantâneos do disco de dados e fazer backup dele em s3.

Este é um nível muito alto de descrição do que você deve fazer. Uma resposta detalhada seria realmente muito longa.

    
por 24.11.2012 / 12:41