Мережеве з’єднання MongoDB з AWS EC2

pic

Одного дощового дня на мене раптово вплинули зміни в вимогах безпеки щодо політики розгортання одного з моїх додатків, що почала відхиляти прямий доступ до будь-якої SaaS бази даних через публічні кінцеві точки. Це змусило мене переглянути проектування хмарної інфраструктури і, справді, вплинуло на топологію розгортання MongoDB. Одна з необхідних змін полягала в блокуванні доступу до кластера MongoDB з Інтернету. На щастя, наша MongoDB працює в MongoDB M10, що підтримує Network Peering (мережеве з’єднання).

Ця стаття ділиться моїм технічним досвідом налаштування кластера MongoDB M10 в Atlas.

Налаштування мережі AWS

Network Peering (мережеве з’єднання) у кластері MongoDB Atlas досягається шляхом встановлення AWS VPC Peering (з’єднання VPC в AWS). Почнемо з конфігурації VPC.

Нижче показано AWS VPC, де розташовується наш EC2.

pic

Цей VPC має основний мережевий ACL, що показує 4 асоціації підмережі, 2 приватні та 2 публічні підмережі.

pic

Нижче наведено діаграму маршрутизаційної таблиці.

pic

Нижче показано деталі однієї з публічних підмереж. Зверніть увагу, що автоматичне призначення IPv4-адреси встановлено на YES.

pic

Нижче показано деталі однієї з приватних підмереж. Зверніть увагу, що автоматичне призначення IPv4-адреси встановлено на NO.

pic

Мережеві інтерфейси AWS

Оскільки ми будемо використовувати EC2 для доступу до кластеру MongoDB в Atlas, давайте створимо мережеві інтерфейси.

Нижче показано список мережевих інтерфейсів.

pic

Нижче показано мережевий інтерфейс, асоційований з публічною підмережею.

pic

Нижче показано мережевий інтерфейс, асоційований з приватною підмережею.

pic

EC2 інстанси AWS

Тепер час для створення EC2 інстансів. В моєму Proof of Concept (POC) є два (2) інстанси EC2, один у публічній підмережі, інший у приватній підмережі.

Нижче показано два інстанси EC2.

pic

Нижче показано публічний інстанс EC2, створений під публічною підмережею.

pic

Нижче показано приватний інстанс EC2, створений під приватною підмережею.

pic

Мережеве з’єднання MongoDB Atlas

Нарешті, ми переходимо до налаштування Network Peering (мережевого з’єднання) в MongoDB Atlas. Зверніть увагу, що Network Peering доступний лише для M10 або вище.

Перейдіть до вашого проекту в Atlas і відкрийте вкладку Network Access (мережевий доступ) і Peering (мережеве з’єднання), після чого натисніть кнопку "Add Peering Connection" (Додати з’єднання).

pic

Виберіть AWS, оскільки моя робоча навантаження працює в AWS, і натисніть Next.

pic

Заповніть деталі вашого AWS VPC.

pic

Після заповнення натисніть кнопку "Initiate Peering" (Ініціювати з’єднання).

Після цього вам потрібно буде схвалити запит на з’єднання у вашій сторінці AWS Peering Connections (З’єднання Peering в AWS).
Після схвалення ви побачите, що нове з’єднання Peering (мережеве з’єднання) додано зі статусом 'Active' (Активний).

pic

Нарешті, додайте з’єднання Peering (мережеве з’єднання) у маршрутизацію, як показано нижче.

pic

Перевірка з’єднання

Давайте перевіримо з’єднання.

SSH в приватний EC2 і запустіть mongosh.

pic

Молодець!!!

Не соромтеся поділитися своїми коментарями 🙂

Перекладено з: MongoDB Peering with AWS EC2

Leave a Reply

Your email address will not be published. Required fields are marked *