amazon-web-services - 设置Elastic Beanstalk实例时出现问题-无法连接到服务器

标签 amazon-web-services amazon-elastic-beanstalk aws-ec2

我一直试图在AWS上建立一个网站,并且在运行eb initeb create并选择我的设置而没有任何问题之后,遇到了以下错误:

ERROR: [Instance: i-f8e3c005 Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: (TRUNCATED)...conn = _connect(dsn, connection_factory=connection_factory, async=async) django.db.utils.OperationalError: could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?.



我不确定为什么它拒绝连接,但是我怀疑它与我的安全设置有关。我知道这有点含糊,但是以前有人遇到过这个问题吗,您如何设法最终解决呢?

完整的输出如下:
INFO: createEnvironment is starting.
INFO: Using elasticbeanstalk-us-east-1-671186898336 as Amazon S3 storage bucket for environment data.
INFO: Created security group named: sg-96efb5f2
INFO: Created load balancer named: awseb-e-v-AWSEBLoa-12ABLMPELT72Q
INFO: Created security group named: awseb-e-v6mwzkkgjw-stack-AWSEBSecurityGroup-JEYPGZP3YJJG
INFO: Created Auto Scaling launch configuration named: awseb-e-v6mwzkkgjw-stack-AWSEBAutoScalingLaunchConfiguration-17DLMC0THMKW
INFO: Created Auto Scaling group named: awseb-e-v6mwzkkgjw-stack-AWSEBAutoScalingGroup-FBCJ1LFH8U38
INFO: Waiting for EC2 instances to launch. This may take a few minutes.
INFO: Created Auto Scaling group policy named: arn:aws:autoscaling:us-east-1:671186898336:scalingPolicy:9e2df788-3cee-4f47-917f-a11179972c69:autoScalingGroupName/awseb-e-v6mwzkkgjw-stack-AWSEBAutoScalingGroup-FBCJ1LFH8U38:policyName/awseb-e-v6mwzkkgjw-stack-AWSEBAutoScalingScaleDownPolicy-P6J45PB8N1XA
INFO: Created Auto Scaling group policy named: arn:aws:autoscaling:us-east-1:671186898336:scalingPolicy:e5a18684-1f95-446d-be29-ad560db7e3e6:autoScalingGroupName/awseb-e-v6mwzkkgjw-stack-AWSEBAutoScalingGroup-FBCJ1LFH8U38:policyName/awseb-e-v6mwzkkgjw-stack-AWSEBAutoScalingScaleUpPolicy-1IV5PENRNB785
INFO: Created CloudWatch alarm named: awseb-e-v6mwzkkgjw-stack-AWSEBCloudwatchAlarmHigh-K0258EMNK9O3
INFO: Created CloudWatch alarm named: awseb-e-v6mwzkkgjw-stack-AWSEBCloudwatchAlarmLow-15Z0Z4KVYDGEC
ERROR: [Instance: i-f8e3c005 Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: (TRUNCATED)...conn = _connect(dsn, connection_factory=connection_factory, async=async)
django.db.utils.OperationalError: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?. 
EBExtension container_command 01_migrate failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
INFO: Command execution completed on all instances. Summary: [Successful: 0, Failed: 1].
INFO: Added EC2 instance 'i-f8e3c005' to Auto Scaling Group 'awseb-e-v6mwzkkgjw-stack-AWSEBAutoScalingGroup-FBCJ1LFH8U38'.

更新:来自eb-activity.log的代码
 execute_from_command_line(sys.argv)
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
  utility.execute()
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
  django.setup()
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
  apps.populate(settings.INSTALLED_APPS)
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
  app_config.import_models(all_models)
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
  self.models_module = import_module(models_module_name)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
  __import__(name)
  File "/opt/python/bundle/2/app/paypaladaptive/models.py", line 126, in <module>
  class Payment(PaypalAdaptive):
  File "/opt/python/bundle/2/app/paypaladaptive/models.py", line 178, in Payment
  def process(self, receivers, preapproval=None, **kwargs):

更新:

在尝试了尼克的建议后,我遇到了同样的错误:
ERROR: [Instance: i-d05e9b2f Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: (TRUNCATED)...conn = _connect(dsn, connection_factory=connection_factory, async=async)
django.db.utils.OperationalError: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?. 
EBExtension container_command 01_migrate failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

最佳答案

短版:您的Django应用正在尝试连接到本地数据库实例。使用 RDS实例

您不能在Beanstalk节点上拥有本地的数据库实例(例如PostgreSQL)。这是因为在自动缩放的负载平衡应用程序上没有意义,在该应用程序中,根据服务负载创建和销毁节点(因此销毁了本地数据库实例)。

为了解决此问题,您需要使用自动扩展组外部的,持久的AWS RDS实例。在您的设置中,使用用于创建RDS实例的主机,用户名和密码。记住要在分配给RDS实例的安全组上打开正确的端口(例如,对于PostgreSQL为5432)。

关于amazon-web-services - 设置Elastic Beanstalk实例时出现问题-无法连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113895/

相关文章:

node.js - 使用 NodeJs 的 AWS DynamoDB 查询

amazon-web-services - AWS CodePipeline 将 Spring Boot 应用程序部署到 Elastic BeansTalk

amazon-web-services - 作为角色运行的 Ec2 尝试在 AWS 中获取 session token 时出错

ssh - Ansible 无法连接到 AWS EC2 实例

objective-c - 如何停止/取消aws s3中的下载请求

amazon-web-services - AWS 替代 DNS 故障转移?

javascript - Froala 编辑器 AWS S3 CORS 问题

postgresql - 如何更改 Elastic Beanstalk 的 RDS 实例

node.js - 如何访问部署在aws elasticbeanstalk中的文件

amazon-web-services - aws ecs 优化 AMI 中的私有(private) docker 注册表身份验证不成功