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

Anuj Panchal, MongoDB

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 la rápida implementación de cargas de trabajo y aplicaciones, y permite garantizar la confianza en la seguridad y la infraestructura. La creación de una zona de aterrizaje requiere una cuidadosa consideración de los factores técnicos y empresariales, incluida la estructura de la cuenta, las redes, la seguridad y la gestión del acceso. Estas consideraciones deben coincidir con los objetivos empresariales y de crecimiento futuro de su organización.

Los casos de uso de este patrón incluyen lo siguiente.

  • 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

    • Una alta disponibilidad de conjuntos de réplicas de MongoDB en multi-AZ

  • 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 de multi-AZ garantiza que ningún error en las zonas 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 servicios permanentes, como las aplicaciones de tecnología financiera (fintech), la banca digital o la supervisión del sector sanitario.

Requisitos previos y limitaciones

Requisitos previos 

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

  • Una Cuenta de AWS activa.

  • Terraform, instalado y configurado.

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

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

Limitaciones

  • Algunos no están disponibles en todos. Servicios de AWS Regiones de AWS Para obtener información sobre la disponibilidad en regiones, consulte Servicios de AWS by Region. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.

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 nube privada virtual (VPC) que se extiende por las 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 de Internet proporciona conectividad saliente a Internet para los recursos que la necesitan, como los hosts de aplicaciones o de bastión.

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

Subredes privadas y tablas de enrutamiento

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

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

  • Las solicitudes entrantes de Internet fluyen a través de equilibradores de carga elásticos o hosts bastión (si se utilizan) en subredes públicas; 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 administrado.

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.

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

Tools (Herramientas)

Servicios de AWS

  • AWS Secrets Manager lo ayuda a reemplazar las credenciales codificadas en su código, incluidas contraseñas, con 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) completamente administrada para implementar y administrar bases de datos de 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.

Identifique a todas las partes interesadas clave y a los miembros del equipo que participan en el proyecto de la zona de aterrizaje. Esto podría incluir roles como los siguientes:

  • Administradores de bases de datos () DBAs

  • DevOps ingenieros

  • Desarrolladores de aplicaciones

  • Arquitectos de aplicaciones

Líder de migración

Cree un esquema 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 las aplicaciones para analizar los requisitos y diseñar una arquitectura resiliente y tolerante a errores. Este patrón proporciona una plantilla de arquitectura inicial para su referencia. Puede personalizar esta plantilla para adaptarla a las necesidades de seguridad e infraestructura de su organización.

Arquitecto de la nube

Planifique la configuración y la implementación.

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 todo se alinea con los intereses de la organización y del equipo solicitante.

Líder de migración, ingeniero y administrador de bases de datos DevOps
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. Copie el ID de 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

Crea un secreto en 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 la capa del clúster de Atlas.

Siga las instrucciones de la documentación de MongoDB para seleccionar la capa del clúster de Atlas correcta.

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 política de AdministratorAccess.

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 las 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 bucket de 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 la clave de prefijo network/dev para organizar el archivo de estado de Terraform. Puede cambiar el valor a prod o staging para que coincida con el entorno que desea crear. Para obtener información acerca del uso de varios entornos, consulte el último paso de esta sección.

Para obtener más información sobre los prefijos de claves de Amazon S3, consulte Organizar objetos con 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: identificador 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 (DEBUG o INFO)

Para obtener más información sobre la configuración de variables de entorno, consulte la documentación de 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 carpeta development en una nueva carpeta (por ejemplo, prod o staging) situada en environments. A continuación, puede actualizar el archivo terraform.tfvars con el nuevo valor.

DevOps ingeniero
TareaDescripciónHabilidades requeridas

Inicialice el directorio de trabajo de Terraform.

Para iniciar 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 su infraestructura tal 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 eliminar los recursos que Terraform haya implementado en su infraestructura:

terraform destroy
DevOps ingeniero

Recursos relacionados

Detectar y evaluar

Configuración del Atlas y los entornos de MongoDB AWS

Implementación de la zona de aterrizaje