Configurando o armazenamento em disco do EBS / EFS para recuperação de desastre

0

Estou pensando em como configurar melhor alguns ambientes na AWS. Eu gostaria de configurar dois servidores:

  • Servidor de aplicativos (executando o aplicativo da web e os serviços REST)
  • Servidor de ferramentas (executando várias tarefas ETL)

O resultado final deve ser dois servidores de aplicativos e dois servidores de ferramentas (por exemplo, um servidor appserver / tools em cada zona de disponibilidade)

  • Todos os ambientes estarão falando com o mesmo banco de dados
  • Cada ambiente terá seu próprio armazenamento de EBS
  • Um único armazenamento compartilhado externo (EFS) que será acessível de qualquer um dos quatro ambientes.

Estou um pouco confuso em termos de como configurar o armazenamento. O objetivo é garantir que, se uma instância do EC2 for perdida, não perco nenhum dado. Para conseguir isso, eu gostaria de configurá-lo para que o código seja implantado no armazenamento local (EBS) e o conteúdo dinâmico seja armazenado no armazenamento compartilhado externo (EFS).

Todos os appliations estarão em uma pasta com a seguinte estrutura

├─ application
    ├─ bin
    ├─ lib
    ├─ config
    ├─ logs
    ├─ data
        ├─ processed
        ├─ failed   

Em uma instância do EC2, eu gostaria de manter a pasta config, logs e data. As outras pastas (bin e lib) conterão apenas código binário que pode ser reconstruído a partir do GIT. Para conseguir isso, estou pensando no seguinte armazenamento

EBS no appserver 1 e no appserver 2

├─ applications
    ├─ finance
        ├─ appname1
            ├─ bin
            ├─ lib
            ├─ config --> /storage/finance/config
            ├─ logs --> /storage/finance/logs
            ├─ data --> /storage/finance/date

Os últimos três serão links simbólicos para pastas no armazenamento externo.

EFS (armazenamento compartilhado)

├─ storage
    ├─ finance
        ├─ appname1
            ├─ config
            ├─ logs
            ├─ data

A estrutura acima pode ser um pesadelo de manutenção, mas não consigo pensar em outras alternativas. Com a abordagem acima, o código é implantado em cada servidor de aplicativos, mas os dados são compartilhados entre dois appservers. Se um servidor de aplicativos em uma zona AV morrer, o outro ainda estará funcional.

Outras opções que considero incluem ter tudo no armazenamento do EBS e contar com backups / imagens. Isso não funcionará porque os arquivos de configuração são dinâmicos e a imagem nem sempre tem os dados mais recentes.

Lendo sobre armazenamento EFS, parece que escrever para ele pode ser lento, o que é algo que está me preocupando um pouco. Perguntas:

  • Existem alternativas para o acima?
  • Existem outras desvantagens na abordagem acima?
  • Existe uma maneira de ter tudo (código + dados) no armazenamento local do EBS e ainda ser capaz de recuperar (para o segundo) no caso de um desastre.

Obrigado antecipadamente

    
por ziggy 22.10.2017 / 13:31

1 resposta

0

Ao observar as páginas da AWS para EFS, ele menciona que "Cada objeto do sistema de arquivos do Amazon EFS (ou seja, diretório, arquivo e link) é armazenado de forma redundante em várias zonas de disponibilidade". Formulação semelhante na página do EBS. Então, há alguma redundância lá. Aqui está um Amazon PDF em alta disponibilidade.

Para o EC2, usar várias zonas de disponibilidade reduzirá sua exposição ao risco. Eu coloquei cada instância em uma zona de disponibilidade separada. E o PDF recomenda o uso de instantâneos do EBS com uma instância do EC2 de espera para HA. Os instantâneos estão disponíveis nas regiões, por isso são facilmente acessados para recuperação de desastres. Fazer isso dessa maneira responderia à sua pergunta sobre como colocar tudo no AWS EBS. E é bastante simples copiar volumes do EBS entre regiões para adicionar redundância e manter tudo sincronizado. Você poderia, com isso, ter um ambiente de produção, um ambiente de espera e um ambiente de substituição que poderiam ser rapidamente desenvolvidos no caso de uma falha, deixando-o com dois ambientes disponíveis em quase todos os momentos.

Confira o PDF e o link, além dos documentos da Amazon sobre alta disponibilidade, e veja o que funciona melhor para as necessidades de sua empresa e para os níveis da equipe.

    
por 30.10.2017 / 08:39