【问题标题】:AWS architecture [closed]AWS架构[关闭]
【发布时间】:2015-12-25 16:09:15
【问题描述】:

我们有大约 10 个不同的 AWS 账户,我正在内部构建一个应用程序,用于查看这些账户上的活动。该活动由启动的不同节点组成,包括与每个账户相关的使用情况和成本。我是计划在内部门户网站上展示它。 这里的挑战是我需要存储和显示从 aws-sdk 获得的任何数据。 我需要一些关于架构这种平台的建议,我希望数据尽可能实时。

任何建议都会很棒

【问题讨论】:

    标签: ruby-on-rails amazon-web-services aws-opsworks


    【解决方案1】:

    我认为架构的最佳选择是:无。原因是:你不需要它。使用 CloudTrail 报告活动,并使用计费报告成本。 AWS 现在支持联合账户,并且使用 IAM,您可以轻松配置一个角色,该角色只能查看所有账户的数据。

    【讨论】:

    • 不确定您是否正确理解我的问题,我们每个帐户下都有一堆节点。通过拥有多个帐户,很难跟踪节点。我已经写了一个每天收集数据的应用程序将所有 aws 基础设施数据存储在 mysql 数据库中。您在 10 个 aws 帐户下看到的相同数据我在一个应用程序上显示。唯一的区别是我根据团队、产品对数据进行排序。现在我想让它更实时而不是每天。
    • “跟踪节点”是什么意思?
    • 通过存储实时数据,我可以在任何给定时间跟踪在给定日期终止、停止或启动的节点数量。当我说跟踪节点时,我指的是基础设施使用情况,如 ELB、EC2、RDS等等。同样,我不是在寻找指标。只是正在使用的基础设施列表。我可以使用 aws-sdk 获取这些数据,但是,我想存储它们并在应用程序上实时显示它们。对于例如,如果用户启动 EC2 节点或 RDS,我想获取该基础设施详细信息并将其显示在我的内部应用程序上。延迟不应超过 30 到 60 分钟
    • 我仍然坚信 CloudTrail 是您所需要的。另外:它将提供许多其他功能(如实时通知),就像所有其他 AWS 服务将随着时间的推移而丰富,您不必维护解决方案等......如前所述,它可以在多个帐户。我真的看不出有任何理由用自定义解决方案重新实现它。
    • @MatteoSp,CloudTrail 仅提供原始数据。仍然必须有一个“架构”来摄取、解释、构造、存储、索引、检索和呈现数据。
    【解决方案2】:

    看看traildash。这是 cloudtrail 的多合一仪表板。其他 cmets 是 100% 正确的,AWS 已经提供了大部分,Traildash 只是在上面包装了一个漂亮的 GUI。

    【讨论】:

      【解决方案3】:

      不确定这个问题是否已经得到解决,但这是我的看法。

      如果我猜对了,这个问题是关于如何定期自动监控多个账户的 aws 资源(ec2、s3 等)。

      以编程方式,我建议星型拓扑具有服务帐户,并通过担任角色通过它访问所有其他帐户。这样我们就不需要在本地为这些账户保留 aws accessKey/secretKey,从而具有更好的安全性。

      实施与在服务帐户中创建的新角色/策略有关,该角色/策略指定了它可以承担的帐户 ID/角色列表,以及在每个其他帐户中创建的允许读取访问权限的新角色/策略自己的资源。

      以下是访问 ec2 实例的策略示例供您参考:

      服务帐号政策:

      {
         "Version": "2012-10-17",
         "Statement": [
         {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
         "AWS": [
                "arn:aws:iam::ACCOUNT-ID-A:role/ROLE-A",
                "arn:aws:iam::ACCOUNT-ID-B:role/ROLE-B”,
                "arn:aws:iam::ACCOUNT-ID-C:role/ROLE-C”,
                "arn:aws:iam::ACCOUNT-ID-D:role/ROLE-D”,
                "arn:aws:iam::ACCOUNT-ID-E:role/ROLE-E”,
         ]
         },
         "Action": "sts:AssumeRole"
         }
         ]
      }
      

      普通账户政策:

      {
          "Version": "2012-10-17",
          "Statement": {
          "Effect": "Allow",
          "Action": “ec2:DescribeInstances",
          "Resource": “arn:aws:ec2:Account-ID-A:instance/*"
      }
      

      【讨论】:

        【解决方案4】:

        AWS 云跟踪是满足您要求的最佳选择。将所有云跟踪日志存储在 S3 上并将其提取到您想要显示它们的位置。 您可以使用 Graylog 之类的日志聚合工具来获得用户体验,并根据您的要求提供各种仪表板。

        希望这会有所帮助...

        谢谢 基兰

        【讨论】:

          猜你喜欢
          • 2020-11-08
          • 2011-04-01
          • 2020-04-23
          • 2012-11-18
          • 2016-01-17
          • 2010-09-12
          • 2018-01-27
          • 2016-10-07
          • 1970-01-01
          相关资源
          最近更新 更多