MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Монгос Инсталиране/настройка в Elastic Beanstalk

Създадох папка, наречена ".ebextensions" и файл, наречен "aws.config". Съдържанието на този файл е както следва:-

files: 
  "/etc/yum.repos.d/mongodb.repo":
    mode: "000644"
    content: |
      [MongoDB]
      name=MongoDB Repository
      baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
      gpgcheck=0
      enabled=1
container_commands:
  01_enable_rootaccess:
    command: echo Defaults:root \!requiretty >> /etc/sudoers
  02_install_mongo:
    command: yum install -y mongo-10gen-server
    ignoreErrors: true
  03_turn_mongod_off:
    command: sudo chkconfig mongod off
  04_create_mongos_startup_script:
    command: sudo sh -c "echo '/usr/bin/mongos -configdb $MONGO_CONFIG_IPS -fork -logpath /var/log/mongo/mongos.log --logappend' > /etc/init.d/mongos.sh"
  05_update_mongos_startup_permissions:
    command: sudo chmod +x /etc/init.d/mongos.sh
  06_start_mongos:
    command: sudo bash /etc/init.d/mongos.sh

Това, което прави този файл е:-

  • Създава файл „mongodb.repo“ (вижте http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/).

Изпълнява 4 контейнерни команди (те се изпълняват след създаването на сървъра, но преди разгръщането на WAR. Това са:-

  1. Разрешаване на root достъп – това се изисква за командите „sudo“ afaik.
  2. Инсталиране на Mongo – инсталирайте mongo като услуга с помощта на командата yum. Нуждаем се само от "mongos", но това все още не е отделено от mongo сървъра. Това може да се промени в бъдеще.
  3. Променете конфигурацията за mongod на „изключено“ – това означава, че ако сървърът се рестартира, програмата mongod не се изпълнява, ако сървърът се рестартира.
  4. Създайте скрипт за стартиране на mongos. Обърнете внимание на $MONGO_CONFIG_IPS в стъпка 4, можете да ги прехвърлите чрез конфигурационната страница в Elastic Beanstalk. Това ще се изпълнява при рестартиране на сървъра.
  5. Задайте разрешения за изпълнение. Поради тази причина направих 4/5 вместо поставянето във файлове:раздел е, че не е създал IP адресите от променливата на средата.
  6. Изпълнете скрипт, създаден в стъпка 4.

Това работи за мен. Моят WAR файл просто се свързва с localhost и целият трафик преминава през рутера. Няколко дни се натъкнах на това, тъй като документацията е доста тънка както в Amazon AWS, така и в MongoDB.

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

АКТУАЛИЗИРАНЕ :- Ако имате проблеми със стария ми отговор, моля, опитайте следното - работи за версия 3 на Mongo и в момента се използва в нашия производствен клъстер MongoDB.

Тази версия е по-напреднала, тъй като използва вътрешен DNS (чрез AWS Route53) - обърнете внимание на mongo-cfg1.internal ... . Това са препоръчителни най-добри практики и си струва да настроите вашата частна зона с помощта на Route53. Това означава, че ако има проблем с един от екземплярите на MongoDB Config, можете да замените повредената инстанция и да актуализирате частния IP адрес в Route53 - не се изискват актуализации във всеки еластичен боб, което е наистина страхотно. Ако обаче не искате да създавате зона, можете просто да вмъкнете IP адресите в configDB атрибут (като първия ми пример).

files: 
  "/etc/yum.repos.d/mongodb.repo":
    mode: "000644"
    content: |
      [mongodb-org-3.0]
      name=MongoDB Repository
      baseurl=http://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.0/x86_64/
      gpgcheck=0
      enabled=1
  "/opt/mongos.conf":
    mode: "000755"
    content: |
      net:
        port: 27017
      operationProfiling: {}
      processManagement:
        fork: "true"
      sharding:
        configDB: mongo-cfg1.internal.company.com:27019,mongo-cfg2.internal.company.com:27019,mongo-cfg3.internal.company.com:27019
      systemLog:
        destination: file
        path: /var/log/mongos.log
container_commands:
  01_install_mongo:
    command: yum install -y mongodb-org-mongos-3.0.2
    ignoreErrors: true
  02_start_mongos:
    command: "/usr/bin/mongos -f /opt/mongos.conf > /dev/null 2>&1 &"


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Пуснете елементи в монго масив чрез mongoose

  2. Създайте суперпотребител в mongo

  3. Spring Boot и как да конфигурирам подробности за връзката с MongoDB?

  4. Не може да се създаде/отваря файл за заключване:/data/mongod.lock errno:13 Отказано разрешение

  5. Как да наблюдавате MongoDB с Prometheus &ClusterControl