Automatizando a migração para AWS com Application Migration Service

Em 2020 fiz um post sobre o tema Migração para AWS com Cloud Endure, mas essa ferramenta foi descontinuada (exceto nas regiões AWS GovCloud e da China), devido a essa mudança, resolvi criar esse tutorial detalhando sobre a migração para a AWS usando o Application Migration Service.

Com o Application Migration Service podemos automatizar o processo de conversão de servidores para execução nativa na nuvem AWS. Com essa solução podemos migrar por exemplo, aplicações como Oracle, SAP e SQL Server executadas em servidores físicos, VMware vSphere, Microsoft Hyper-V e outras infraestruturas on-premises. Nesse tutorial irei demonstrar a migração de um servidor Linux que está em um ambiente on-premises convertendo esse servidor para uma Instância EC2.

Vamos lá!

Primeiramente vamos criar o usuário no Identity and Access Management (IAM) para utilizarmos no AWS Application Migration Service. Acessando a console do IAM, clique na opção Users do menu lateral e depois no botão Create user, conforme imagem abaixo:

Após clicar no botão Create user irá carregar a janela abaixo, onde iremos inserir o nome de usuário (user name), para essa demonstração iremos inserir o nome de usuário migration e clicar no botão Next:

Na próxima janela iremos definir as permissões que esse usuário terá no ambiente da AWS, como iremos utilizá-lo somente para o Application Migration Service, iremos selecionar a política (policy) AWSApplicationMigrationFullAccess e clicar no botão Next conforme imagem abaixo:

A política selecionada acima dará acesso total (full) ao Application Migration Service (MGN) necessárias para esse ambiente de demonstração. Para mais detalhes sobre as políticas (policies) do Application Migration Service, confira abaixo no link:
https://docs.aws.amazon.com/mgn/latest/ug/security-iam-awsmanpol.html

Clicando no botão Next, será carregada a página de Review onde será possível revisar as configurações realizadas. Após revisar e estando de acordo com as configurações, clique no botão Creater user para criar o usuário:

Após a criação do usuário, iremos criar as credenciais para acesso programático. Através dessas credenciais que Application Migration Service terá acesso para realizar a migração do servidor para a AWS. Na console do IAM, selecionamos o usuário que criamos clicando em seu nome (imagem abaixo):

Será aberta uma janela similar a da imagem abaixo, onde iremos clicar no link Create access key:

Na próxima janela, selecione a opção Third-party service, confirme a escolha através do checkbox “I understand…” e clique no botão Next conforme imagem abaixo:

Na próxima tela, clique no botão Create access key:

Clicando no botão, serão exibidas as credenciais que foram criadas, salve-as em um local seguro, caso as perca, será necessário criar novas credenciais, pois não é possível recuperá-las:

Com o usuário e suas credenciais criadas, vamos para a próxima etapa.
Precisaremos agora instalar o AWS Replication Agent que é o agent que irá realizar a replicação do servidor com a AWS para que seja possível migrá-lo posteriormente.

Agora, iremos acessar a console do Application Migration Service para realizar o download do agent na console do Application Migration Service, basta acessar o menu Source servers na barra lateral esquerda, clicar em Add server na tela que irá carregar no lado direito. Confira os passos descritos na imagem abaixo:

Para essa demonstração iremos utilizar como base um servidor Linux, após clicar no botão Add server irá carregar uma janela conforme abaixo:

Descendo a barra de rolagem você verá os itens 5 e 6 onde haverá as seguintes linhas de comando, na primeira (item 5), faz o download do instalador e na segunda (item 6) faz a instalação do agent:

Agora, em posse das linhas de comando, iremos acessar o servidor que iremos migrar para a AWS. Após fazer o download e iniciar a instalação, você verá uma tela similar a tela abaixo, caso tenha sucesso na instalação, aparecerá a seguinte mensagem “The AWS Replication Agent was successfully installed.” conforme a última linha da imagem abaixo:

Caso ocorra algum erro na instalação, confira na página de troubleshooting abaixo, os possíveis erros de instalação:
https://docs.aws.amazon.com/pt_br/mgn/latest/ug/Troubleshooting-Agent-Issues.html

É importante lembrar que para a replicação o Application Migration Service cria uma Instância EC2 de replicação (Replication Server) automaticamente. Por padrão será uma instância t3.small,  essa instância atende muito bem o nosso cenário de teste. Para migração de um ambiente de vários servidores, sugiro que leiam na documentação abaixo:
https://docs.aws.amazon.com/mgn/latest/ug/instance-type.html
Para alterar o tipo de instância basta alterar através do menu Settings / Replication template na console do Application Migration Service.

Com o AWS Replication Agent instalado será possível visualizar o servidor na console do Application Migration Service, na imagem abaixo o servidor já foi replicado para a AWS e já está pronto para seguirmos para a próxima etapa que é subir uma instância EC2 de teste do servidor replicado.

Na janela acima, clicamos no nome do servidor que queremos migrar para a AWS conforme descrito na imagem abaixo:

Ao clicar será carregada a janela com o dashboard de migração, por essa tela será possível acompanhar o status atual do ciclo de vida da Migração desse servidor:

A seguir, iremos na aba Launch settings onde teremos as configurações da Instancia EC2 que irá subir no momento da migração. Essa configuração é puxada através do Launch template padrão, que foi criado pelo próprio serviço (Application Migration Service):

Depois de verificado as configurações da Instância, iremos subir uma instância de teste para validar o funcionamento antes da migração definitiva. Para fazer esse teste precisaremos clicar no botão Test and cutover e depois na opção Launch test instance, conforme demonstrado na imagem abaixo:

Aparecerá um pop-up alertando que a instância que será criada, utilizará como base as configurações do Launch template, basta clicar no botão Launch e o processo de subir a Instância será iniciado.

Nesse momento, o Application Migration Service irá subir uma nova Instância EC2 para realizar o processo de conversão (Tag name: AWS Application Migration Service Conversion Server), esse servidor realiza a conversão dos discos para iniciar na EC2, faz alterações no bootloader, injeta os drives do hypervisor e instala as ferramentas de nuvem (cloud tools). Servidor de conversão criado na imagem abaixo:

Após esse processo e a Instância iniciada, o servidor de conversão (Conversion Server) será deletado, conforme imagem abaixo:

Com a instância de teste iniciada, você poderá acessá-la para testar as aplicações contidas e validar que estão em perfeito funcionamento. Após a validação, voltamos para a console do Application Migration Service para confirmar que a instância está pronta para ser migrada para a AWS e avançarmos para a próxima etapa do ciclo de vida da migração.
Para isso basta clicar no menu Mark as “Ready for cutover”, conforme imagem abaixo:

Após clicar será aberta um pop-up informando que ao confirmar a Instância de teste será deletada:

É interessante que a própria solução vai informando qual a próxima etapa no ciclo de vida da migração, evitando que você fique confuso durante esse processo. É importante lembrar que, nessa demonstração estamos migrando somente 1 servidor, mas em um cenário real poderiam ser vários servidores.

Agora vamos para a etapa de cutover (transição) onde iremos subir a instância EC2 em definitivo para a AWS. Para isso basta clicar no menu Launch cutover instance e confirmar no botão Launch no pop-up que irá carregar, conforme imagens abaixo :

Após os ações acima, o Application Migration Service irá executar os passos realizados no momento de subida da instância EC2 de teste, criando o servidor de conversão e apagando ele após o processo.

Como podemos ver, o servidor foi migrado para a AWS como uma instância EC2 e está pronto para o uso.

Agora vamos finalizar o processo no Application Migration Service. Nesse ponto precisaremos ter certeza que a Instância que subiu está funcionando perfeitamente. Tendo essa certeza, basta clicar no menu Finalize cutover.

Como citado anteriormente, ao clicar no botão Finalize todos os dados de replicação e recursos usados nessa migração serão apagados. Depois que clicar não terá mais volta.

A partir desse momento o ciclo de migração estará finalizado e a Instância EC2 pronta para ser colocada em produção na AWS. 🙂

Para finalizar, clicaremos em Mark as archived no menu Actions e o servidor será removido da janela Source server do Application Migration Service

Concluído! Finalizamos nossa migração de um servidor Linux para a AWS.

Até breve!!! 🤓

Como proteger a sua aplicação web na AWS usando WAF (Web Application Firewall)

Atualmente na era digital, a segurança online se tornou uma prioridade, especialmente quando se trata da proteção de aplicações web contra ameaças cibernéticas. No ecossistema da Amazon Web Services (AWS), a implementação de medidas robustas de segurança é fundamental para garantir a integridade e disponibilidade de seus recursos na nuvem. Neste post, exploraremos em detalhes a utilização do WAF (Web Application Firewall) na AWS, uma ferramenta essencial para fortificar a segurança de suas aplicações web. Descubra como o WAF pode ser uma barreira eficaz contra ameaças do tipo: ataques DDoS, injeção de SQL e outros exploits comuns, proporcionando uma camada adicional de proteção para o seu site hospedado na AWS. Prepare-se para aprofundar seus conhecimentos e elevar o nível de segurança de sua presença online na nuvem.

Essa publicação demonstrará como configurar o WAF como a primeira camada de proteção da aplicação, trabalhando em conjunto com o CloudFront (CDN).

O Cloud Front é uma CDN (Content Delivery Network) da AWS para entrega de conteúdo com alta velocidade e baixa latência devido a sua quantidade de (PoPs) Pontos de Presença espalhados pelo mundo.  
Mais detalhes sobre esse serviço aqui: https://aws.amazon.com/pt/cloudfront/

Acessando a console do WAF pela primeira vez, será exibida uma janela similar a essa abaixo, clique no botão laranja Create web ACL:

Será carregada uma janela de configuração da Web ACL, nessa primeira etapa será necessário informar o tipo de recurso que você irá associar a essa ACL, existem duas opções CloudFront distributions (opção padrão) ou recursos regionais, por exemplo: Application Load Balancers, API Gateway entre outros serviços.

Nessa demonstração iremos criar a ACL para o CloudFront, inserindo o nome da Web ACL, o campo CloudWatch metric name será automaticamente preenchido, esse nome será para indentificar as métricas da Web ACL no Cloud Watch:

No próximo bloco de configurações podemos definir o Body size limit que o WAF irá inspecionar, esse limite se aplica ao request body, headers e cookies. Para essa demonstração, iremos deixar a opção Default (Padrão) que é 16 KB, pagando um valor adicional, esse valor pode ser alterado até 64 KB conforme imagem abaixo:

Definido o Body size limit, iremos selecionar o CloudFront Distribution que iremos associar a Web ACL que estamos criando.

Clicando no botão Add AWS resource conforme imagem acima, irá carregar uma janela com as Distributions existentes, selecione o Distribution e clique no botão Add conforme imagem abaixo:

Irá voltar para a tela anterior (imagem abaixo), clique no botão Next:

Nessa etapa, iremos definir as regras conforme os comportamentos das requisições web e de acordo com o que for identificado na requisição, a ação que será tomada. Por exemplo, se será liberado (Allow) ou bloqueado (Block).

Clicando em Add rules e depois em Add managed rule groups, será carregado uma tela com as regras gerenciadas, existem regras da própria AWS (que iremos usar aqui) e também de outros diversos fabricantes. Clicando em AWS managed rule groups vai expandir as regras gerenciadas pela AWS…

Iremos selecionar as regras gratuitas da AWS chamada Core rule set, que inclui proteções para aplicações Web incluindo OWASP publications (publicações OWASP) e Amazon IP reputation list que é baseada na Amazon threat intelligence (Inteligência de Ameaças Amazon) e irá bloquear IPs associados a bots entre outras ameaças já conhecidas pela AWS.

Após selecionar as regras desejadas, basta clicar no botão Add rules no final da página.

Um ponto importante que deve ser considerado é que cada regra (Rules) tem um limite de capacidade que é de 5000 WCUs, mas usando acima de 1500 WCUs existirá um custo adicional.
O WCU é basicamente uma unidade de medida de capacidade da Web ACL, que a AWS utiliza para calcular e controlar os recursos necessários para executar as regras.
Para saber dos custos envolvidos nas regras, acesse: https://aws.amazon.com/waf/pricing/

Entendendo a regra abaixo, no nosso cenário usamos somente duas regras que utilizam uma capacidade de 725 WCUs e estaremos liberando o tráfego das requisições que o comportamento não for o esperado nas regras adicionadas na sessão Rules:

Clique no botão Next.

Após configurar as regras e seu comportamento, iremos definir a prioridade de processamento delas no WAF, quando uma requisição chegar eles serão avaliadas de cima para baixo.

No cenário da nossa Web ACL, é necessário que o WAF faça o bloqueio de qualquer IP que esteja na lista AWS-AWSManagedRulesAmazonIpReputationList, antes que ele faça a análise da regra AWS-AWSManagedRulesCommonRuleSet, com isso será alterada a ordem de processamento. Observe no vídeo abaixo:

Nessa etapa, iremos configurar o nome que as métricas serão enviadas para o CloudWatch para monitoramento, deixaremos com as opções padrão:

Ao clicar no botão Next será exibida a tela de Review (análise), onde você poderá visualizar o que foi configurado em todas as etapas da configuração da Web ACL, caso esteja de acordo, é só clicar no botão Create web ACL para criar a Web ACL.

Finalizada a criação da Web ACL, navegaremos pelo Dashboards e analisaremos o tráfego. Para popular os Dashboards, foi realizado um teste online através de sites gratuitos para gerar tráfego e conseguirmos ver o WAF em funcionamento.
Acessando a Web ACL criada, iremos selecionar a aba Traffic overview. Conforme janela abaixo:

Na primeira parte temos o resumo com a quantidade total do tráfego, o que foi liberado (allow), bloqueado (blocked) e em qual regra foi bloqueado:

Na segunda parte (Traffic characteristics), conseguimos ver a característica do tráfego que são informações importantes, tais como: o tipo do cliente, os tipos de ataques, se é tráfego de Bot ou não e o país de origem do tráfego.

Já nessa última parte, é possível ver em qual regra / grupo de regra a requisição foi categorizada.

A partir de agora, teremos mais uma camada de proteção na aplicação web.

É fundamental destacar que nessa demonstração, foram empregadas apenas duas regras. Isso se deu com o propósito de elucidar o funcionamento da solução de WAF da AWS. No entanto, ao lidar com um ambiente que envolva uma aplicação real e crítica, é imperativo realizar uma análise detalhada da aplicação. Essa análise permitirá identificar quais regras (proteções) devem ser configuradas na WebACL, garantindo uma abordagem personalizada e eficaz para a segurança do ambiente.

Abaixo, observe algumas regras que poderiam ser adicionadas a WebACL:

Espero que essa publicação possa ser uma contribuição valiosa para a comunidade da AWS, como um auxílio para quem está buscando conhecimento na área de Cloud.

Até breve!!

Upgrade RDS MySQL com Blue/Green Deployment

Veja como criar um ambiente de Blue/Green para um banco de dados RDS MySQL em produção e utilizar essa funcionalidade para upgrade do MySQL, reduzindo o downtime durante processo de upgrade de versão, possibilidade de rollback mais rápido entre outras possibilidades que irei comentar nesse post.

O Blue/Green deployment são dois ambientes, onde o ambiente Green (Ambiente de Teste) permanece sincronizado com o ambiente Blue (Ambiente de Produção) através de replicação lógica, possibilitando alterações e testes mais assertivos no ambiente Green sem afetar o banco em produção (Blue).


Vamos lá…

Para esse post, foi criado um banco de dados com a versão 8.0.28 (imagem abaixo) que será o Banco de Dados Blue e no momento da criação do Blue/Green Deployment iremos especificar a versão 8.0.32 para o Banco de dados Green com isso será possível simular um upgrade utilizando o recurso.

Com o banco de dados criado, vamos configurar o ambiente para funcionar como Blue/Green Deployment, acessando a console do RDS iremos selecionar o banco da dados e através do menu Action / Create Blue/Green Deployment iremos fazer as configurações:

Na próxima janela será configurado o Blue/Green deployment, inserindo o nome do ambiente, engine version (versão do banco de dados) e parameter group do banco de dados Green. Nesse ponto selecionamos a versão mais atual disponível.

Após selecionar as opções acima e finalizado o processo de criação do ambiente, que nessa demonstração demorou em torno de 16 minutos, será possível ver a seguinte estrutura abaixo na console do RDS:

Um ponto importante é que após a criação do Blue/Green Deployment, o endpoint de conexão continuará o mesmo, criando apenas um novo endpoint para acesso ao Banco de Dados Green. Como isso não seria necessário alterar os parametros de conexão da sua aplicação.
O banco de dados Green será um clone do banco de dados Blue, portanto, se o banco de dados Blue for MultiAZ e tiver replicas de leitura, o Green também terá essa mesma estrutura.

Com o ambiente Blue/Green criado, irei realizar o teste fazendo o “Switch over” do banco de dados Blue para o Green e com isso irei monitorar o tempo que irá demorar para fazer essa “virada”.
Para realizar o “Switch over” é muito muito simples, basta seguir os passos abaixo:

Clicando no opção Switch over irá carregar a janela abaixo com um sumário dos bancos de dados Blue e Green e também o Timeout setting onde você especificará o tempo limite para o switch over ocorrer. Caso o Switch over demore mais que o tempo especificado em Timeout setting, o procedimento não será concluido e nenhuma alteração será aplicada no ambiente.

Após clicar no botão Switch over, o processo será iniciado e a coluna status dos bancos de dados ficará conforme a image abaixo:

Após o Switch over o DB identifier dos bancos será alterado, o banco de dados que estava como Green assumirá como db-mysql1 e o banco de dados que era o Blue foi renomeado com db-mysql1-old1 como pode ser visto abaixo:

O procedimento demorou em torno de 2 minutos, nesse período toda a gravação (write) foi interrompida no banco, mas a leitura (read) continuou normalmente. Essa funcionalidade ficou sensacional! Não acham?

Aplicação em um cenário real

Imaginando um cenário em um ambiente de produção de uma empresa, onde é necessário fazer um upgrade de um banco de dados, mas com o menor tempo de indisponibilidade possível e a menor carga operacional. 
Essa funcionalidade seria uma ótima opção, pois o upgrade, testes e validações seriam realizados no banco de dados Green, finalizando essas etapas, seria necessário somente programar uma janela de manutenção para fazer o Switch over para colocar a nova versão em produção.

Observações

1 – Realizamos esses procedimentos em um banco de teste, mas em um banco de produção com maior volume gravação, o tempo para o Switch over poderá ser maior.

2 – No momento em que escrevo esse post, o Blue/Green deployment é compatível apenas com o Amazon Aurora com MySQL, RDS MariaDB e RDS MySQL…

Agora só nos resta aguardar essa funcionalidade ficar disponível para outras bancos de dados :).

Até breve!

Aplicações Web com Arquitetura Serverless na AWS

Aprenda como publicar uma Aplicação Web na internet utilizando a nuvem AWS e com uma Arquitetura 100% Serverless, imagine não se preocupar, por exemplo, em atualizações de patches do sistema operacional, pois essa parte será abstraida pela AWS o que reduz a atuação da equipe responsável pela infraestrutura e no quesito segurança, temos uma redução da superfície de ataque.

Com essa arquitetura é possível dar um foco maior na sua aplicação e não se preocupar com a administração da infraestrutura, pois utilizaremos serviços que são altamente disponíveis e administrados pela própria AWS.
Para saber mais detalhes sobre o modelo de responsabilidade compartilhada, você poderá acessar o endereço:

https://aws.amazon.com/pt/compliance/shared-responsibility-model/

Utilizaremos os seguintes serviços:


Cloud Front
S3
IAM


CI/CD


Vamos lá…

Iniciaremos com os serviços que serão a base da infraestrutura na AWS 

Criaremos um Bucket no Amazon Simple Storage Service (Amazon S3) ou comumente chamado de S3 para armazenar os arquivos do Web Site, esse é um serviço de Storage na Nuvem da AWS para o armazenamento de objetos onde teremos escalabilidade, alta disponibilidade dos dados, segurança e performance.

S3 – Criação do Bucket

Na tela do Amazon S3, clique no botão laranja Create bucket:

Iremos criar um bucket S3 com as configurações padrões, ativando somente a opção ACLs enabled no Object Ownership e a criptografia padrão conforme as imagens abaixo:

CloudFront – Criar o distribution ID

Agora vamos para o Cloud Front que terá a função de disponibilizar o nosso site para o mundo, pois ele fará a entrega do conteúdo da aplicação.

O Cloud Front é uma CDN (Content Delivery Network) da AWS para entrega de conteúdo com alta velocidade e baixa latência devido a sua quantidade de (PoPs) Pontos de Presença espalhados pelo mundo.  
Mais detalhes sobre esse serviço aqui: https://aws.amazon.com/pt/cloudfront/

Precisaremos criar um Distribution, ao acessar a página do Cloud Front, clique no botão laranja Create distribution:

Ao clicar no botão Create distribution você será direcionado para a página de criação, no primeiro bloco iremos inserir as configurações de Origin, selecionando o bucket que foi criado, a opção Origin access é exibida com algumas opções que iremos configurar conforme as imagens abaixo, visando maior sergurança e performance:

Na etapa de configuração do cache, no Default cache behavior e Cache key and origin requests deixaremos as configurações padrão:

No bloco Function associations, deixaremos o padrão (imagem abaixo), pois não utilizaremos essas configurações nessa demonstração.

Em Settings, podemos configurar a opção de performance, WAF (Web Application Firewall), nome de domínios (CNAME), certificado e versão do HTTP.

Para essa demonstração específica configuraremos o Default root object como index.html, mas dependendo de como a sua aplicação foi construída, pode não ser necessário informar o index.html.

Finalizado a infraestrutura base, seguiremos para o deploy da aplicação…

Deploy da Aplicação

Simularemos uma esteira de CI/CD utilizando o Gitlab para realizar os ajustes na infraestrutura base que criamos anteriormente e o deploy da aplicação (Web Site). O intuito é automatizar esse processo e ganhar agilidade nos deploys.

Obs.: É importante lembrar que as etapas demonstradas a partir desse momento, podem ser realizadas manualmente, desde o upload dos arquivos para o S3 até os ajustes no Cloud Front.

Crie um novo projeto no Gitlab e insira as variáveis (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY e AWS_DEFAULT_REGION) para que o Gitlab tenha acesso ao nosso ambiente AWS e consigar realizar o deploy da aplicação (Web Site) conforme imagem abaixo:

Esse projeto possui uma aplicação web simples para essa demonstração, mas também é possível utilizar a mesma infraestrutura com aplicações em Node.js, React, entre outras, utilizando o arquivo serverless.yml que deixarei disponível nesse projeto.
Iremos focar nos arquivos destacados em vermelho na imagem abaixo:

Na pasta www estão os arquivos que serão enviados para o Bucket S3.
No arquivo .gitlab-ci.yml definimos as ações que serão tomadas, a ordem de execução, em qual condição e os recursos necessários.
Segue abaixo os comandos básicos necessários para fazer o download do projeto para a sua máquina e enviar as alterações para o Gitlab:

# 1- Clonar o projeto com o comando abaixo:
git clone git@gitlab.com:devops-breno/serverless_website.git
# 2 - Faça as alterações necessárias no projeto e envie para o repositório executando os comandos abaixo:
git add .
git commit -m "Novo WebSite Estático"
git origin push main

Após executar os comandos, você poderá acompanhar a execução do Job no menu CI/CD / Jobs, se tiver sucesso no deploy, você irá visualizar uma tela conforme imagem abaixo:

Recebendo a mensagem Job succeeded, o deploy foi realizado com sucesso e você poderá acessar o endereço do Cloud Front para teste conforme abaixo:

Acessando o endereço, será possível acessar a página de exemplo com a arquitetura serverless do ambiente:

Pronto! Agora temos uma Aplicação Web 100% Serverless na AWS.
O link abaixo é referente ao site publicado nesse post:

https://d2uhz4c1bwszas.cloudfront.net

Link para download do projeto utilizado:
https://github.com/BrenoACarvalho/ServerlessWebSite

Até breve! 🙂

Automatizando os backups de Instâncias EC2 com o AWS Backup

Mesmo utilizando os recursos computacionais da nuvem AWS que são altamente disponíveis, a responsabilidade dos Backups será de responsabilidade do proprietário da conta. Para maiores informações sobre o Modelo de Responsabilidade Compartilhada basta conferir no link a seguir:

https://aws.amazon.com/pt/compliance/shared-responsibility-model/

Nesse post buscarei demonstrar como automatizar os backups de instâncias EC2 utilizando o AWS Backup. Com esse serviço é possível realizar o backup também dos serviços Amazon RDS, DynamoDB, EFS, FSx entre outros. Um ponto importante é que o AWS Backup está em conformidade com a PCI e a ISO e está qualificado pela HIPAA.

Então vamos lá!

Ao acessar a console do AWS Backup, uma janela similar a imagem abaixo irá aparecer:

Para que o backup funcione será necessário criar o Backup Vault, nesse cofre (Vault) serão armazenados os backups.

Uma boa prática é criar o Backup Vault referenciando ao tipo do backup, nesse caso o nome do Vault foi Backup_Semanal, pois ele será criado para armazenar os backups semanais, maiores detalhes na imagem a seguir.

Após a criação do Backup Vault, criamos o Plano de Backup (Backup Plan), também como boa prática, colocamos o nome do Backup Plan igual ao nome do Backup Vault para facilitar a identificação.

Clicando no botão Create Backup plan, a janela abaixo será carregada (Detalhes nas imagens):

Após a criação do Backup Plan, precisaremos definir o Resource assignments, no momento da criação iremos definir uma Tag e quando ela for especificada na Instância EC2, o Backup será realizado de acordo com o plano criado anteriormente (Backup Plan).

Na janela Assign resources, podemos escolher os recursos de acordo com o tipo/ID ou especificando a TAG.

Outra opção é definir uma TAG selecionando no campo Assign by a opção Tags e definindo os valores Key e Value conforme imagem abaixo. Iremos seguir utilizando as Tags conforme especificado na próxima imagem.

Com a Key = Backup e a Value = Semanal, temos o serviço configurado e pronto para realizar os backups de Instâncias EC2.

Foi anunciado recentemente o AWS Backup Audit Manager que permite auditar e relatar a conformidade das políticas de proteção de dados, possibilitando um melhor controle das atividades de backup e geração de relatórios.

Então é isso, espero ter ilustrado bem esse passo a passo de realização do Backup.

Até Breve!

Usando AWS System Manager para In-place Upgrade de Instâncias EC2 Windows

Nesse post irei demonstrar o procedimento de in-place upgrade na Nuvem AWS, onde através do AWS System Manager, usando automation document iremos atualizar a versão do Windows sem remover as aplicações instaladas, ou seja, não teremos a necessidade de fazer uma nova instalação do Windows e migrar as aplicações manualmente. Além disso, esse upgrade ajudará a mitigar os riscos de segurança e compliance do seu ambiente possibilitando uso de versões mais atuais do Sistema Operacional e poderá reduzir o tempo necessário para a migração para uma nova versão do Windows Server.

Os caminhos suportados para atualização (DE-PARA), são os seguintes:
Windows Server 2008 R2 para Windows Server 2012 R2.
Windows Server 2012 R2 para Windows Server 2016.
Windows Server 2012 R2 para Windows Server 2019.
Windows Server 2016 para Windows Server 2019.

Inicialmente, iremos aos pré-requisitos necessários para a atualização:
– É recomendado ter 20 GB de espaço no disco de boot;
– Agent SSM instalado na EC2 que será atualizada: https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html
– Esse Automation funciona somente em instâncias com o EBS Volume Root não encriptado. Instâncias com EBS encriptado, o Automation irá falhar;
– Esse Automation funciona somente nas instâncias com as versões Windows Server 2008 R2, 2012 R2 e 2016 edições Standard e Datacenter.

Limitações:
Esse Automation não dará suporte ao upgrade de Domain Controllers, Clusters ou Sistemas Operacionais Windows de desktop. Também não são suportados instâncias com as seguintes Windows Server Roles:

– Remote Desktop Session Host (RDSH)
– Remote Desktop Connection Broker (RDCB)
– Remote Desktop Virtualization Host (RDVH)
– Remote Desktop Web Access (RDWA)

Referências:
https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeWindows.html

Cenário:
Na demonstração abaixo, estou realizando o upgrade de uma Instância EC2 com Windows Server 2012 R2 com IIS para o Windows Server 2019 mantendo todas as aplicações instaladas. Foi criada uma página simples em HTML no IIS para validação do funcionamento da aplicação após o upgrade.

Para que o upgrade funcione, precisaremos dar permissão para que o AWS System Manager consiga executar o upgrade na Instância EC2. Com isso, a nossa primeira etapa será criar uma Role no IAM com as devidas permissões. Então vamos lá!

Acessando a console do IAM, clique na opção Role do menu lateral e depois no botão Create role, conforme imagem abaixo:

Na tela abaixo, selecione EC2 e clique no botão Next: Permissions.

A seguir, iremos dar um “Attach” na policy AmazonEC2RoleforSSM para que o AWS System Manager tenha as permissões necessárias para executar o procedimento de upgrade.

Na etapa abaixo, você poderá especificar as Tags. Mas para essa demonstração não utilizei Tags.

Para a etapa final, colocaremos um nome para a Role.

Ao clicar no botão Create role irá aparecer a mensagem seguinte, informando que a Role foi criada com sucesso. Anote o nome da Role, pois iremos utilizá-la na etapa de execução do Automation Document.

Com a Role criada e suas devidas permissões, vamos para o que interessa. Iremos acessar o AWS System Manager e utilizar o recurso de Automation. Na tela do System Manager iremos clicar na opção Automation, no Menu lateral e depois no botão Execute automation conforme a descrição da imagem abaixo:

Será carregado uma tela onde você poderá pesquisar e selecionar o Document desejado. Para esse post iremos utilizar o AWSEC2-CloneInstanceAndUpgradeWindows, basta você digitar uma pequena parte do nome conforme a imagem abaixo:

Após pesquisar o nome do Document, você deverá selecionar o Document AWSEC2-CloneInstanceAndUpgradeWindows e clicar no botão Next conforme as imagens abaixo:

Na próxima etapa, iremos configurar o parâmetros para execução do Automation Document:

Nas imagens abaixo, definimos os parâmetros para a execução do Automation, inserindo o ID da Instância que será atualizada, a Role do IAM que criamos, versão do Windows que queremos que a Instância seja atualizada e a subnet onde o processo de atualização será executado. É recomendando utilizar uma subnet para o Automation, diferente da subnet onde está a Instância que será atualizada. A subnet utilizada deverá ter ainda, conexão de saída para os serviços AWS, S3 e Microsoft para download de patches (Windows Update).
Após inserir os parâmetros e clicar no botão Execute o processo de in-place upgrade será iniciado:

Com o Automation em execução, podemos acompanhar com detalhes todas as etapas do procedimento de upgrade conforme as imagens:

Esse procedimento poderá levar algumas horas para finalizar e durante a execução do procedimento, podemos verificar algumas modificações no ambiente. Na execução foi criada uma instância para a realização do procedimento de upgrade e executado o terminate da mesma, após o término do procedimento conforme as imagens:

Como pode ser visto na próxima imagem, o Automation criou uma AMI da Instância original e uma AMI de “pre-upgrade” para instalação dos drives e updates necessários.

Após o término do procedimento de upgrade, será criada uma AMI da sua instância atualizada com o Windows Server 2019 com o nome similar ao da imagem:

Após dar um Launch na AMI atualizada com Windows Server 2019, foi possível acessar a página web publicada no IIS, que havia sido criada ainda na Instância com o Windows Server 2012 .

Com isso podemos concluir que esse documento do AWS System Manager Automation pode ser útil para que você possa atualizar o seu ambiente de Instâncias EC2 Windows, minimizando os riscos de segurança e compliance.

Espero que esse post possa contribuir/auxiliar a comunidade de Cloud AWS.

Até breve!!!

Migração para AWS com Cloud Endure

Olá!!
Se essa é a sua primeira vez por aqui, eu sugiro que você leia o post anterior, sobre Migração para a Nuvem, no seguinte link: https://brenocarvalho.cloud/2020/07/04/migracao-para-nuvem/ ou através da barra lateral do site.


Irei demonstrar nesse post, como é possível migrar os seus servidores para o ambiente da AWS através do Cloud Endure.

Então, vamos lá! Mas, primeiramente faremos o nosso registro para obter a licença para a utilização gratuita.

Ao clicar no botão, Obtenha licenças gratuitas do Cloud Endure Migration, irá carregar a página de registro conforme abaixo:

Após o preenchimento dos seus dados, você irá receber um e-mail similar ao e-mail abaixo, para confirmação do seu cadastro.

Após clicar no link, confirm your account request, irá carregar a página abaixo, informando que sua conta está ativada.

Após efetuar o logon, você deverá criar o seu projeto para que possa sincronizar às máquinas que deseja migrar para a AWS.

Com o projeto criado, agora iremos configurar o Cloud Endure para que ele possa acessar a sua conta da AWS, para onde serão migrados os servidores, nessa etapa serão necessárias algumas permissões para que o Cloud Endure funcione, veja abaixo:

Após a configuração das chaves, iremos realizar a configuração de replicação, nesse lab, configurei o Replication Settings conforme abaixo e o restante das configurações eu deixei padrão (Default):

Ao clicar em SHOW ME HOW, serão carregadas as informações para a instalação dos agentes nas máquinas Windows e Linux:

Instalação Servidores Windows:
Vamos iniciar demostrando a instalação em servidores Windows, após fazer o download do Agent através do link https://console.cloudendure.com/installer_win.exe copiei o arquivo para a pasta C:\Temp\, executei a linha de comando, conforme a imagem anterior para a instalação em Servidores Windows:

Instalação Servidores Linux:
Na imagem abaixo, o primeiro comando é para fazer o download do instalador do Agent, e o segundo é o comando de instalação.

Após a instalação do Agent, será possível visualizar na console do Cloud Endure que a replicação do máquina foi iniciada:

Enquanto a replicação é realizada, devemos configurar o Blue Print onde iremos informar as configurações da máquina, tais como, tipo de instância, subnet, security group e etc. Nesse post, configurei da seguinte forma, veja abaixo:

Após a replicação, as máquinas que estiverem prontas para serem migradas estarão com o status conforme a imagem:

Iremos realizar o teste clicando em LAUNCH TARGET MACHINES, depois em Test Mode e no botão Continue.
Obs.: Para esse demonstração usei somente o Test Mode.

O progresso do deploy de teste, pode ser acompanhado clicando na Guia Job Progress, conforme exemplo abaixo:

Na imagem a seguir, podemos visualizar o servidor que foi migrado funcionando como uma Instância EC2:

O procedimento para servidores Linux e Windows são os mesmos.

Podemos utilizar o Cloud Endure Migration para migrar os seguintes sistemas, Windows Server versões 2003/2008/2012/2016/2019 e distribuições Linux, como CentOS, RHEL, OEL, SUSE, Ubuntu e Debian. O CloudEndure Migration oferece suporte a bancos de dados comuns, tais como, Oracle e SQL Server, além de aplicativos de missão crítica, como o SAP.

Até breve!!

Migração para a Nuvem

No atual contexto em que vivemos, das constantes e aceleradas mudanças, para continuar crescendo nessa era digital e nos prepararmos para as próximas revoluções pós-digitais e as transformações necessárias para a continuidade dos negócios, uma tecnologia importante e necessária para ajudar nesse crescimento é a utilização da nuvem (Cloud Computing). Migrando seus workloads para Nuvem possibilitará que as empresas façam um maior investimento em dados e também em infraestrutura social ao invés do investimento em infraestrutura de TI dentro da empresa (on-premises).

Conforme estudo da IDC #US43535718, Fostering Business and Organizational Transformation to Generate Business Value com Amazon Web Services foram levantados os seguintes dados:

Podemos ter até 31% de economia média de custos com infraestrutura em comparação ao ambiente on premises*.

Ocorreram 7x menos horas de inatividade em 2018 em comparação ao próximo maior provedor de serviços de nuvem*

62% mais eficiente em termos de gerenciamento da infraestrutura de TI em comparações a soluções no local*

A adoção da nuvem nas empresas passa por uma ampla mudança, que impacta a cultura, processos e tecnologias da TI. Mas a boa notícia é que existem boas práticas e frameworks para ajudar nessa transição. Uma ferramenta que pode ajudar no processo de preparação para adoção da Nuvem AWS e a elaboração do plano de migração seria o CART:
https://cloudreadiness.amazonaws.com/
O CART é uma ferramenta que irá guiar a sua empresa na sua jornada para a nuvem de acordo com as diretrizes do CAF – Cloud Adoption Framework.

Mas então vamos lá, falando da parte técnica:
A migração para a nuvem AWS deixou de ser complexa com a sua solução de Cloud Migration, o Cloud Endure Migration reduz os custos da migração, pois simplifica e acelera os procedimentos necessários para a migração de uma infraestrutura física, virtual ou baseada em nuvem, transformando um processo complexo em um processo simples e rápido.
Em poucos minutos você pode configurar a solução e estará pronto para migrar seu primeiro workload.

No próximo post, irei mostrar como configurar e migrar seus servidores do ambiente On-Premises para Nuvem AWS utilizando as soluções Cloud Endure Migration.
Veja no link abaixo:

Outra opção é utilizar AWS Server Migration Service. Post em breve!

Até breve!

Desktop como Serviço (DaaS) na AWS

Como as empresas podem alcançar a assertividade do trabalho nesse momento de crise, através da solução de Desktop como Serviço (DaaS) na nuvem da AWS Amazon Workspaces, proporcionando o trabalho “Home Office” utilizando os seus dispositivos pessoais.

O cenário atual gerou, e ainda gera, bastante desconforto, pois com a necessidade do isolamento social, muitas empresas se perguntam como dar continuidade aos seus negócios, quando seus colaboradores precisam trabalhar de forma remota. Com a necessidade desse trabalho, existem os desafios de garantir a segurança da informação e o padrão das aplicações corporativas.

Pensando nisso, vimos a necessidade de adotarmos a utilização da solução Amazon WorkSpaces, devido aos seus benefícios e sua rápida implantação. Segue abaixo, o passo a passo do procedimento de implantação.

Após acessar a console do Workspaces e clicar no botão Get Started Now, seguimos as configurações com base no Advanced Setup, devido ao maior controle das configurações que serão aplicadas no ambiente.

Na próxima etapa, foi configurado um serviço de diretório (Active Directory) conforme abaixo:
AWS Managed Microsoft AD – Selecionando essa opção, a AWS irá configurar dois servidores Windows Server como Controlador de Domínio na sua VPC, configurados em diferentes zonas de disponibilidade (AZ) em uma região de sua escolha para alta disponibilidade. Todo o monitoramento e a recuperação de host, a replicação de dados, os snapshots e as atualizações de software são configurados e automaticamente gerenciados pela AWS.

Simple AD – É um serviço de diretório compatível com Linux Samba Active Directory. Existem dois tamanhos, o pequeno que oferece suporte até 500 usuários e o grande com suporte até 5000 usuários. Nas duas opções existem limitações de objetos no diretório.

AD Connector – Essa é a opção utilizada e que será descrita nesse post, o AD Connector é um proxy que redireciona solicitações de usuários para o seu Microsoft Active Directory atual sem armazenar informações de cache na nuvem. Ele é fornecido em dois tamanhos.

Na próxima etapa, selecionei a VPC desejada e duas subnets em AZ diferentes para alta disponibilidade.

Na próxima etapa, iremos conectar ao AD fornecendo as informações do Active Directory:

Após inserirmos os dados do domínio e DNS, será necessária uma conta com acesso ao AD para leitura dos dados do diretório. Essa conta não precisa de privilégios administrativos (admin).

Na próxima tela, você poderá revisar as configurações realizadas e criar o diretório caso esteja de acordo. Criando o diretório, será possível criar os Workspaces que você desejar nas etapas a seguir.

1 – Selecionando o domínio:

2 – Procurando/selecionando o usuário no domínio:

3 – Selecionando o usuário e/ou usuários, na próxima etapa, você deverá selecionar o Bundle que é o seu pacote de configuração. Para esse exemplo, utilizamos o Standard with Windows 10.

Obs.: Existe a possibilidade de criar uma imagem personalizada com os softwares que você desejar e com base nessa imagem criar um novo Bundle, também já existem Bundles com o Pacote Office

4 – Nessa etapa você irá configurar o Running Mode:

Obs.: No mode AlwaysOn a sua cobrança será um valor fixo mensal, no modo AutoStop que estamos utilizando, será cobrado um pequeno valor mensal + um valor por hora.

Mais detalhes sobre essa cobrança, fiquem a vontade para entrar em contato comigo ou consultem o site da AWS: https://aws.amazon.com/workspaces/pricing/

Nessa tela, também é possível criptografar os volumes usando KMS. Não utilizamos essa opção nesse exemplo e isso seria tema para um outro post.

5 – Nessa etapa será possível revisar as configurações e dar um Launch no Workspaces:

Após clicar no botão Launch Workspaces, o mesmo estará disponível para utilização em torno de 20 minutos.

Quando o mesmo estiver com o Status de Available, você poderá selecionar o Workspace e clicar no botão Actions e selecionar a opção Invite User, irá abrir uma tela similar a imagem abaixo:

Com isso, basta seguir as instruções, fazendo o download do WorkSpaces Client, inserindo o registration code, no primeiro acesso e fazer o Logon com o seu usuário registrado para o WorkSpaces. Pronto! Fazendo isso, em alguns instantes o seu WorkSpaces irá carregar e você estará pronto para utilizar.

Desktop do WorkSpace após o logon.
Amazon WorkSpaces Architectural Diagram
Arquitetura do WorkSpaces
Referência da Imagem: https://docs.aws.amazon.com/workspaces/latest/adminguide/images/architectural_diagram-new.png

A solução vem garantindo a assertividade e se mostrando um recurso essencial para o momento enfrentado. Até breve!

Breno Carvalho