Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Primeiros passos com AWS

Olá galera!

Como não temos um curso (ainda :P ) de AWS, não sei se é permitido que eu faça um post no fórum sobre isso... De qualquer modo, acho que toda pergunta é válida para a construção de conhecimento, então vamos la!

Trabalho em uma empresa onde toda a infra é local, e estamos com uma proposta de transferir tudo que temos aqui para os serviços da Amazon. Com isso, estou empenhado em aprender o máximo possivel para que tenhamos uma boa infra para dar suporte a todos os sistemas que temos de uma maneira mais eficaz. #dicaDeCurso

Estou com algumas dúvidas neste ponto inicial e gostaria de algumas dicas. Vamos la:

Esta empresa possui vários aplicativos e sistemas ativos... Serviços que fazem uso de MySql, Mongo, MySQLSERV, apache com php. Como seria a maneira ideal de estruturar isso? Criar varias instancias... Montar apenas uma com todos os serviços...

Um colega aqui da alura @joao jose maranhao junior comentou sobre EC2 Container Service, que achei uma boa proposta tbm e que talvez se encaixaria com o que eu preciso.

Enfim, dicas? Algum curso sobre EC2 Container Service? :P

Valeu pessoal

3 respostas
solução!

Ok, vamos lá. Nunca utilizei o EC2 Container Service (EC2CS), mas já mexi bastante com instâncias EC2. O serviço EC2 da Amazon não é super caro, o que mais pesa nos custos é o tamanho do HD de cada máquina, que é totalmente customizável (lembre-se de contar o espaço que o sistema operacional vai ocupar). Dependendo do caso de uso, talvez valha a pena vc tentar transferir o que eu vou falar aqui pro EC2CS. Containers são mais interessantes quando se pretende subir um sistema por tempo limitado. Para um sistema permanente, acho mais interessante ter uma uma instância dedicada, mas essa é minha opinião.

Na Casa do Código temos diversos micro serviços também, e a minha experiência trabalhando com eles é essa: entre criar várias instâncias e criar uma única instância com todos os serviços, aconselharia sempre a primeira opção. Sabe aquele velho ditado de não deixar todos os ovos no mesmo cesto? Pois é. Micro serviços isolados são sempre mais seguros pois um não vai afetar o funcionamento do outro. Temos alguns sistemas na AWS, principalmente se utilizamos Java. Para projetos em Ruby on Rails, referimos utilizar o Heroku pois a facilidade de deploy é magnífica.

A AWS tem uma vantagem, no entanto, que é você ter acesso total via ssh às máquinas que cria, podendo customizar do jeito que quiser, instalar o que precisar, configurar as portas que serão abertas para acesso remoto. Tudo é configurável como se fosse uma máquina local. Os serviços mais robustos sempre acabam ficando na AWS.

Quanto aos sistemas de bancos de dados, independentemente da escolhe que fizer entre EC2 e EC2CS, o ideal é criar uma ou mais instâncias nos serviços RDS ou DynamoDB (relacional e não relacional respectivamente) da AWS para manter os bancos também isolados, protegendo seus dados caso haja uma falha em qualquer dos servidores ou containers.

Aqui utilizamos somente o RDS. Dentro de cada instância você pode ter inúmeros bancos de dados, o que pode reduzir os custos mas engessa o backup de um sistema no dos outros. Pode ser mais interessante separar em diversas instâncias para não correr esse risco.

Acho que o básico é isso, mas se precisar de algo mais específico não hesite em perguntar!

Muito bom Marco! Obrigado pelas dicas!!

Vou manter em aberto, para ter mais opiniões de outros colegas tbm

Sem problemas! Se não tiver novas mensagens por uma semana, aí a gente fecha o tópico. Dúvidas específicas tem um pouco mais de apelo por aqui ;)