Construye una AWS landing zone que incluya MongoDB Atlas - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Construye una AWS landing zone que incluya MongoDB Atlas

Igor Alekseev, Amazon Web Services

Resumen

Este patrón describe cómo construir una zona de AWS landing que esté integrada con un clúster de MongoDB Atlas. La infraestructura se implementa automáticamente mediante un script de Terraform.

Un AWS entorno multicuenta bien estructurado, denominado landing zone, ofrece escalabilidad y seguridad, especialmente para las empresas. Sirve de base para el despliegue rápido de cargas de trabajo y aplicaciones, y ayuda a garantizar la confianza en la seguridad y la infraestructura. La creación de una landing zone requiere una consideración cuidadosa de los factores técnicos y comerciales, incluida la estructura de la cuenta, las redes, la seguridad y la administración del acceso. Estas consideraciones deben estar alineadas con los objetivos empresariales y de crecimiento futuro de su organización.

Los casos de uso de este patrón incluyen los siguientes.

  • Plataformas SaaS y PaaS empresariales: las aplicaciones de software como servicio (SaaS) multiusuario y las plataformas de plataforma como servicio (PaaS) que se ejecutan AWS pueden utilizar esta configuración para ayudar a proporcionar un acceso seguro y privado a MongoDB Atlas sin exponer los datos a través de la Internet pública.

  • Sectores altamente regulados: las cargas de trabajo bancarias, de servicios financieros, sanitarias y gubernamentales que requieren el estricto cumplimiento de normas como la Ley de Portabilidad y Responsabilidad de los Seguros Médicos (HIPAA), el Estándar de Seguridad de Datos de la Industria de Tarjetas de Pago (PCI DSS), los Controles de Sistemas y Organizaciones (2) y el Reglamento General de Protección de Datos (GDPRSOC2) se benefician de:

    • La conectividad privada y cifrada mediante AWS PrivateLink

    • Alta disponibilidad de conjuntos de réplicas de MongoDB en zonas de disponibilidad múltiples

  • AI/ML Cargas de trabajo seguras: las canalizaciones de entrenamiento o inferencia en Amazon Bedrock, SageMaker Amazon AI o modelos de IA personalizados pueden recuperar y almacenar datos de forma segura en MongoDB Atlas over. PrivateLink

  • Recuperación ante desastres y continuidad empresarial: el diseño Multi-AZ garantiza que ninguna falla en una sola zona de disponibilidad interrumpa las cargas de trabajo. Una réplica de Atlas distribuida en todas las zonas de disponibilidad garantiza la conmutación por error automática. Esto es fundamental para los servicios permanentes, como las aplicaciones de tecnología financiera (fintech), la banca digital o el monitoreo de la atención médica.

Requisitos previos y limitaciones

Requisitos previos 

  • El propietario de la organización tiene acceso a MongoDB Atlas para que pueda crear claves de API de Atlas. Para obtener información sobre este requisito, consulte Administrar el acceso a la organización en la documentación de MongoDB.

  • Un activo. Cuenta de AWS

  • Terraform, instalado y configurado.

  • Un clúster de MongoDB Atlas, creado con MongoDB versión 6.0 o posterior.

  • Familiaridad con MongoDB y MongoDB Atlas. Para obtener más información, consulte la documentación de MongoDB Atlas.

Limitaciones

Arquitectura

El siguiente diagrama de arquitectura de referencia ilustra la configuración de despliegue de una AWS landing zone que está integrada con un punto final privado de MongoDB Atlas. Esta arquitectura de referencia demuestra cómo establecer una zona de AWS aterrizaje segura, escalable y de alta disponibilidad integrada con MongoDB Atlas. Al combinar las AWS mejores prácticas, como el despliegue en zonas de disponibilidad múltiples, los controles de seguridad con privilegios mínimos y la conectividad privada, este diseño permite a las organizaciones proporcionar un entorno sólido para las aplicaciones modernas.

Arquitectura Multi-AZ para AWS landing zone integrada con MongoDB Atlas.

Esta arquitectura se compone de lo siguiente:

VPC

  • Una única nube privada virtual (VPC) abarca tres zonas de disponibilidad.

  • La VPC se subdivide en subredes alineadas con cada zona de disponibilidad. Estas subredes distribuyen las cargas de trabajo para lograr una alta disponibilidad.

Acceso a Internet

  • Una puerta de enlace a Internet proporciona conectividad a Internet saliente para los recursos que la necesitan, como los hosts de aplicaciones o bastiones.

  • Las subredes públicas pueden albergar pasarelas NAT, que permiten que las cargas de trabajo de las subredes privadas descarguen actualizaciones, parches y otros paquetes necesarios sin exponerlos directamente a la Internet pública.

Subredes privadas y tablas de enrutamiento

  • Los componentes de la aplicación, los microservicios u otros recursos confidenciales suelen residir en subredes privadas.

  • Las tablas de rutas dedicadas controlan los flujos de tráfico. Las rutas dirigen el tráfico saliente desde las subredes privadas a las puertas de enlace NAT para un acceso seguro a Internet solo desde la salida.

  • Las solicitudes entrantes de Internet fluyen a través de balanceadores de carga elásticos o hosts bastión (si se utilizan) en subredes públicas y, a continuación, se enrutan adecuadamente a los recursos de subredes privadas.

Conectividad con MongoDB Atlas a través de PrivateLink

  • La arquitectura utiliza PrivateLink (a través de un punto final de VPC) conectarse de forma segura a MongoDB Atlas sin exponer sus datos a la Internet pública.

  • Las solicitudes permanecen en la red troncal AWS . Los datos en tránsito se benefician del PrivateLink cifrado y nunca se enrutan a través de la Internet pública.

  • La VPC dedicada de MongoDB Atlas aloja sus nodos principal y secundario y proporciona un entorno seguro y aislado para su clúster de base de datos gestionado.

Multi-AZ deployment (Implementación Multi-AZ)

  • Los componentes críticos de la infraestructura (como las puertas de enlace NAT y las subredes de aplicaciones) se distribuyen en al menos tres zonas de disponibilidad. Si una zona de disponibilidad sufre una interrupción, esta arquitectura garantiza que las cargas de trabajo de las zonas de disponibilidad restantes permanezcan operativas.

  • MongoDB Atlas, de forma predeterminada, ofrece alta disponibilidad a través de conjuntos de réplicas y garantiza que la capa de base de datos siga siendo tolerante a errores. La infraestructura crítica se distribuye en al menos tres zonas de disponibilidad para garantizar su resiliencia.

Herramientas

Servicios de AWS

  • AWS Secrets Managerle ayuda a sustituir las credenciales codificadas en su código, incluidas las contraseñas, por una llamada a la API para recuperar el secreto mediante programación.

Otros productos y herramientas

  • MongoDB Atlas es una base de datos como servicio (DBaaS) totalmente gestionada para implementar y gestionar bases de datos MongoDB en la nube.

  • Terraform es una herramienta de infraestructura como código (IaC) HashiCorp que le ayuda a crear y administrar recursos locales y en la nube. En este patrón, se utiliza Terraform para ejecutar un script que facilite el despliegue de los recursos necesarios en AWS MongoDB Atlas.

Repositorio de código

El código de este patrón está disponible en el repositorio Atlas AWS Landing Zone y en MongoDB. GitHub

Epics

TareaDescripciónHabilidades requeridas

Identifique a las partes interesadas principales.

Identifica a todas las partes interesadas clave y a los miembros del equipo que participan en tu proyecto de landing zone. Esto podría incluir funciones como las siguientes:

  • Administradores de bases de datos (DBAs)

  • DevOps ingenieros

  • desarrolladores de aplicaciones

  • Arquitectos de aplicaciones

Líder de migración

Cree un plano estructural.

Cree un plano que describa la estructura deseada de su landing zone AWS y de la que dispone de MongoDB Atlas.

Líder de migración

Cree un plan de arquitectura.

Trabaje con los arquitectos de sus aplicaciones para analizar los requisitos y diseñar una arquitectura resiliente y tolerante a los fallos. Este patrón proporciona una plantilla de arquitectura inicial para su referencia. Puede personalizar esta plantilla para que se adapte a las necesidades de seguridad e infraestructura de su organización.

Arquitecto de la nube

Planifique la configuración y el despliegue.

Determine, con todas las partes interesadas, cómo se implementará la arquitectura, cómo se implementarán las medidas de seguridad y cualquier otro aspecto para garantizar que se alinee con los intereses de la organización y del equipo solicitante.

Líder de migración, DevOps ingeniero y administrador de bases de datos
TareaDescripciónHabilidades requeridas

Clonar el repositorio.

Clona el código del GitHub repositorio ejecutando el comando:

git clone https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone
Desarrollador de aplicaciones, DevOps ingeniero

Obtenga el ID de su organización de Atlas.

  1. Si no tiene una cuenta de MongoDB Atlas, regístrese para obtener una.

  2. Siga los pasos de la documentación de MongoDB para crear una organización.

  3. Copia el ID de la organización.

Administrador de base de datos

Genere claves de API a nivel de organización de Atlas.

Para generar las claves de API a nivel de organización en Atlas, siga las instrucciones de la documentación de MongoDB.

Administrador de base de datos

Cree una entrada secreta. AWS Secrets Manager

Guarde las claves de la API de MongoDB Atlas generadas en el paso anterior como un secreto clave-valor en Secrets Manager. Para obtener instrucciones, consulte la documentación de Secretes Manager.

DevOps ingeniero

Seleccione el nivel de clúster de Atlas.

Para seleccionar el nivel de clúster de Atlas correcto, siga las instrucciones de la documentación de MongoDB.

Administrador de base de datos
TareaDescripciónHabilidades requeridas

Modifique el script de Terraform.

En tu copia local del GitHub repositorio, actualiza el nombre secreto en el modules/mongodb-atlas/mainarchivo.tf (línea 12) para que Terraform pueda recuperar las credenciales de Secrets Manager durante el despliegue.

DevOps ingeniero

Cree un identificador de clave de AWS acceso y una clave secreta.

Para crear tu identificador de clave de AWS acceso y tu clave secreta, sigue las instrucciones del artículo de AWS Re:post ¿Cómo se crea una clave de AWS acceso?

Se recomienda asignar políticas con los privilegios mínimos necesarios, pero en este caso, seleccione la AdministratorAccess política.

Tras crear la clave de acceso, consulte las prácticas recomendadas de seguridad de IAM para obtener información sobre las prácticas recomendadas para gestionar las claves de acceso.

DevOps ingeniero

Asigne direcciones IP elásticas.

Asigne al menos dos direcciones IP elásticas IDs. Para obtener instrucciones, consulte la documentación de Amazon Virtual Private Cloud (Amazon VPC).

DevOps ingeniero

Cree un bucket de S3.

Cree un bucket de S3 para almacenar el estado de su implementación de Terraform siguiendo las instrucciones de la documentación de Amazon Simple Storage Service (Amazon S3).

DevOps ingeniero

Actualice el depósito S3 para su almacenamiento.

Actualice la información del bucket de S3 en su versión local de environments/development/main.tf para que coincida con el nombre y la región del bucket que creó en el paso anterior y especifique un key prefijo. Por ejemplo:

terraform { ... backend "s3" { bucket = "startup-name-product-terraform" key = "network/dev" region = "ap-southeast-1" } }

En este ejemplo, puede configurar Terraform para que use el key network/dev prefijo para organizar el archivo de estado de Terraform. Puede cambiar el valor para que prod coincida con el entorno que desea crear. staging Para obtener información sobre el uso de varios entornos, consulte el último paso de esta sección.

Para obtener más información sobre los prefijos clave de Amazon S3, consulte Organizar objetos mediante prefijos en la documentación de Amazon S3.

DevOps ingeniero

Establezca las variables de Terraform.

La zona de aterrizaje de muestra define los valores de las variables de entrada mediante los archivos de definición de variables de Terraform.

El archivo de variables se encuentra en environments/development/variables.tf. Puede establecer los valores de las variables en el archivo environments/development/terraform.tfvars. Configure estas variables como se describe en el archivo Léame del repositorio. GitHub

DevOps ingeniero

Configure las variables de entorno.

Si planea ejecutar el script de Terraform en su máquina local, configure las siguientes variables de entorno:

  • AWS_ACCESS_KEY_ID: ID de clave de AWS acceso

  • AWS_SECRET_ACCESS_KEY: clave de acceso AWS secreta

  • AWS_DEFAULT_REGION: Región de AWS

  • TF_LOG: Nivel de registro de Terraform (DEBUGoINFO)

Para obtener más información sobre la configuración de las variables de entorno, consulte la documentación AWS Command Line Interface (AWS CLI).

DevOps ingeniero

Compruebe las configuraciones de VPC.

Para seguir las prácticas recomendadas por AWS, configure los ajustes de la VPC y la subred CIDRs, las puertas de enlace NAT, las rutas y las tablas de rutas en el script Terraform para satisfacer las necesidades de su organización. Para obtener información específica, consulta el archivo Léame del repositorio. GitHub

DevOps ingeniero

Etiquetar recursos de .

Puede etiquetar sus AWS recursos para supervisarlos cuando se desplieguen mediante el script Terraform. Para ver ejemplos, consulta el archivo Léame del GitHub repositorio. Para obtener información sobre la supervisión de los recursos mediante etiquetas de coste, uso, etc., consulte Activar etiquetas de asignación de costes definidas por el usuario en la AWS Billing documentación.

DevOps ingeniero

Utilice varios entornos.

El GitHub repositorio proporciona una carpeta de development entorno. También puede añadir sus propios entornos en la carpeta de entornos.

Para añadir un entorno, copie la development carpeta en una nueva carpeta (por ejemplo, prod ostaging) situada debajoenvironments. A continuación, puede actualizar el terraform.tfvars archivo con el nuevo valor.

DevOps ingeniero
TareaDescripciónHabilidades requeridas

Inicialice el directorio de trabajo de Terraform.

Para inicializar el directorio de trabajo y descargar los paquetes necesarios, ejecute el comando:

terraform init
DevOps ingeniero

Cree un plan de ejecución.

Para crear un plan de ejecución y visualizar los cambios que Terraform realizará en su infraestructura, ejecute el comando:

terraform plan
DevOps ingeniero

Implemente los cambios.

Para implementar los cambios en la infraestructura tal y como se describe en el código, ejecute el comando:

terraform apply
DevOps ingeniero

Valide la implementación.

Valide los componentes que Terraform creó o modificó en su infraestructura.

Para probar la configuración, aprovisione un recurso informático (por ejemplo, una EC2 instancia o AWS Lambda función de Amazon) en la VPC o adjunto a ella.

DevOps ingeniero, desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Elimine recursos.

Cuando haya terminado las pruebas, ejecute el siguiente comando para destruir los recursos que Terraform ha desplegado en su infraestructura:

terraform destroy
DevOps ingeniero

Recursos relacionados

Detectar y evaluar

Configuración del Atlas y los entornos de MongoDB AWS

Despliegue de la landing zone