amy*_*ula 24 ssh amazon-ec2 mongodb node.js amazon-elastic-beanstalk
首先,在你向我投票之前,我已经看过如何在Elastic Beanstalk中安装mongodb?2014年,不再有效.以及https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/#manually-deploy-mongodb-on-ec2
我已经在node.js上运行了一个新的弹性beanstalk环境,其中包含1个ec2微实例'64位运行Node.js的Amazon Linux 2016.03 v2.1.0'
我已经尝试使用ssh连接到我的实例并使用yum命令安装mongodb包:
$ sudo yum install -y mongodb-org-server mongodb-org-shell mongodb-org-tools
Run Code Online (Sandbox Code Playgroud)
并收到此回电:
Loaded plugins: priorities, update-motd, upgrade-helper
No package mongodb-org-server available.
No package mongodb-org-shell available.
No package mongodb-org-tools available.
Error: Nothing to do
Run Code Online (Sandbox Code Playgroud)
当我第一次进入我的实例时,我收到了此错误警告:
This EC2 instance is managed by AWS Elastic Beanstalk. Changes made via SSH
WILL BE LOST if the instance is replaced by auto-scaling. For more information
on customizing your Elastic Beanstalk environment, see our documentation here:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
Run Code Online (Sandbox Code Playgroud)
目前,我的环境被设置为单实例环境,以节省成本.但是,将来我会升级到自动缩放环境.
因此,我要求在ec2中通过ssh进行任何更改,或者我应该只使用EB CLI吗?
我在本地安装了EC2和EB CLI,但之前从未使用过EB CLI.如果我应该使用EB,有没有人有推荐的方法来安装mongodb?
amy*_*ula 37
如果有人正在寻找答案,这是我从aws业务支持获得的建议.
部署到Elastic Beanstalk的所有代码都需要"无状态"IE从不使用SSH或FTP直接对正在运行的beanstalk实例进行更改....因为这会导致不一致和/或数据丢失! - Elastic Beanstalk不适用于非无状态应用程序.该环境旨在根据您的网络/ CPU负载进行扩展和缩小,并从基础AMI构建新实例.如果实例有问题或底层硬件,Elastic Beanstalk将终止这些正在运行的实例并替换为新实例.因此,为什么不必对现有实例"直接"应用或完成代码修改,因为新实例不会意识到这些直接更改.所有更改/代码都需要上传到Elastic Beanstalk控制台或CLI工具,并推送到所有正在运行的实例.有关Elastic Beanstalk设计概念的更多信息,请访问以下链接: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.concepts.design.html
建议的解决方案:考虑到上述情况,如果使用MongoDB存储应用程序数据,我们的建议是从Node.js应用程序中对MongoDB环境进行DE耦合.IE在Elastic Beanstalk之外创建一个MongoDB服务器,例如直接在EC2实例上启动MongoDB,并让您的Elastic Beanstalk Node.js应用程序使用您应用中的连接设置连接到MongoDB服务器.
- 创建MongoDB下面是一些示例链接,可用于创建MongoDB服务器的场景. 在AWS云上快速部署MongoDB, https: //docs.mongodb.org/ecosystem/platforms/amazon-ec2/ MongoDB节点客户端 https://docs.mongodb.org/getting-started/node/client/ MongoDB开始指南 http://docs.aws.amazon.com/quickstart/latest/mongodb/architecture.html
- 将环境变量添加到Elastic Beanstalk以引用MongoDB服务器创建MongoDB服务器后,可以使用环境变量将所需的连接设置传递到Elastic Beanstalk环境.使用.ebextensions .config的示例,您可以添加Mongo URL/ports/users等.
option_settings: - option_name:MONGO_DB_URL值:"您的MongoDB EC2内部IP地址"
有关如何使用环境属性并从应用程序中读取它们的信息,请参见下文. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_container-envprop 使用.ebextensions .config的信息可以在以下链接找到 :http://docs.aws.amazon .COM/elasticbeanstalk /最新/ DG/ebextensions.html
或者您也可以使用cli或通过AWS控制台设置环境变量eb cli设置环境变量可以通过以下链接读取. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html 使用AWS控制台设置系统属性(AWS管理控制台)打开Elastic Beanstalk控制台.导航到您的环境的管理控制台.选择配置.在"软件配置"部分中,选择"编辑".在"环境属性"下,创建您的名称/值...
访问环境配置设置在AWS Elastic Beanstalk中运行的Node.js环境中,您可以使用process.env.ENV_VARIABLE访问环境变量,类似于以下示例.process.env.MONGO_DB_URL process.env.PARAM2
简介:总之,我建议将MongoDB与Elastic Beanstalk环境集成以下步骤.步骤1)在Elastic Beanstalk之外创建一个MongoDB服务器步骤2)在Elastic Beanstalk中创建连接到MongoDB服务器的Node.js应用程序
| 归档时间: |
|
| 查看次数: |
11195 次 |
| 最近记录: |