如果您从 Elastic Beanstalk 创建并随后与 Beanstalk 环境解耦的数据库开始,则可以跳过第一组步骤,然后按
To create a bridge security group
(创建桥接安全组)下分组的步骤继续。
如果您计划为生产环境使用解耦数据库,请验证数据库使用的存储类型适合您的工作负载。有关更多信息,请参阅《Amazon RDS 用户指南》
中的
数据库实例存储
和
修改数据库实例
。
在 EC2 classic(无 VPC)中启动 RDS 实例
-
打开
RDS 管理控制台
。
选择
Create database
(创建数据库)。
继续执行向导。记下为以下选项输入的值:
VPC
–
Not in VPC
。如果此选项不可用,则您的账户可能不支持
EC2-Classic
,或者您可能已选择
仅在 VPC 中可用的实例类型
。
Availability Zone
(可用区)–
No
Preference
DB Security Group(s)
(数据库安全组)–
Create
new Security Group
配置剩余选项并选择
Create database
(创建数据库)。记下为以下选项输入的值:
Database Port
(数据库端口)
在 EC2-Classic 中,数据库实例具有数据库安全组,而不是 VPC 安全组。您无法将数据库安全组附加到 Elastic Beanstalk 环境。相反,您需要创建一个新安全组,您可为其授予访问数据库实例的权限并将其附加到环境。我们将此安全组称为
桥接安全组
并将其命名为
webapp-bridge
。
创建桥接安全组
-
打开
Amazon EC2 控制台
。
在导航侧边栏中的
Network & Security
(网络与安全性)下,选择
Security Groups
(安全组)。
选择
Create Security Group
(创建安全组)。
对于
Security group name
(安全组名称),请键入
webapp-bridge
。
对于
Description
(描述),键入
Provide access to DB instance
from Elastic Beanstalk environment instances.
。
对于
VPC
,将默认值保持选中状态。
选择
Create
(创建)。
接下来,修改附加到数据库实例的安全组以允许来自桥接安全组的入站流量。
修改 RDS 实例的安全组上的入口规则
-
打开
Amazon RDS 控制台
。
选择
Databases
(数据库)。
选择您的数据库实例的名称以查看其详细信息。
在
Connectivity
(连接)部分中,在
Security
(安全性)下,与数据库实例关联的安全组将会显示。打开链接以在 Amazon EC2 控制台中查看安全组。
在安全组详细信息中,将
Connection Type
(连接类型)设置为
EC2 Security Group
(EC2 安全组)。
将
EC2 Security Group Name
(EC2 安全组名称)设置为您创建的桥接安全组的名称。
选择
Authorize
(授权)。
接下来,将桥接安全组添加到您的运行环境。此过程要求使用附加的其他安全组重新配置环境中的所有实例。
接下来,使用环境属性将连接信息传递到环境。在使用 Elastic Beanstalk 控制台
向环境中添加数据库实例
时,Elastic Beanstalk 使用
RDS_HOSTNAME
等环境属性将连接信息传送到您的应用程序。您可以使用相同的属性,这将允许您将相同的应用程序代码与集成的数据库实例和外部的数据库实例结合使用,您也可以选择自己的属性名称。或者,您可以选择自己的属性名称。
配置环境属性
-
打开
Elastic Beanstalk 控制台
,然后在
Regions
(区域)列表中选择您的 AWS 区域。
-
在导航窗格中,选择
Environments
(环境),然后从列表中选择环境的名称。
-
在导航窗格中,选择
Configuration
(配置)。
-
在
Updates, monitoring, and logging
(更新、监控和日志记录)配置类别中,选择
Edit
(编辑)。
-
在
Environment Properties
(环境属性)部分中,定义应用程序读取的用于构建连接字符串的变量。为了与具有集成 RDS 数据库实例的环境兼容,请使用以下内容:
RDS_DB_NAME
– Amazon RDS 控制台中的
DB Name
(数据库名称)。
RDS_USERNAME
– 向环境添加数据库时输入的
Master Username
(主用户名)。
RDS_PASSWORD
– 向环境添加数据库时输入的
Master Password
(主密码)。
RDS_HOSTNAME
– Amazon RDS 控制台中的数据库实例的
Endpoint
(端点)。
RDS_PORT
– Amazon RDS 控制台中的
Port
(端口)。
Ruby –
连接到数据库