无法将 RDS 数据库添加到 Elastic Beanstalk 环境

无法将 RDS 数据库添加到 Elastic Beanstalk 环境

我已经创建了大约 10 个带有连接 RDS 数据库的 Elastic Beanstalk 环境,但由于某种原因,在这个应用程序中,我无法将 RDS 数据库添加到我的 Elastic Beanstalk 环境中。

我正在通过 Elastic Beanstalk UI 使用 添加 RDS 数据库Configuration > Database。错误似乎源于我的根用户无法创建 RDS DB 安全组。事件日志显示:

INFO: Environment update is starting.
INFO: Updating environment pscope-api-prod's configuration settings.
ERROR: Service:AmazonCloudFormation, Message:Stack named 'awseb-e-rmu57hh9tz-stack' aborted operation. Current state: 'UPDATE_ROLLBACK_IN_PROGRESS' Reason: The following resource(s) failed to create: [AWSEBRDSDBSecurityGroup].
ERROR: Creating RDS database security group named: awseb-e-rmu57hh9tz-stack-awsebrdsdbsecuritygroup-gpqdtr1kvf7z failed Reason: Either the resource does not exist, or you do not have the required permissions.
ERROR: Failed to deploy configuration.
INFO: Deleted RDS database security group named: awseb-e-rmu57hh9tz-stack-awsebrdsdbsecuritygroup-gpqdtr1kvf7z
INFO: The environment was reverted to the previous configuration setting.

完成此操作后,不会创建任何数据库,并且一切都恢复到尝试添加 RDS 数据库之前的状态。

我尝试过的事情:

  • 我正在尝试以根用户身份添加该数据库,但也尝试创建具有管理员权限的 IAM 用户并出现相同的错误。
  • 我也尝试过删除整个应用程序和环境并重新创建,但仍然出现同样的错误。
  • 我通常使用 eb-cli 创建eb create,但我也尝试通过仪表板 UI 创建并出现相同的错误。

答案1

我是 AWS 新手,在尝试从 Elastic Bean 管理控制台创建和添加新数据库时遇到了同样的问题。

在 IAM 中添加 AWSServiceRoleForRDS 角色后,此问题已得到修复。转到 IAM --> 角色 --> 创建角色 --> AWS 服务:

选择 RDS 和 RDS 用例。单击“下一步:权限”。您将看到已添加 AmazoneRDSServiceRolePolicy。单击下一步:审核 --> 创建角色。

大功告成。现在尝试从 Elastic Beanstalk 管理控制台创建数据库。现在应该可以正常工作了。

答案2

我的问题是点击申请位于 RDS 页面底部,而不是继续. 点击后继续,我能够看到告诉我为数据库分配两个子网。完成此操作并点击后申请,一切正常。

答案3

显然,当您运行 eb create(我猜没有指定任何数据库)时,为您的 IAM 用户自动创建的所需角色缺少允许 RDS 进行更改所需的角色。

创建新角色在您的 IAM 管理控制台中获取 RDS 服务将“允许 RDS 代表您使用 AWS 资源执行操作。“在检查权限并确保AmazonRDSServiceRolePolicy在列表中,AWSServiceRoleForRDS 将被添加到列表中,并希望能解决您的麻烦。

答案4

2018年1月8日19:17,角色AmazonRDSServiceRolePolicy已默认添加到IAM根账户

相关内容