Python App Migration from On-Premises to AWS Using EC2 and RDS Services

Raphael Suárez
5 min readOct 18, 2023

--

This text is written in English, Spanish and Portuguese | Este texto está escrito em inglês, espanhol e português.

#EN

In another project based on a real scenario, acting as a Cloud Specialist, I carried out workload migration
According to planning, the application and its database were migrated to AWS using the Lift & Shift (rehost) model, moving both the application and database data.

When migrating from on-premise to cloud, it is necessary to follow fundamental steps to achieve success.

  • Planning (sizing, prerequisites, resource naming).
    - Execution (resource provisioning, best practices).
    - Go-live (validation test — Dry-run, final migration — Cutover).
    - Post Go-live (guarantee the operation of the application and user access).

It is worth highlighting that important aspects of migrating to the cloud, such as scalability, cost reduction, flexibility in resource management, increased security and productivity,
reducing the use of physical space, assertiveness in decisions, and time optimization were put into practice.

Respecting the steps and aspects mentioned above, planning was carried out and the needs of the application were identified, such as processing, memory, storage, network, libraries, framworks and everything necessary for this workload to function optimally in the cloud.

After planning, the entire cloud environment was created, such as provisioning of EC2 resources, RDS, Network, Routes, Security Rules, installing patches, updating the operating system, installing and configuring Python and MySQL database, and everything necessary for the perfect functioning of the app.
App installed, configured and ready for the next step.

In go-live, all necessary tests were carried out in the cloud environment, workload was migrated and tests were carried out successfully on the app.

All procedures to ensure operation were updated, support teams were attentive to monitoring and workloads were migrated and running normally.

This project shows the importance of following the migration steps, making the migration process from on-premises to the cloud much more efficient. The model adopted, rehost, helped us to make a quick migration as it was not necessary to recreate and/or improve this app, as there was no need in this case.
It is important to highlight that best security practices were adopted throughout the migration process, thus reducing costs, adding value to the business and making the end user experience more fluid and secure.

#ES

En otro proyecto basado en un escenario real, actuando como Cloud Specialist, realicé la migración de cargas de trabajo.
Según la planificación, la aplicación y su base de datos se migraron a AWS utilizando el modelo Lift & Shift (rehost), moviendo tanto los datos de la aplicación como de la base de datos.

Al migrar del sistema on-premise a la nube, es necesario seguir pasos fundamentales para lograr el éxito.

- Planificación (dimensionamiento, prerrequisitos, denominación de recursos).
- Ejecución (aprovisionamiento de recursos, mejores prácticas).
- Go-live (prueba de validación — Dry-run, migración final — Cutover).
- Post Go-live (garantizar el funcionamiento de la aplicación y el acceso de los usuarios).

Cabe destacar que aspectos importantes de la migración a la nube, como la escalabilidad, la reducción de costos, la flexibilidad en la gestión de recursos, el aumento de la seguridad y la productividad,
Se pusieron en práctica la reducción del uso del espacio físico, la asertividad en las decisiones y la optimización del tiempo.

Respetando los pasos y aspectos mencionados anteriormente, se realizó una planificación y se identificaron las necesidades de la aplicación, como procesamiento, memoria, almacenamiento, red, bibliotecas, frameworks y todo lo necesario para que esta carga de trabajo funcione de manera óptima en la nube.

Luego de la planificación se creó todo el entorno de la nube, como aprovisionamiento de recursos EC2, RDS, Red, Rutas, Reglas de Seguridad, instalación de parches, actualización del sistema operativo, instalación y configuración de base de datos Python y MySQL, y todo lo necesario para el perfecto funcionamiento de la aplicación.
Aplicación instalada, configurada y lista para el siguiente paso.

En la puesta en marcha, se llevaron a cabo todas las pruebas necesarias en el entorno de la nube, se migró la carga de trabajo y las pruebas se realizaron con éxito en la aplicación.

Se actualizaron todos los procedimientos para garantizar la operación, los equipos de soporte estuvieron atentos al monitoreo y las cargas de trabajo se migraron y se ejecutaron con normalidad.

Este proyecto muestra la importancia de seguir los pasos de migración, haciendo mucho más eficiente el proceso de migración del entorno local a la nube. El modelo adoptado, rehost, nos ayudó a realizar una migración rápida ya que no era necesario recrear y/o mejorar esta aplicación, como en este caso no era necesario.
Es importante resaltar que se adoptaron mejores prácticas de seguridad durante todo el proceso de migración, reduciendo costos, agregando valor al negocio y haciendo más fluida y segura la experiencia del usuario final.

#PT

Em outro projeto baseado em um cenário real, atuando como Especialista Cloud, realizei a migração de workload
Conforme planejamento, a aplicação e seu banco de dados foram migrados para AWS usando o modelo Lift & Shift (rehost), movendo tanto os dados da aplicação como do banco de dados.

Na migração de on-premesis para cloud é necessário seguir etapas fundamentais para obtenção de sucesso.

- Planejamento (sizing, pré-requisitos, nomenclatura dos recursos).
- Execução (provisionamento dos recursos, melhores práticas).
- Go-live (teste de validação — Dry-run, migração final — Cutover).
- Pós Go-live (garantir o funcionamento da aplicação e acesso dos usuários).

Vale ressaltar que aspectos importantes da migração para nuvem, como escalabilidade, redução de custos, flexibilidade no gerenciamento de recursos, aumento da segurança e produtividade,
diminuição do uso de espaço físico, assertividade nas decisões, otimização de tempo foram colocados em prática.

Respeitando as etapas e aspectos mencionados acima, foi feito um planejamento e identificada as necessidades da aplicação, como processamento, memória, storage, rede, bibliotecas, framworks e tudo que era necessário para que este workload funcionasse de forma otimizada na cloud.

Após o planejamento foi criado todo o ambiente cloud, como provisionamento de recursos EC2, RDS, Network, Rotas, Regras de Segurança, instalação de patchs, atualização de sistema operacional, instalação e configuração do Python e database MySQL, e tudo aquilo necessário para o perfeito funcionamento da app.
App instalada, configurada e pronta para a próxima etapa.

No go-live foram executados todos os testes necessários no ambiente cloud, workload migrado e testes realizados com sucesso na app.

Todos os procedimentos para garantir o funcionamento foram atualizados, equipes de suporte atentos na monitoração e workloads migrado e rodando normalmente.

Este projeto mostra a importância de seguir as etapas de migração, tornando o processo de migração do on-premesis para cloud muito mais eficiente. O modelo adotado, rehost, nos ajudou a fazer uma migração rápida já que não foi necessário recriar e/ou aprimorar esta app, pois não havia necessidade para este caso.
É importante salientar que a as melhores práticas de segurança foram adotadas em todo o processo de migração, desta forma, reduzindo custos, agregando valor ao negócio e tornando a experiência do usuário final mais fluida e segura.

--

--

Raphael Suárez

Cloud Infrastructure Analyst | DevOps | GCP | Azure | OCI | AWS | ITIL