有没有办法配置 Elastic Beanstalk 以连接到现有的 Oracle 数据库(没有 BYOL)?

Posted

技术标签:

【中文标题】有没有办法配置 Elastic Beanstalk 以连接到现有的 Oracle 数据库(没有 BYOL)?【英文标题】:Is there a way to configure Elastic Beanstalk to connect to an existing Oracle DB (without BYOL)? 【发布时间】:2012-10-05 20:57:31 【问题描述】:

我正在尝试设置 Elastic Beanstalk 以连接到我现有的 AWS 托管的 Oracle DB(按需类型,而不是自带许可类型),但是当我使用 Elastic Beanstalk 控制台时 >>环境详细信息>>编辑配置>>数据库实用程序,我什至没有提供连接到现有 AWS RDS的选项。他们提供的唯一选项是“创建一个具有此环境的 RDS 数据库实例”。好吧,我很灵活......给猫剥皮的方法不止一种,但是当我尝试创建一个 RDS DB (Oracle) 实例(使用他们的下拉“Oracle se-1”选项)时,我得到了错误消息“Oracle 数据库引擎不支持数据库实例类。”

有解决方法吗?我只想让我的 beanstalk 访问我现有的 Oracle RDS,并感谢任何人提供的任何建议。请慢慢解释……这对我来说是一个新环境。

【问题讨论】:

您在 Amazon RDS 中使用什么样的数据库实例类? 【参考方案1】:

以下是 AWS 技术支持提供的非常有用的答案:

你好,

在典型场景中,ElasticBeanstalk 启动的实例将只允许来自 Elastic Load Balancer 的 HTTP 连接,而 Elastic Load Balancer 将接受来自任何地方 (0.0.0.0/0) 的 HTTP 请求。

让 Elastic Beanstalk 实例访问您的 RDS 实例的最有效方法是在 RDS 授权中添加 beanstalk 实例的安全组。

检查 Ec2->Security Groups 您应该有一个描述为“SecurityGroup for ElasticBeanstalk environment”的安全组。 ,查看底部窗格中的安全组ID,其格式为sg-xxxxxxxx。

通过转到 RDS -> Db Security Groups 授权 RDS 访问该安全性,您可以在底部编辑 Db 当前安全组或创建一个新安全组(然后您需要将其应用于 Db 实例)窗格选择 Ec2 安全组而不是 CIDR,然后添加 Elastic Beanstalk 安全组 ID sg-xxxxxxxx。

如果您想在本地计算机上直接从 Eclipse 访问 Db,您还需要将您的计算机公共 IP 添加为 CIDR(您可以通过访问 www.whatismyip.com 之类的页面来检查您的公共 IP)

您还需要 Eclipse 中的 JDBC 驱动程序才能连接到 RDS Oracle 实例。

我还附上了 Elastic Beanstalk 的打印屏幕,其中显示了您可以将 JDBC 连接传递到您的环境的位置。

【讨论】:

对于任何未来的读者:我按照这些说明为我的 LAMP 应用程序和数据库连接良好。 您先生是个绅士!也适用于 Posgres。感谢您的详细解释 这是迄今为止将现有 RDS 数据库关联到弹性 beanstalk 应用程序的最简单方法。附加信息:如果您必须为 RDS 数据库使用 VPC,只需按照上述说明进行操作,但从 VPC 控制台访问安全组【参考方案2】:

不,没有 BYOL 许可类型,就无法连接到现有的 Oracle 数据库。 BYOL 意味着您已经拥有一个有效的 Oracle 许可证并且希望使用它。如果您使用 On-Demand,则意味着 Amazon 为您提供了包含在价格中的有效许可证,因此您必须创建一个新的 Oracle 数据库实例,这就是您在 Elastic beanstalk 中看到的。

Oracle 引擎选择和许可证类型选择是在设置 Amazon RDS 时完成的(如下面的屏幕截图)。更多信息here。

【讨论】:

是的,我使用此向导启动了我的(Oracle 按需)数据库实例。我遇到的问题是无法弄清楚如何从 Elastic Beanstalk 连接到它。 您说您的“许可模式”是按需而非“BYOL”(如上面的屏幕截图所示)。在 On-Demand 的情况下,您需要基于 Amazon RDS 创建一个“新”Oracle 数据库实例,因为 On-demand 包含一个新许可证。如果您想使用现有的 Oracle 实例,那么您需要拥有 License Model=Bring Your Own License

以上是关于有没有办法配置 Elastic Beanstalk 以连接到现有的 Oracle 数据库(没有 BYOL)?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法确定 Tomcat on Elastic Beanstalk 中环境的 URL 是啥?

如何在 AWS Elastic Beanstalk 中更改数据库配置

找出与 Elastic Beanstalk 应用程序关联的 EC2 实例?

Elastic Beanstalk 在配置菜单中没有负载均衡器设置

AWS Elastic Beanstalk 上的 Celery 配置问题 - “进程没有配置更新”

检测 Elastic Beanstalk 环境?