Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 可能提供;委托书;每晚重新创建的RDS实例的连接信息?_Amazon Web Services_Amazon Rds_Amazon Route53_Amazon Elb - Fatal编程技术网

Amazon web services 可能提供;委托书;每晚重新创建的RDS实例的连接信息?

Amazon web services 可能提供;委托书;每晚重新创建的RDS实例的连接信息?,amazon-web-services,amazon-rds,amazon-route53,amazon-elb,Amazon Web Services,Amazon Rds,Amazon Route53,Amazon Elb,我有一个生产数据库(AWS RDS MySQL实例),我的应用程序可以与之交互并收集各种数据 我被要求创建此生产数据库的夜间快照,然后使用该快照创建一个新的数据库实例(从快照还原),该实例将用作分析数据库,几个分析工具将连接到该数据库并对其运行分析/报告 出于本问题范围之外的原因,不可能使用读取副本配置生产数据库,但可以,这将解决我遇到的问题。这是 如果每天晚上我都是: 删除现有的分析数据库 创建生产数据库的快照 创建新的分析数据库 使用最新快照还原新的analytics DB …然后每天晚上分

我有一个生产数据库(AWS RDS MySQL实例),我的应用程序可以与之交互并收集各种数据

我被要求创建此生产数据库的夜间快照,然后使用该快照创建一个新的数据库实例(从快照还原),该实例将用作分析数据库,几个分析工具将连接到该数据库并对其运行分析/报告

出于本问题范围之外的原因,不可能使用读取副本配置生产数据库,但可以,这将解决我遇到的问题。这是

如果每天晚上我都是:

  • 删除现有的分析数据库
  • 创建生产数据库的快照
  • 创建新的分析数据库
  • 使用最新快照还原新的analytics DB
  • …然后每天晚上分析工具都需要更新其连接信息,以便能够连接到新实例,这将变得很麻烦。用户名、密码和数据库名称将始终相同(每晚),但主机信息将更改,因为它将始终是新的RDS实例

    同样,如果有一个专门的读取副本提供给分析数据库,这里就不会有问题。我会为我的分析工具提供一次读取副本的连接字符串信息,我会准备好的。但同样,由于我无法控制的原因,读取副本解决方案不可能实现


    因此,我问:是否有任何Route53、ELB或其他“AWS魔术”可以用来为我的分析工具提供一个主机名“代理”,以某种方式指向新的分析数据库(即使它每天晚上都被重新创建)?

    我认为解决您的问题的一种方法是在Route53中创建与VPC相关的(PHZ)。使用PHZ,您可以为代理创建别名记录,例如
    proxy.private
    。因此,您可以使用
    proxy.private
    代替RDS代理创建的默认url

    当然,由于您每天都创建新的代理,因此必须更新PHZ中的记录,以便
    proxy.private
    指向新的代理url。PHZ中记录的更新取决于您每天设置新代理的方式(使用CloudForamtion、完全手动、lambda Function等)


    但最常用的方法是为API事件(需要CloudTrail trail)设置EventBridge(EB)规则,该规则将侦听与创建代理相关联的API事件(
    CreateDBProxy
    )。EB规则可能会在响应
    CreateDBProxy
    事件时触发lambda函数,该函数将等待代理可用并自动更新记录。

    此过程是自动执行的,还是手动执行的?此外,您的分析工具在VPC内运行,在ec2实例上?您好@Marcin,是的,这些工具在与分析数据库相同的VPC内的ec2实例上运行感谢@Marcin(+1)。这是一个非常令人信服的答案。让我在这里提供更多的细节,可能会进一步完善您的答案。我将在JavaLambda中使用JavaSDK完成所有这些工作(是的,这是自动化的)。因此,我可以在Route53内手动设置别名
    proxy.private
    ,一次。但是我需要从lambda内部更新
    proxy.private
    别名。据您所知,这是否可以通过AWS SDK(Java、Python或其他)实现?再次感谢@是的,我不认为制作这样一个lambda函数有什么问题。Lambda将使用java、python或Lambda支持的任何其他语言与route53和rds代理进行交互。问题是如何触发函数,这取决于代理的创建方式。再次感谢,我将等到明天,看看是否还有其他想法,但我喜欢这个想法,很可能会在早上将其标记为已接受的答案。@HotmeatBallshop是的,没有问题:-)BTW@Marcin,但我在查找新DB实例的IP地址时遇到问题,无法更新记录。如果您熟悉53号路线,并能对此有所了解,我也很乐意为您解答这个问题!再次感谢!