Проблемы с подключением к AWS DocumentDB

Я создал Кластер и Экземпляр DocumentDB в Амазонке. Когда я пытаюсь подключиться к локальному SSH (MacOS), отображается следующее сообщение:

Когда я пытаюсь подключиться к сообществу MongoDB Compass:

mongodb://Mobify:<My-Password>@docdb-2019-04-07-23-28-45.cluster-cmffegva7sne.us-east-2.docdb.amazonaws.com:27017/?ssl=true&ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0

Он загружается много минут, и в итоге он имеет такой результат:

После решения этой проблемы я хотел бы знать, возможно ли подключить кластер documentDB к экземпляру в другой зоне доступности... У меня есть DocumentDB в Огайо, и у меня есть EC2 в Сан-Паулу... это так? возможный?

3 ответа

Кластеры Amazon DocumentDB развернуты в VPC, чтобы обеспечить надежную изоляцию сети от Интернета. Чтобы подключиться к вашему кластеру за пределами VPC, см. Следующее: https://docs.aws.amazon.com/documentdb/latest/developerguide/connect-from-outside-a-vpc.html

База данных документов AWS размещается в VPC (виртуальном частном облаке), который имеет свои собственные подсети и группы безопасности; в основном, все, что находится в VPC, не является общедоступным.

База данных документов развернута в облаке VPC. Чтобы получить к нему доступ, вам необходимо создать экземпляр EC2 или AWS Could9.

Давайте подключимся к нему из экземпляра EC2 и получим доступ к базе данных документов AWS с помощью SSH-туннелирования.

  1. Создайте экземпляр EC2 (желательно ubuntu) любой конфигурации и выберите тот же VPC, в котором размещен кластер БД документов.

  2. После полной инициализации EC2 запустите туннель SSH и свяжите локальный порт @ 27017 с документом DB cluster host @ 27017.

ssh -i "<ec2-private-key>" -L 27017:docdb-2019-04-07-23-28-45.cluster-cmffegva7sne.us-east-2.docdb.amazonaws.com:27017 ubuntu@<ec2-host> -N

  1. Теперь ваш локальный хост настроен на ec2 через порт 27017. Подключитесь с или , введите свой пароль кластера, и вы войдете в систему и выполните любые запросы.

mongosh --sslAllowInvalidHostnames --ssl --sslCAFile rds-combined-ca-bundle.pem --username Mobify --password

Примечание. SSL будет считаться устаревшим. Используйте tls, просто замените SSL на tls в приведенной выше команде.

У меня была (вероятно, технически дублирующий вопрос), и я решил подключиться через Cloud9. Вот отрывок моего .

При настройке Cloud9 мне по какой-то причине пришлось выбрать вариант подключения «Secure Shell (SSH)», так как «AWS Systems Manager (SSM)» выдавал мне ошибку со статусом жизненного цикла «Ошибка создания».

Вы можете использовать терминал Cloud9 для установки оболочки MongoDB, а затем использовать ее для подключения к кластеру DocumentDB в том же VPC. Обзор см. в разделе аналогичная проблема«Начало работы с Amazon DocumentDB» .Вот несколько советов из моего опыта.

Инструкции по подключению можно получить на странице консоли кластера DocumentDB в разделе «Подключение и безопасность». Предполагается, что вы уже установили оболочку MongoDB и используете старую версию. Я предпочел использовать более новую версию, хотя DocumentDB несовместим с последними версиями MongoDB, хотя бы для того, чтобы убедиться, что нужная мне простая функциональность работает с DocumentDB. Поэтому я последовал ответаофициальным инструкциям по установке MongoDB , обязательно выбрав «Amazon Linux».

Вместо того, чтобы печатать некоторыеechoинструкции, я набралsudo nano /etc/yum.repos.d/mongodb-org-6.0.repoи ввел следующую информацию, чтобы настроить последний (на сегодняшний день) репозиторий MongoDB Yum RPM:

      [mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc

Затем установил:

      sudo yum install -y mongodb-mongosh

Затем, наконец, я выполнил инструкции по подключению моего кластера DocumentDB из консоли.

      wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
mongosh --tls --host <cluster-info>.us-east-1.docdb.amazonaws.com:27017 --tlsCAFile rds-combined-ca-bundle.pem --username <username> --password <password>

Обратите внимание, что при использовании последней версии (v1.8.0), помимо использованияmongoвместоmongoshтакже лучше:

  • использовать--tlsвместо--ssl, и
  • использовать--tlsCAFileвместо--sslCAFile.
Другие вопросы по тегам