亚马逊RDS服务层 - AWS OpsWorks

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

亚马逊RDS服务层

重要

这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过 AWS 高级支持

亚马逊RDS服务层代表一个亚马逊RDS实例。该层只能代表现有的 Amazon RDS 实例,您必须使用亚马逊RDS控制台或单独创建这些实例API。

将 Amazon RDS 服务层整合到您的堆栈中的基本步骤如下:

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

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

  2. 要向您的堆栈中添加 Amazon RDS 层,请在堆栈中注册 Amazon RDS 实例。

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

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

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

警告

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

指定安全组

将 Amazon RDS 实例与 AWS OpsWorks 堆栈、数据库或VPC安全组必须允许从相应的 IP 地址进行访问。对于生产使用,安全组通常将访问对象限制为需要访问数据库的 IP 地址。它通常包括用于管理数据库的系统的地址以及 AWS OpsWorks 堆叠需要访问数据库的实例。 AWS OpsWorks 当您在某个地区创建第一个堆栈时,堆栈会自动为每种类型的层创建一个 Amazon EC2 安全组。一种为以下对象提供访问权限的简单方法 AWS OpsWorks 堆栈实例要分配相应的 AWS OpsWorks 将安全组堆叠到 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 App Server 实例的数据库访问权限,请指定 AWS-OpsWorks-PHP-App- Server 组。

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

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

使用堆栈注册 Amazon RDS 实例

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

使用堆栈注册 Amazon RDS 实例
  1. 在 AWS OpsWorks Stacks 控制台,在导航窗格中单击 “图”,单击 “+ 图层” 或 “添加图层” 打开 “添加图层” 页面,然后单击RDS选项卡。

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

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

    注意

    如果您的账户没有任何 Amazon RDS 实例,则可以通过单击RDS选项卡上的添加RDS实例来创建一个,这将带您进入亚马逊RDS控制台并启动 “启动数据库实例” 向导。您也可以直接进入亚马逊RDS控制台并单击 “启动数据库实例”,或者使用 Amazon RDS API 或CLI。有关如何创建亚马逊RDS实例的更多信息,请参阅亚马逊入门RDS

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

    重要

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

RDS instance details showing connection information for opsinstance2 with MySQL engine.

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

注意

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

更新堆栈的服务角色

每个堆栈都有一个IAM服务角色,用于指定哪些操作 AWS OpsWorks Stacks 可以代表您使用其他AWS服务执行任务。要向堆栈注册 Amazon RDS 实例,其服务角色必须授予 AWS OpsWorks 堆叠访问亚马逊RDS的权限。

首次向其中一个堆栈添加 Amazon RDS 服务层时,该服务角色可能缺少所需的权限。如果是,当您单击 “添加图层” 页面上的RDS选项卡时,您将看到以下内容。

Warning message about OpsWorks IAM role needing RDS instances access policy.

单击 “更新” 即可获得 AWS OpsWorks 堆栈会将服务角色的策略更新为以下内容。

{"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来删除实例。有关更多信息,请参阅删除数据库实例