aws的分类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aws的分类相关的知识,希望对你有一定的参考价值。

参考技术A

计算类:
EC2(Elastic Compute Cloud)是一种弹性云计算服务,可为用户提供弹性可变的计算容量,通常用户可以创建和管理多个虚拟机,在虚拟机上部署自己的业务,虚拟机的计算能力(CPU、内存等)可以根据业务需求随时调整。
Elastic IP Addresses(弹性IP地址) – 弹性IP地址是为动态云计算设计的静态IP地址。一个弹性IP地址是和你的账户相关,而不是和你的一个特定实例相关。不像传统的静态IP地址,弹性IP地址可以通过重新匹配你的共有IP地址到你账户任意的实例,从而让你可以忽略实例或者可用区域的错误。连接本质上是通过NAT1:1的匹配每个Elastic IP和Private IP。
Elastic MapReduce:EMR采用运行在亚马逊EC2和S3的托管Hadoop框架上。以立即获得满足需要的计算能力,例如网页索引、数据挖掘等数据密集型任务,轻松、经济地处理海量数据,不用担心对Hadoop集群耗时的设置、管理或调优。
AS(Auto Scaling)自动伸缩服务:允许用户根据需要控制亚马逊EC2自动扩大或减小计算能力。用户利用AS可以无缝地增加EC2的实例数量,以保证使用高峰期的性能,也可以在需求停滞时自动减少以降低成本。AS特别适合那些需求按小时、天或周规律变化的应用程序。AS由亚马逊CloudWatch控制,并且用户不必支付CloudWatch以外的其他服务费用。
ELB (Elastic Load Balancing)弹性负载平衡:自动将入口流量分配到多个亚马逊EC2实例上。弹性负载平衡在实例池中不断检测不正常的实例,并自动引导路由流量到正常的实例上,直到不正常的实例恢复正常。客户可以在单一的数据中心进行负载平衡,更可以在跨中心的应用上获得相同的功能。兼容IPv6,数据来自于CloudWatch
部署&管理类:  
ACW (Amazon CloudWatch)云监控服务:监控亚马逊自身提供的云资源以及在云上运行的应用程序。提供可视化监测,并且可以利用API调用进一步处理监控的数据。
Amazon WorkSpaces:是一种虚拟桌面服务,托管在Amazon的云中。用户可以选择任何终端设备(如笔记本电脑、iPad、Kindle Fire或android平板电脑)访问 Amazon WorkSpaces,获得与传统办公桌面一样的使用体验,更能享受节约设备成本、保证个人数据安全、随时随地办公等便利。
网络类:  
R53(Amazon Route 53)亚马逊53号路由:Domain Name System web service(网络域名服务)。提供从基础设施(EC2实例,ELB,或者S3)到IP地址的映射。
VPC (Virtual Private Cloud)虚拟私有云:在亚马逊公有云之上创建一个私有的,隔离的云。可以像在自己的数据中心一样定义VPC的拓扑结构。可以和公司现有的数据中心互通。可以利用NAT使得子网不暴漏内网IP,公用一个IP地址与外界通讯。通过NAT设置访问控制,保护数据安全性。
存储类:
S3 (Simple Storage Service) :亚马逊简单存储服务(S3)是一种网络存储服务,可为用户提供持久性、高可用性的存储。用户可以将本地存储迁移到Amazon S3,利用 Amazon S3 的扩展性和按使用付费的优势,应对业务规模扩大而增加的存储需求,使可伸缩的网络计算更易于开发。
EBS (Elastic Block Store)弹性数据块存储:EBS卷是独立于实例的存储,可作为一个设备动态连接到运行着的亚马逊EC2实例上。EBS特别适合于单独需要一个数据库、文件系统、或访问原始块存储的应用程序。
应用服务类:
SQS (Simple Queue Service)简单消息队列服务:提供消息存储队列,使消息可以在计算机之间传递,在执行不同任务的分布式应用组件之间轻松的转移数据,既不会丢失信息,也不要求每个组件都保持可用。SQS可以与亚马逊EC2和其他AWS的基础设施网络服务紧密结合在一起,方便地建立自动化的工作流程。SQS以网络服务的形式运行,对外发布一个web消息框架。Internet中任何计算机都可以添加或阅读消息,而不必安装任何软件或配置特殊的防火墙。使用SQS的应用组件可以独立运行,不需要在同一网络中使用相同的技术开发,也不必在同一时间运行。  
SNS (Simple Notification Service)简单通知服务:在云中安装、处理或发送通知。它为开发人员提供了一种从应用程序发布消息,并立即传送给订阅者或其他应用程序的能力,用于创建通知某应用程序(或客户)某方面的主题。客户订阅这些主题,并使用客户选定的通信协议(例如,HTTP,电子邮件等)发布消息。亚马逊SNS的潜在用途包括监控,工作流系统,时间敏感的信息更新,移动应用等等。
数据库类:
SDB (Amazon SimpleDB)简单数据库:非关系型数据存储服务
RDS (Relational Database Service):是一种基于云的关系型数据库服务,用户可以在云中配置、操作和扩展关系数据库。Amazon RDS 支持 mysql、Oracle、Microsoft SQL Server 或 PostgreSQL 等关系型数据库。用户无需本地维护数据库,由Amazon RDS为用户管理。
支付类:
FPS (Flexible Payments Service)灵活支付服务  
ADP (Amazon DevPay)亚马逊支付设计
内容交付类:
CloudFront 云前:整合亚马逊其他云服务产品,完成高效快速的分布式内容交互。
人工服务类:
AMT (Amazon Mechanical Turk)机械的土耳其人:“机械的土耳其人”一词来源:这个名字源自于臭名远扬的能下象棋的“自动装置”,它是匈牙利男爵沃尔夫冈·冯·肯佩伦(Wolfgang Von Kempelen)1770年建造的。这个木制机器外形像一个坐在大机箱前的土耳其魔法师,它能自动而快速地下象棋,用复杂的齿轮和杠杆系统来移动棋子。在维也纳皇宫的首次表演中,它就迅速击败了对手Cobenzl伯爵,让在场的皇室成员看得十分高兴。从此关于这个惊人聪明的机器人迅速闻名于世,于是肯佩伦带着它在欧洲各地表演,击败了一系列著名的挑战者,包括拿破仑和本杰明·富兰克林。直到几年之后,这个骗局才被揭穿。原来机箱里藏了一名象棋大师,他用一个磁铁系统来跟踪对手的举动并移动自己的棋子,这个人实际是在模拟一种人工智能。
虽然计算技术不断发展,但仍有很多事情人类做的比计算机更有效,比如确定照片或视频中的对象,执行重复数据的删除,抄录音频资料或研究数据的细节。一般来说,完成这样的任务通常需要雇用大量临时工人(这是耗时、昂贵和难以企及的),或者干脆没法完成。
亚马逊机械的土耳其人(AMT)完成的是一种类似模拟人工智能的业务,它把人“藏”在一个软件程序中,用他们执行电脑不太善于完成的任务。例如假设程序员在写一个应用软件程序,其中有一个步骤是识别数字照片中的建筑物——这个任务会让电脑为难,但由人去做却很容易。这位程序员在用AMT服务时,可以编写几行简单的源代码,从而获取必要的情报。在该程序运行到某个指定时刻,在亚马逊公司的Turk网站上会自动贴出一个关于“由人执行任务”的要求,而人们会争着完成这项任务,以换取程序员设定的报酬。依据亚马逊公司在其网站上的解释,AMT表明人与电脑之间不寻常的颠倒关系:“当我们想到人与电脑的接口时,我们通常认为人是提出要完成的任务的一方,而电脑是完成运算任务并提供结果的一方。假使这个过程倒过来,由电脑程序要求人完成这个任务并返回结果,那又会如何呢?Mechanical Turk就是这么做的,它把人的行为和判断变成了软件程序中的功能。不是电脑为我们工作,而是我们为电脑工作。
基于以上的弹性计算、存储、数据库、应用程序服务组合,AWS可以为企业提供完整的IT业务解决方案。最关键的是,AWS是按需使用、即用即付的模式,能够灵活应对企业快速多变的IT需求。

[dfs] aw168. 生日蛋糕(dfs剪枝与优化+分类讨论+思维+公式推导+数学+好题)

1. 题目来源

链接:168. 生日蛋糕

2. 题目解析

非常非常经典的题目,优化很难…

首先的首先,理解题意,问题抽象。在总体积为 n,总层数为 m 的情况下确定每层的 rh,使得要去的蛋糕外表面积最小。


首先确定枚举顺序,枚举每层情况,再枚举每层的 rh,保证 rh 是递增的整数。枚举的种类是指数级别的,需要加入大量剪枝才可能通过本题。

优化:

  • 优化搜索顺序:从底向上枚举蛋糕每一层,因为底层占用体积大,后续分支少。每层中先枚举 r 再枚举 h 且也是从大到小枚举,因为 r 是平方级别,变化快。
  • 可行性剪枝与最优化剪枝:
    • 如果上一层半径和高度确定,那么对于本层来讲,半径最少是所在的层高,因为最小高度是 1,最大不能比下一层大。高度同样如此。故高度和半径都在枚举时有范围限制。
    • 如果前面所有层已经用了 v 体积和 s 表面积,那么如果后面所有层即便按照最小半径、高度分配也无法构成蛋糕或者更新最优解的话,也可以直接返回。
    • 推导体积和表面积公式之间的联系,这个是最难的,如果不加这个条件,在数据较强的情况下容易 TLE用体积估算前 u 层的最小表面积。

太难了。


具体剪枝推导,来自大佬

在这里插入图片描述


自己的手写笔记,比较乱:
在这里插入图片描述


时间复杂度: O ( 指 数 级 ) O(指数级) O()

空间复杂度: O ( n ) O(n) O(n)


#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include  <cmath>

using namespace std;

const int N = 25;

int n, m;
int minv[N], mins[N];
int R[N], H[N];
int res = 1e9;

// 自底向上,处理第 u 层,v 为之前的总体积,s 为之前的表面积
void dfs(int u, int v, int s) {
    if (v + minv[u] > n) return ;           // 可行性剪枝
    if (s + mins[u] >= res) return ;        // 最优性剪枝
    if (s + 2 * (n - v) / R[u + 1] >= res) return ;     // 体积和面积关系,剪枝

    if (!u) {                               // 搜完所有层
        if (v == n) res = s;                // 如果体积恰好等于 n,则此时的 s 一定可以更新 res
        return ;
    }

    // 先枚举 r,再枚举 h,且从大到小枚举
    for (int r = min(R[u + 1] - 1, (int)sqrt(n - v)); r >= u; r -- ) 
        for (int h = min(H[u + 1] - 1, (n - v) / r / r); h >= u; h -- ) {
            int t = 0;
            if (u == m) t = r * r;  // 如果是底层,直接加上圆柱的红色面积,然后每层只需要加上侧面积即可
            R[u] = r, H[u] = h;     // 第 u 层的半径和高度确定
            dfs(u - 1, v + r * r * h, s + 2 * r * h + t);
        }
    
}

int main() {
    scanf("%d%d", &n, &m);

    for (int i = 1; i <= m; i ++ ) {
        minv[i] += minv[i - 1] + i * i * i;         // r^2*h    r=h=1
        mins[i] += mins[i - 1] + 2 * i * i;         // 侧面积
    }

    // 设置两个哨兵,关于 r[u], h[u] 的范围限制时,需要用到 r[u+1],h[u+1] 来取 min,所以需要设置两个哨兵
    R[m + 1] = H[m + 1] = 1e9;

    // 从 m 层开始,当前体积、表面积都是 0
    dfs(m, 0, 0);

    if (res == 1e9) res = 0;                        // 无解情况
    printf("%d\\n", res);

    return 0;
}

以上是关于aws的分类的主要内容,如果未能解决你的问题,请参考以下文章

AWS Glue Crawler 将 json 文件分类为 UNKNOWN

自动化测试中的AW的分类

[dfs] aw167. 木棒(dfs剪枝与优化+分类讨论+思维+好题)

[构造] aw3762. 二进制矩阵(困难模拟+分类讨论+简化代码+思维)

[dfs] aw168. 生日蛋糕(dfs剪枝与优化+分类讨论+思维+公式推导+数学+好题)

AWS Cloudwatch 上的警报设置