Amazon RDS 服务层 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon RDS 服务层

重要

AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够照常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时这些工具或资源将停用。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager

一个 Amazon RDS 服务层表示一个 Amazon RDS 实例。该层可以仅表示您必须使用 Amazon RDS 控制台或 API 单独创建的现有 Amazon RDS 实例。

将 Amazon RDS 服务层包含到堆栈中的基本过程如下所示:

  1. 使用 Amazon RDS 控制台、API 或 CLI 创建实例。

    务必记录实例的 ID、主用户名称、主密码和数据库名称。

  2. 要将 Amazon RDS 层添加到堆栈,请将 Amazon RDS 实例注册到堆栈。

  3. 将该层添加到应用程序,这会将 Amazon RDS 实例的连接信息添加到应用程序的 deploy 属性

  4. 使用语言特定文件或 deploy 属性中的信息将应用程序连接到 Amazon RDS 实例。

    有关如何将应用程序连接到数据库服务器的更多信息,请参阅将应用程序连接到数据库服务器

警告

请确保实例的主密码和用户名中的字符与应用程序服务器兼容。例如,对于 Java 应用程序服务器层,在任一字符串中包含 & 将导致阻止 Tomcat 服务器启动的 XML 分析错误。

指定安全组

要将 Amazon RDS 实例与 AWS OpsWorks Stacks 结合使用,数据库或 VPC 安全组必须允许来自相应的 IP 地址的访问。对于生产使用,安全组通常将访问对象限制为需要访问数据库的 IP 地址。此类地址通常包括您用于管理数据库的系统以及需要访问数据库的 AWS OpsWorks Stacks 实例的地址。AWS OpsWorks当您在区域中创建第一个堆栈时,Stacks 将自动为每种类型的层创建一个 Amazon EC2 安全组。为 AWS OpsWorks Stacks 实例提供访问权限的一个简单方法是将相应的 AWS OpsWorks Stacks 安全组分配给 Amazon RDS 实例或 VPC。

为现有 Amazon RDS 实例指定安全组
  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,单击实例,然后选择适当的 Amazon RDS 实例。单击 Instance ActionsModify

  3. Security Group 列表中选择以下安全组,然后单击 ContinueModify DB Instance 以更新实例。

    • AWS-OpsWorks-DB-Master-Server (security_group_id) 安全组。

    • 其实例将连接到数据库的应用程序服务器层的安全组。组名称包含层名称。例如,要向 PHP 应用程序服务器实例提供数据库访问权限,请指定 AWS-OpsWorks-PHP-App-Server 组。

如果您要创建新 Amazon RDS 实例,则可在“启动数据库实例”向导的配置高级配置页上指定相应的 AWS OpsWorks Stacks 安全组。有关如何使用此向导的说明,请参阅创建 MySQL 数据库实例并连接到 MySQL 数据库实例上的数据库

有关如何指定 VPC 安全组的信息,请参阅您的 VPC 的安全组

将 Amazon RDS 实例注册到 Stack

要在堆栈中添加 Amazon RDS 服务层,您必须将一个实例注册到堆栈。

将 Amazon RDS 实例注册到堆栈
  1. 在 AWS OpsWorks Stacks 控制台中,单击导航窗格中的 Layer (层),单击 + Layer (增加层)Add a layer (添加层) 以打开 Add Layer (添加层) 页,然后单击 RDS 选项卡。

  2. 必要时更新堆栈的服务角色,如更新堆栈的服务角色中所述。

  3. 单击 RDS 选项卡以列出可用的 Amazon RDS 实例。

    注意

    如果您的账户没有任何 Amazon RDS 实例,您可通过单击“RDS”选项卡上的添加 RDS 实例创建一个,这会让您转到 Amazon RDS 控制台并启动启动数据库实例向导。您还可直接转到 Amazon RDS 控制台并单击启动数据库实例,或者使用 Amazon RDS API 或 CLI。有关如何创建 Amazon RDS 实例的更多信息,请参阅《Amazon RDS 入门指南》。

  4. 选择合适的实例,将 UserPassword 设置为合适的用户和密码值,然后单击 Register to Stack

    重要

    您必须确保您用于注册 Amazon RDS 实例的用户和密码与有效的用户和密码对应。如果它们不对应,您的应用程序将无法连接到该实例。但是,您可编辑层以提供有效的用户和密码值,然后重新部署应用程序。

当您将 Amazon RDS 服务层添加到堆栈时,AWS OpsWorks Stacks 会为该层分配一个 ID 并将关联的 Amazon RDS 配置添加到堆栈配置和部署属性的 [:opsworks][:stack] 属性。

注意

如果您更改了已注册 Amazon RDS 实例的密码,则必须在 AWS OpsWorks Stacks 中手动更新密码,然后重新部署您的应用程序以更新堆栈的实例上的堆栈配置和部署属性。

更新堆栈的服务角色

每个堆栈都有一个 IAM 服务角色,用于指定 AWS OpsWorks Stacks 可代表您对其他 Amazon Web Service 执行的操作。要将 Amazon RDS 实例注册到堆栈,堆栈的服务角色必须为 AWS OpsWorks Stacks 授予访问 Amazon RDS 的权限。

首次将 Amazon RDS 服务层添加到您的堆栈之一时,服务角色可能缺少必需的权限。如果是这样的话,当您单击 Add Layer 页上的 RDS 选项卡时,您将看到以下内容。

单击 Update (更新) 以让 AWS OpsWorks Stacks 将服务角色的策略更新为以下内容。

{"Statement": [{"Action": ["ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:*", "rds:*"], "Effect": "Allow", "Resource": ["*"] }] }
注意

您只需要执行一次更新。之后所有堆栈将自动使用更新后的角色。

将 Amazon RDS 服务层与应用程序关联

在添加 Amazon RDS 服务层之后,可将其与应用程序关联。

  • 您可在创建应用程序时将 Amazon RDS 层与应用程序关联,也可在之后通过编辑应用程序的配置达到此目的。

  • 要取消 Amazon RDS 层与应用程序的关联,请编辑应用程序的配置以指定其他数据库服务器或不指定服务器。

    Amazon RDS 层仍是堆栈的一部分,并且可与其他应用程序关联。

将 Amazon RDS 实例与应用程序关联后,AWS OpsWorks Stacks 会将数据库连接信息放在应用程序的服务器上。每个服务器实例上的应用程序随后可使用此信息连接到数据库。有关如何连接到 Amazon RDS 实例的更多信息,请参阅 将应用程序连接到数据库服务器

从堆栈中删除 Amazon RDS 服务层

要从堆栈中删除 Amazon RDS,请将其取消注册。

取消注册 Amazon RDS 服务层
  1. 单击导航窗格中的并单击 Amazon RDS服务层的名称。

  2. 单击 Deregister 并确认您要取消注册该层。

此过程将从堆栈中删除该层,但它不会删除基础 Amazon RDS 实例。该实例和任何数据库将保留在您的账户中并且可注册到其他堆栈。您必须使用 Amazon RDS 控制台、API 或 CLI 删除该实例。有关更多信息,请参阅删除数据库实例