# Google计算引擎

Google计算引擎| 原作者 | Google, Inc. |
| 開發者 | Google |
| 首次发布 | 2012年6月28日​（2012-06-28） |
| 操作系统 | * Linux
* FreeBSD
* NetBSD
* Microsoft Windows
 |
| 语言 | 英语 |
| 类型 | 虚拟专用服务器 |
| 许可协议 | 专有软件 |
| 网站 | cloud.google.com/compute/ |
|  |

**Google计算引擎**（Google Compute Engine，**GCE**）是一项Google雲端平台的基礎設施即服務（IaaS）组成部分，它基于驱动Google搜索引擎、Gmail、YouTube和其他服务的全球基础设施。Google计算引擎可使用户按需启动虛擬機器（VM）。虚拟机可通过标准镜像或用户创建的自定义镜像启动。GCE用户必须先在启动虚拟机前通过基于OAuth 2.0的认证。Google计算引擎可通过开发者控制台、RESTful API或命令行界面（CLI）访问。

## 历史

Google于2012年6月28日的Google I/O大会上宣布了仍处于预览模式的计算引擎。2013年4月，计算引擎首先向拥有黄金支持（Gold Support Package）的用户提供。2013年2月25日，Google宣布RightScale为首个代理商。在2013年的Google I/O大会上,官方宣布了许多特性，如按时计费、共享核心实例类型、更大的持久存储硬盘、基于网络能力的增强SDN和ISO/IEC 27001证明等。GCE于2013年5月15日正式向所有用户开放。第三层的负载均衡于2013年8月7日起可用。最终在2013年12月2日，Google宣布GCE已普遍可用。同时官方也扩展了操作系统支持、启用虚拟机动态迁移、提供16核实例、更快速的持久存储硬盘并降低了标准实例的价格。

在2014年3月的Google云端平台直播上，技术基础设施的高级副总裁乌尔斯·霍泽尔宣布了持续的用量减免、对Microsoft Windows Server 2008 R2、云端DNS和云端部署管理的支持。2014年5月28日，Google宣布了对LXC容器优化和一系列虚拟机实例中对Docker容器的动态调度。

## Google计算引擎单元

Google计算引擎单元（GCEU，读作GQ）是一个计算资源抽象。据Google所言，2.75个GCEU表示一个Sandy Bridge平台逻辑核心（一个硬件超執行緒）的最小计算能力。

## 持久存储硬盘

每个Google计算引擎实例均使用名为持续存储硬盘的硬盘资源启动。持续存储硬盘为实例提供存储空间并包含自实例启动时的根文件系统。持续存储硬盘可作为原始块设备使用。默认情况下，Google计算引擎使用SCSI接入持续存储硬盘。持续存储硬盘以一致、可靠的价格提供直接、一致且可靠的存储空间，同时移除了对本地临时磁盘的需求。持续存储硬盘需要在启动实例前创建。一旦其接入实例，硬盘即可被原生文件系统格式化。单一持续存储硬盘可以只读模式接入多个实例。每块持续存储硬盘最多可扩大到10TB。Google计算引擎使用AES-128-CB加密持续存储硬盘，这种加密方式在数据离开虚拟机监控尚未到达硬盘前即被应用。Google总是启用硬盘加密且这一过程对Google计算引擎用户透明。持续存储硬盘的完整性通过HMAC方案保证。

2014年6月18日，Google宣布了对SSD持续存储硬盘的支持。SSD最多可传递每GB 30次IOPS，相比标准的持续存储硬盘的写入IOPS提高了20倍，而读取IOPS更是快了100倍。

## 镜像

镜像是包含操作系统和根文件系统的持续存储硬盘，对于启动实例来说至关重要。在创建实例或创建根持续存储硬盘时必须选中镜像。默认情况下，Google计算引擎在根据在根持续存储硬盘上定义的进行安装根文件系统。Google计算引擎提供CentOS与Debian作为标准Linux镜像。而 Red Hat Enterprise Linux（RHEL）和Microsoft Windows Server 2008 R2镜像需要额外费用才能使用。Google计算引擎同时支持基于Chromium OS的轻量级Linux操作系统CoreOS。

## 机器类型

Google计算引擎使用KVM作为管理程序，同时支持Linux于Windows的客户镜像用于启动基于64位x86架构的虚拟机。虚拟机从有着根文件系统的持续存储硬盘中启动。虚拟机支持的虚拟CPU数、内存大小基于所选择的机器类型。

## 计费及折扣

一旦实例运行了超过25%的计费周期时长，价格将开始下降：

* 一旦实例在一个月中使用了50%，用户将收到9折的按需收费折扣
* 一旦实例在一个月中使用了75%，用户将收到8折的按需收费折扣
* 一旦实例在一个月中使用了100%，用户将收到7折的按需收费折扣

## 机器类型对比

Google提供以下机型：

* 标准：每个虚拟CPU享有3.75GB内存
* 高内存：每个虚拟CPU享有6.5GB内存
* 高处理器：每个虚拟CPU享有0.9GB内存
* 共享核心：客户之间共享CPU和内存
* 兆内存：拥有大量内存，且内存/vCPU比高于高内存机器类型

下方列出的计费标准基于运行标准Debian或CentOS操作系统的Linux虚拟机。运行专有操作系统的虚拟机将会更贵。

| 预定义机器类型
 | 机器名
 | 虚拟核心
 | 内存
 | 每小时价格 (托管于美国地区)
 | 每小时价格 (托管于欧洲地区)
 |
| --- | --- | --- | --- | --- | --- |
| 标准
 | n1-standard-1
 | 1
 | 3.75GB
 | $0.070
 | $0.077
 |
| 标准
 | n1-standard-2
 | 2
 | 7.5GB
 | $0.140
 | $0.154
 |
| 标准
 | n1-standard-4
 | 4
 | 15GB
 | $0.280
 | $0.308
 |
| 标准
 | n1-standard-8
 | 8
 | 30GB
 | $0.560
 | $0.616
 |
| 标准
 | n1-standard-16
 | 16
 | 60GB
 | $1.120
 | $1.232
 |
| 高内存
 | n1-highmem-2
 | 2
 | 13GB
 | $0.164
 | $0.180
 |
| 高内存
 | n1-highmem-4
 | 4
 | 26GB
 | $0.328
 | $0.360
 |
| 高内存
 | n1-highmem-8
 | 8
 | 52GB
 | $0.656
 | $0.720
 |
| 高内存
 | n1-highmem-16
 | 16
 | 104GB
 | $1.312
 | $1.440
 |
| 高处理器
 | n1-highcpu-2
 | 2
 | 1.80GB
 | $0.088
 | $0.096
 |
| 高处理器
 | n1-highcpu-4
 | 4
 | 3.60GB
 | $0.176
 | $0.192
 |
| 高处理器
 | n1-highcpu-8
 | 8
 | 7.20GB
 | $0.352
 | $0.384
 |
| 高处理器
 | n1-highcpu-16
 | 16
 | 14.40GB
 | $0.704
 | $0.768
 |
| 共享核心
 | f1-micro
 | 1
 | 0.60GB
 | $0.013
 | $0.014
 |
| 共享核心
 | g1-small
 | 1
 | 1.70GB
 | $0.035
 | $0.0385
 |
| 兆内存
 | n1-ultramem-40
 | 40
 | 938GB
 | $6.3039 (爱荷华州)
 | $6.9389 (比利时)
 |
| 兆内存
 | n1-ultramem-80
 | 80
 | 1922GB
 | $12.6078 (爱荷华州)
 | $13.8779 (比利时)
 |
| 兆内存
 | n1-megamem-96
 | 96
 | 1433.6GB
 | $10.6740 (爱荷华州)
 | $11.7430 (比利时)
 |
| 兆内存
 | n1-ultramem-160
 | 160
 | 3844GB
 | $25.2156 (爱荷华州)
 | $27.7557 (比利时)
 |

## 资源

计算引擎连接多个称之为资源的实体作为部署过程之一。每个资源拥有不同的功能。当虚拟机实例启动时将创建一个使用其他资源的实例资源，如磁盘资源、网络资源与镜像资源。例如，一个磁盘资源将作为虚拟机的数据存储，就像物理硬盘一样；而网络资源调节进出实例的流量。

### 镜像

一个镜像资源包含操作系统与对启动实例至关重要的根文件系统。Google维护并提供现成的镜像，用户也可以使用自定义镜像来创建实例。需求不同，用户也可以将镜像应用至持续存储硬盘并使用持续存储硬盘作为根文件系统。

### 机型

实例的机器类型决定了核心数、内存及由实例所支持的I/O操作。

### 磁盘

持续存储硬盘独立于虚拟机且比实例的寿命更长。任何存储在持续存储硬盘上的信息均在写入物理介质前被加密，且密钥被Google严格把控。

| 类型 | 价格 (GB/月)
 |
| --- | --- |
| 标准空间 | $0.04
 |
| SSD空间 | $0.17
 |
| 快照存储 | $0.026
 |
| IO操作 | 无额外收费
 |

每个实例仅可接入特定数量的持续存储硬盘空间（大多数实例上最多可有64TB存储空间）与特定数量的独立持续存储硬盘（大多数实例上最多可接入16个独立的持续存储硬盘）。

### 快照

持续存储硬盘快照使得用户可从已有的持续存储硬盘上复制数据并拷贝到新的硬盘上。这对备份持续存储硬盘的数据以防遭遇意外损坏与区域维护是及其有用的。

### 实例

一个Google计算引擎实例是一个运行Linux或微软Windows操作系统的虚拟机。用户可选择更改实例的硬件、操作系统、磁盘及其他配置。

### 网络

网络定义所有连接至实例的地址范围与网关地址。它定义了可相互通信、可与其他网络通信和可与外界通信的实例数量。每个实例属于单一网络且任何介于不同网络的实例必须通过公共IP地址通信。

您的云端平台控制台可包含多个网络，且每个网络可拥有多个使用此网络的实例。您可定义实例网络的网关IP及网络范围。默认情况下，Google提供每个项目有着预设配置及防火墙规则的默认网络。您可通过添加或移除规则自定义默认网络，或您可在项目中创建新网络。通常情况下，虽然用户默认情况下可最多拥有五个网络，但大多数用户实际上只需要一个网络。

一个网络仅由一个项目拥有，且每个实例仅可属于一个网络。所有的计算引擎网络均使用IPv4协议。计算引擎当前不支持IPv6协议。然而，Google是主要的IPv6支持者且认为IPv6是重要的未来走向。

### 地址

当创建实例时，默认情况下将自动分配实例一个临时外部IP。此地址在使用实例时被自动接入，一旦关闭实例则将被自动断开。GCE同时也提供为虚拟机保留静态IP地址的机制。临时外部IP可转入静态IP地址。

### 防火墙

一个防火墙资源包含允许进入实例的一个或多个规则。每个防火墙资源仅可与一个网络关联。用户无法将防火墙与多个网络相关联。除非防火墙允许网络流量进入实例，否则将不允许与任何实例通信，甚至是对于处在相同网络的实例而言。

### 路由

Google计算引擎提供管理特定IP区间的路由表。与局域网的物理路由器类似，所有的出站通信将与路由表对比并在出站包符合路由表中规则时被正确转发。

## 区域和地区

区域指Google基础设施的地理位置。用户可根据需求选择部署资源在其中一个可用地区。截止2018年8月13日，Google计算引擎可用于美洲、欧洲与亚太区域。

地区指区域内的独立位置。在相同区域的不同地区之间有着高带宽、低延迟的网络连接。为了部署有着高可用性的容错程序，Google推荐在不同区域的多个地区部署应用。这可防止用户在一个地区内遭遇组件故障。截止2018年8月13日，Google计算引擎可用于俄勒冈州、爱荷华州、南卡罗来纳州、北弗吉尼亚、蒙特利尔、圣保罗、伦敦、比利时、法兰克福、荷兰、孟买、新加坡、彰化、东京、悉尼地区。

## 资源范围

所有GCE的资源均在全球、区域或地区范围内可用。全球资源可被所有区域与地区访问。例如，镜像就是一项用户可用于启动任何区域内虚拟机的全球资源。但地址是仅可用于启动于相同区域中一个地区虚拟机的区域资源。在特定地区中启动的实例需要指定地区以作为对该实例发送的所有请求的一部分。

下表总结了GCE资源范围：

| 范围
 | 资源
 |
| --- | --- |
| 全球
 | 镜像
 |
| 全球
 | 快照
 |
| 全球
 | 网络
 |
| 全球
 | 防火墙
 |
| 全球
 | 路由
 |
| 区域
 | 地址
 |
| 地区
 | 实例
 |
| 地区
 | 机型
 |
| 地区
 | 磁盘
 |

## 特性

### 计费与定价模型

Google至少向虚拟机收取10分钟的费用。在第10分钟结束时，实例将以1分钟为增量单位计费，并四舍五入到最近的分钟。基于价格的持续用量将基于月用量给予用户折扣。用户无需在获取定期、按期计价折扣前支付承诺费。

### 虚拟机性能

计算引擎虚拟机可在30秒内开机，相比竞争对手的开机速度快了4至10倍。

### 磁盘性能

计算引擎的持续存储硬盘可提供持续的高IOPS。由于IOPS计费包含在存储计费内，所以用户无需为IOPS单独付费。

### 全球范围镜像及快照

镜像及磁盘快照属于全球范围，意味着它们可用于Google云端平台的所有区域与地区。这防止了需要在区域间导入导出快照的行为。

### 透明维护

在Google数据中心的预计维护期间，计算引擎可在无需用户操作的情况下将自动转移虚拟机从一台主机至另外一台。这为程序提供了更好的正常运行时间。

* 官方网站
* YouTube上的Google I/O 2012 - 介绍Google计算引擎
* Google Compute Engine 教學
* Google Kubernetes Engine 教學
* Google Cloud Platform 教學