Nasıl Yapılır: Elastik Konteyner Hizmetinde Dockerized MongoDB Çoğaltması


10

AWS ECS üzerinde çalışan bir MongoDB veritabanı ile birlikte bir Node.js uygulaması var. Şu anda aldığım kurulum, her biri bir Docker kapsayıcısını atanmış hizmetiyle (düğüm / mongo) çalıştıran 2 ELB ve 2 Eşgörünümden oluşuyor:

Elastic Load Balancer -> Dockerized Node -> Elastic Load Balancer -> Dockerized MongoDB

MongoDB için resmi Docker görüntüsünü burada bulabilirsiniz: https://registry.hub.docker.com/_/mongo/

Herhangi bir işaretçi Docker ve ECS, her çoğaltma farklı bir örnek üzerinde çalışan kullanarak MongoDB için bir replicaSet nasıl dağıtmak mümkün olacak?

Yanıtlar:


2

Veritabanlarını dockerize etmeyin. Liman işçisi konteynırlarının geçici olması ve veri tutmaması amaçlanmıştır. Bu veritabanları için uygun değildir.

Özellikle, bir MongoDB kümesini sabitlemeye çalışmayın . Çoğaltma kümelerinin kurulumu son derece durumlu ve karmaşıktır. Birçok komutu sırayla ve sadece bir kez çalıştırmanız gerekir . Herhangi bir komutu kaçırırsanız veya bir düğüm sönerse, kümenin tamamı kilitlenebilir ve baştan başlamak zorunda kalırsınız.

Docker'ın uygulamaların nasıl davranması gerektiği konusunda kendi fikri vardır. Docker'ın içinde çalışmasını sağlamak gerçekten zor olurdu.

3 kopyalı bir küme istiyorsanız, 3 AWS örneği almalı ve örnekler üzerinde MongoDB kurmalısınız. mongodb setting up a replica set on <OS>Size güncel bir eğitim verecek Google'da arama yapın .


2

FireCamp yapıyor. FireCamp, MongoDB ReplicaSet'i AWS ECS'ye çok kolay bir şekilde dağıtabilir. 1) ECS kümesini bulut şablonuyla dağıtın, 2) MongoDB ReplicaSet'i tek bir komutla konuşlandırın. Ayrıntılar için FireCamp Kurulum wiki'sini kontrol edin .

Güvenlik için, Node.js uygulamasını başka bir ECS kümesinde çalıştırmak daha iyidir. MongoDB çalıştıran EC2 bulut sunucuları dış dünyaya maruz bırakılmamalıdır.

Elastik Yük Dengeleyici, Node.js uygulamasının MongoDB ReplicaSet'e erişmesi için gerekli değildir. Her kopya benzersiz bir DNS adı alır. Node.js uygulaması, dns adıyla MongoDB'ye erişebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.