Arquivo persistente muda na instância do EC2 sem criar uma nova AMI / Launch Configuration toda vez

3

Sou muito novo na AWS, mas tenho uma instância muito pequena do Amazon Linux EC2 que é usada para um processo PHP simples e ocasional, por isso não estou usando CodeDeploy, Load Balancers, etc. Meu chefe deseja usar WinSCP para fazer upload de algum código PHP de tempos em tempos.

Eu estou querendo saber qual é a melhor abordagem para persistir as alterações do PHP no evento em que a instância é finalizada ou reinicializada. Atualmente, a única maneira que vejo para fazer isso é atualizar os arquivos, criar uma nova AMI, criar uma nova Configuração de inicialização com essa nova imagem e aplicá-la ao grupo Auto Scaling. Isso parece ser muito trabalhoso apenas para manter atualizados os arquivos no volume do EBS.

Estou faltando alguma coisa? Talvez haja algo que possa ser feito com volumes e snapshots do EBS?

Obrigado por qualquer conselho.

    
por pmahomme 25.01.2018 / 19:38

4 respostas

0

Se você estiver usando um volume EBS com sua instância, as alterações que você fizer persistirão por meio de reinicializações, a menos que você exclua o volume do EBS. Os tipos de instância mais antigos usavam um repositório de instâncias efêmero que era apagado toda vez que você terminava a instância - esse é o seu problema?

Se você deseja espalhar seus dados em um cluster ou grupo de escalonamento automático, o EFS é a melhor resposta link

    
por 25.01.2018 / 20:54
0

This seems like a lot of work just to keep the files on the EBS volume up to date

É muito trabalho. Mas o problema não é a quantidade de trabalho. É que você está pedindo mais do que apenas manter atualizados os arquivos em um volume do EBS. Você está solicitando atualizações em sua instância do EC2 para persistir em outras instâncias do EC2.

Os volumes do EBS são como o seu disco rígido no seu computador local. A AWS trabalha um pouco nos bastidores para garantir que os dados sejam replicados, mas tudo isso está dentro dos limites de um único volume do EBS.

Encerrar uma instância do EC2 e excluir o volume é como se eu fosse à sua casa e quebrasse o computador com uma marreta. Você espera que seus dados sejam replicados magicamente em seu novo computador sem antes ter feito algo para proteger esses dados? Claro que não.

Se um volume do EBS for excluído, os dados serão eliminados. A AWS não reproduz magicamente os dados em outro lugar. Isso é com você, se você precisar além do tempo de vida do volume do EBS . E isso é um ponto chave: nem todo mundo precisa que os dados persistam além do tempo de vida de um volume do EBS.

Quando você desativa a sinalização "Excluir ao finalizar" para um volume do EBS, isso simplesmente significa que, quando a instância do EC2 é encerrada, o volume do EBS não é excluído. Quando isso acontece, o volume do EBS não será usado em sua conta da AWS.

O volume do EBS não anexado pode ser anexado a outra instância do EC2 para que você possa usá-lo, mas, novamente, isso não é feito magicamente para você. Você precisa fazer isso sozinho.

AWS:

  1. garante que seus dados estejam tão protegidos quanto possível, onde puder e
  2. forneceu as ferramentas para você ir mais longe.

Saiba onde o # 1 pára e onde você precisa assumir o segundo lugar.

Então, sim, a preservação dos arquivos em um volume do EBS é da AWS. No entanto, mais uma vez, não é isso que você quer. Você quer mais.

Se você deseja que os dados persistam depois que uma instância do EC2 for encerrada, será necessário fazer mais. Criar uma imagem AMI e atualizar a configuração de inicialização do grupo Auto Scaling é o que você precisa fazer.

    
por 28.01.2018 / 22:41
0

Você não precisa se preocupar com a reinicialização da instância. Certifique-se de que o Comportamento de encerramento da instância está definido para Parar e não Terminar .

Em seguida, minha recomendação para manter as alterações em seu código seria usar um sistema de controle de versão, como o Git ou o SVN. Se, por alguma razão, estas não forem uma opção, a próxima solução mais apropriada será armazenar as modificações de código externamente, no S3 ou em um serviço semelhante, e então configurar Dados do usuário na sua instância do EC2 para baixe o código mais recente do seu bucket do S3. Você pode acessar a seção Dados do usuário ao iniciar uma instância do EC2, na página Configurar detalhes da instância . Você precisará expandir os Detalhes avançados na parte inferior.

Veja: link

Veja: link

    
por 30.01.2018 / 19:54
0

Se for uma pequena alteração, recomendo usar o beanstalk, se você não quiser criar um sistema. Armazene seu código no controle de código-fonte e feche seus arquivos no S3 usando a ferramenta de implantação do EB Beanstalk da Amazon. Em seguida, implante nas suas instâncias. Caso suas instâncias sejam desativadas, elas serão marcadas para reprovisionamento e você poderá implantar o aplicativo. Nesse caso, você pode usar opções para configurar o ELB.

    
por 08.02.2018 / 13:33