簡體   English   中英

使用MongoDB進行Elastic Beanstalk部署

[英]Elastic Beanstalk Deployment with MongoDB

非常感謝有關如何使用以下堆棧正確部署Elastic Beanstalk的資源建議:

  • MongoDB的
  • Rails(Puma)
  • Sidekiq / Redis的
  • Elasticsearch

我是否需要在ebextension文件中設置所有這些內容? 或者是在AWS中手動設置,然后在某處正確地將它們路由到一起?

您絕對不希望在Elastic Beanstalk服務器上運行所有這些。 Elastic Beanstalk將根據您的流量/服務器負載自動添加或刪除服務器。 刪除時,您不希望數據庫位於其中一個服務器上。

Elastic Beanstalk是一種平台即服務,非常適合運行Web服務器。 AWS上還有其他服務,例如ElastiCache(Redis / Memcached即服務)和Elasticsearch即服務。 還有第三方提供在AWS上運行的服務,例如RedisLabs(Redis即服務)和MongoLab(MongoDB即服務)。

您可以決定使用這些服務中的任何一項來減少您自己必須完成的系統管理工作量。 或者您可以手動設置EC2 Linux服務器(Elastic Beanstalk之外)並在其上安裝Rails,MongoDB和ElasticSearch等內容並自行管理。

對於您的情況,我會建議如下:

  • Rails:ElasticBeanstalk
  • MongoDB:MongoLab
  • Redis:RedisLabs
  • Elasticsearch:AWS Elasticsearch Service

您可能希望設置每個服務,然后只需將每個服務的連接信息添加到Elastic Beanstalk環境中,以便Rails可以使用它們。

編輯:

以下是有關在EC2上手動設置MongoDB的最佳說明: https//docs.mongodb.org/ecosystem/platforms/amazon-ec2/

對於ElastiCache和Elasticsearch,您只需在AWS控制台中單擊以配置Redis服務器並獲取要連接的URL。 一旦設置了所有這些,您只需將連接參數作為自定義環境變量放在ElasticBeanstalk環境中,例如:

MONGO_DB_URL =“您的MongoDB EC2內部IP地址”

REDIS_URL =“ElastiCache為您提供的網址”

然后在創建與這些服務的連接時,在應用程序中讀取這些環境變量。

此外,您將不得不學習如何設置VPN和安全組以啟用所有連接。 例如,您需要將Elastic Beanstalk服務器放在一個安全組中,將MongoDB服務器放在另一個組中。 然后,您必須配置MongoDB安全組以允許從MongoDB端口上的beanstalk組進行訪問。 它與ElastiCache類似。 我認為對於Elasticsearch,您必須創建一個可以訪問Elasticsearch API的IAM角色,然后將該角色分配給您的Beanstalk服務器。

當然,還有為MongoDB集群設置Linux服務器,配置集群,故障轉移,自動備份,日志存檔,定期安全更新等的管理任務。我知道您擁有所有這些AWS信譽,但您應該權衡將所有內容移至AWS,而不是將花費時間的所有管理任務的成本。 如果你是免費獲得它們,Elastic Beanstalk,Elasticsearch和ElasticCache是​​不費吹灰之力的,但是我的MongoLab法案必須要相當高,以證明自己設置所有這些並自行管理它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM