

# 区域及可用区
<a name="Concepts.RegionsAndAvailabilityZones"></a>

Amazon 云计算资源在全球多个位置托管。这些位置由 AWS 区域和可用区构成。每个 *AWS 区域* 都是一个单独的地理区域。每个 AWS 区域都有多个相互隔离的位置，称为*可用区*。

**注意**  
有关查找 AWS 区域的可用区的信息，请参阅 Amazon EC2 文档中的[描述可用区](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#availability-zones-describe)。

Amazon 运行着具有高可用性的先进数据中心。数据中心有时会发生影响托管于同一位置的所有数据库实例的可用性的故障，虽然这种故障极少发生。如果您将所有数据库实例都托管在受此类故障影响的同一个位置，则您的所有数据库实例都将不可用。

![\[AWS 区域\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/images/Con-AZ.png)


需要牢记的是，每个 AWS 区域都是完全独立的，这一点非常重要。您启动的任何 Amazon RDS 活动（如创建数据库实例或列出可用的数据库实例）都只会在您当前的默认AWS区域运行。可以在控制台中或通过设置 [https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-region](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-region) 环境变量更改原定设置 AWS 区域。或者，可以通过 AWS Command Line Interface（AWS CLI）使用 `--region` 参数来覆盖它。有关更多信息，请参阅[配置 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)，特别是有关环境变量和命令行选项的章节。

Amazon RDS 支持名为 AWS GovCloud (US) 的特殊 AWS 区域。此类区域旨在使美国政府机构和客户可以将较为敏感的工作负载移至云中。AWS GovCloud (US) 区域满足美国政府的特定法规和合规性要求。有关更多信息，请参阅[什么是 AWS GovCloud (US)？](https://docs.aws.amazon.com/govcloud-us/latest/UserGuide/whatis.html) 

要在特定AWS区域中创建或使用 Amazon RDS 数据库实例，请使用相应的区域服务端点。

**注意**  
Aurora 不支持 Local Zones。

## AWS 地区
<a name="Concepts.RegionsAndAvailabilityZones.Regions"></a>

从设计而言，每个 AWS 区域都与其他 AWS 区域隔离。此设计可实现最大程度的容错能力和稳定性。

当您查看资源时，只会看到与您指定的 AWS 区域关联的资源。这是因为 AWS 区域间彼此隔离，而且我们不会自动跨 AWS 区域复制资源。

### 区域可用性
<a name="Aurora.Overview.Availability"></a>

使用命令行界面或 API 操作处理 Aurora 数据库集群时，请确保您指定了其区域端点。

**Topics**
+ [Aurora MySQL 区域可用性](#Aurora.Overview.Availability.MySQL)
+ [Aurora PostgreSQL 区域可用性](#Aurora.Overview.Availability.PostgreSQL)

#### Aurora MySQL 区域可用性
<a name="Aurora.Overview.Availability.MySQL"></a>

下表显示了当前可以使用 Aurora MySQL 的AWS区域以及每个区域的端点。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html)

#### Aurora PostgreSQL 区域可用性
<a name="Aurora.Overview.Availability.PostgreSQL"></a>

下表显示了当前可以使用 Aurora PostgreSQL 的AWS区域以及每个区域的端点。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html)

## 可用区
<a name="Concepts.RegionsAndAvailabilityZones.AvailabilityZones"></a>

可用区是指定 AWS 区域中的隔离位置。每个区域都有多个可用区 (AZ)，旨在为该区域提供高可用性。可用区由 AWS 区域代码后跟字母标识符（例如，`us-east-1a`）标识。如果您创建 VPC 和子网而不是使用默认 VPC，则可以在特定可用区中定义每个子网。当您创建 Aurora 数据库集群时，Aurora 会在 VPC 的数据库子网组的其中一个子网中创建主实例。这样，它就可以将该实例与 Aurora 选择的特定可用区相关联。

每个 Aurora 数据库集群都将其存储副本托管在三个独立的可用区中，这些可用区由 Aurora 自动从数据库子网组中的可用区中选择。集群中的每个数据库实例必须位于这三个可用区之一。

在集群中创建数据库实例时，如果未指定可用区，Aurora 会自动为该实例选择适当的可用区。

使用如下的 [describe-availability-zones](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-availability-zones.html) Amazon EC2 命令描述在指定区域内已为您的账户启用的可用区。

```
aws ec2 describe-availability-zones --region region-name
```

例如，要描述在美国东部（弗吉尼亚州北部）区域（us-east-1）为您的账户启用的可用区域，请运行以下命令：

```
aws ec2 describe-availability-zones --region us-east-1
```

要了解如何在创建集群或向集群添加实例时指定可用区，请参阅 [为数据库集群配置网络](Aurora.CreateInstance.md#Aurora.CreateInstance.Prerequisites.VPC)。

## Amazon Aurora 数据库集群的本地时区
<a name="Aurora.Overview.LocalTimeZone"></a>

默认情况下，Amazon Aurora 数据库群集的时区是协调世界时 (UTC)。您可以改为将数据库群集中实例的时区设置为您的应用程序的本地时区。

要为数据库集群设置本地时区，请将时区参数设置为受支持的值之一。您可以在数据库集群的集群参数组中设置此参数。
+ 对于 Aurora MySQL，此参数的名称是 `time_zone`。有关设置 `time_zone` 参数的最佳实践的信息，请参阅[优化时间戳操作](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.Performance.TimeZone)。
+ 对于 Aurora PostgreSQL，此参数的名称是 `timezone`。

在为数据库集群设置时区参数时，数据库集群中的所有实例都将改为使用新的本地时区。在某些情况下，其他 Aurora 数据库集群可能正在使用相同的集群参数组。如果是这样，则这些数据库集群中的所有实例也将改为使用新的本地时区。有关群集级参数的信息，请参阅[Amazon Aurora 数据库集群和数据库实例参数](USER_WorkingWithDBClusterParamGroups.md#Aurora.Managing.ParameterGroups)。

设置本地时区之后，所有新数据库连接都会反映更改。在某些情况下，在更改本地时区时，您可能有打开的数据库连接。如果是这样，则直至关闭连接再打开新连接之后才会看到本地时区更新。

如果要跨 AWS 区域进行复制，则复制源数据库集群和副本使用不同的参数组。参数组对于 AWS 区域是唯一的。要对每个实例使用相同的本地时区，请确保同时在复制源和副本的参数组中设置时区参数。

从数据库集群快照还原数据库集群时，本地时区设置为 UTC。还原完成之后，可以将时区更新为本地时区。在某些情况下，您可能将数据库集群还原到某个时间点。如果是这样，还原的数据库集群的本地时区是来自还原的数据库集群的参数组的时区设置。

下表列出了一些可以设置本地时区的值。要列出所有可用时区，可以使用以下 SQL 查询：
+ Aurora MySQL：`select * from mysql.time_zone_name;`
+ Aurora PostgreSQL：`select * from pg_timezone_names;`

**注意**  
对于一些时区，可能会错误报告某些日期范围的时间值，如表中所述。对于澳大利亚时区，返回的时区缩写为过时的值，如表中所述。


|  时区  |  备注  | 
| --- | --- | 
|  `Africa/Harare`  |  此时区设置会返回 28 Feb 1903 21:49:40 GMT 和 28 Feb 1903 21:55:48 GMT 之间的错误值。  | 
|  `Africa/Monrovia`  |    | 
|  `Africa/Nairobi`  |  此时区设置会返回 31 Dec 1939 21:30:00 GMT 和 31 Dec 1959 21:15:15 GMT 之间的错误值。  | 
|  `Africa/Windhoek`  |    | 
|  `America/Bogota `  |  此时区设置会返回 23 Nov 1914 04:56:16 GMT 和 23 Nov 1914 04:56:20 GMT 之间的错误值。  | 
|  `America/Caracas`  |    | 
|  `America/Chihuahua`  |    | 
|  `America/Cuiaba`  |    | 
|  `America/Denver`  |    | 
|  `America/Fortaleza`  |  在某些情况下，针对南美洲（圣保罗）区域中的数据库集群，时间对于最近更改的巴西时区显示不正确。如果是这样，请将数据库集群的时区参数重置为 `America/Fortaleza`。  | 
|  `America/Guatemala`  |    | 
|  `America/Halifax`  |  此时区设置会返回 27 Oct 1918 05:00:00 GMT 和 31 Oct 1918 05:00:00 GMT 之间的错误值。  | 
|  `America/Manaus`  |  如果数据库集群位于南美洲（库亚巴）区域，并且最近更改的巴西时区未按预期正确显示时间，请将数据库集群的时区参数重置为 `America/Manaus`。  | 
|  `America/Matamoros`  |    | 
|  `America/Monterrey`  |    | 
|  `America/Montevideo`  |    | 
|  `America/Noronha`  |    | 
|  `America/Phoenix`  |    | 
|  `America/Tijuana`  |    | 
|  `Asia/Ashgabat`  |    | 
|  `Asia/Baghdad`  |    | 
|  `Asia/Baku`  |    | 
|  `Asia/Bangkok`  |    | 
|  `Asia/Beirut`  |    | 
|  `Asia/Calcutta`  |    | 
|  `Asia/Kabul`  |    | 
|  `Asia/Karachi`  |    | 
|  `Asia/Kathmandu`  |    | 
|  `Asia/Muscat `  |  此时区设置会返回 31 Dec 1919 20:05:36 GMT 和 31 Dec 1919 20:05:40 GMT 之间的错误值。  | 
|  `Asia/Riyadh `  |  此时区设置会返回 13 Mar 1947 20:53:08 GMT 和 31 Dec 1949 20:53:08 GMT 之间的错误值。  | 
|  `Asia/Seoul`  |  此时区设置会返回 30 Nov 1904 15:30:00 GMT 和 07 Sep 1945 15:00:00 GMT 之间的错误值。  | 
|  `Asia/Shanghai`  |  此时区设置会返回 31 Dec 1927 15:54:08 GMT 和 02 Jun 1940 16:00:00 GMT 之间的错误值。  | 
|  `Asia/Singapore`  |    | 
|  `Asia/Taipei`  |  此时区设置会返回 30 Sep 1937 16:00:00 GMT 和 29 Sep 1979 15:00:00 GMT 之间的错误值。  | 
|  `Asia/Tehran`  |    | 
|  `Asia/Tokyo`  |  此时区设置会返回 30 Sep 1937 15:00:00 GMT 和 31 Dec 1937 15:00:00 GMT 之间的错误值。  | 
|  `Asia/Ulaanbaatar`  |    | 
|  `Atlantic/Azores`  |  此时区设置会返回 24 May 1911 01:54:32 GMT 和 01 Jan 1912 01:54:32 GMT 之间的错误值。  | 
|  `Australia/Adelaide`  |  此时区的缩写以 CST 而非 ACDT/ACST 形式返回。  | 
|  `Australia/Brisbane`  |  此时区的缩写以 EST 而非 AEDT/AEST 形式返回。  | 
|  `Australia/Darwin `  |  此时区的缩写以 CST 而非 ACDT/ACST 形式返回。  | 
|  `Australia/Hobart`  |  此时区的缩写以 EST 而非 AEDT/AEST 形式返回。  | 
|  `Australia/Perth`  |  此时区的缩写以 WST 而非 AWDT/AWST 形式返回。  | 
|  `Australia/Sydney `  |  此时区的缩写以 EST 而非 AEDT/AEST 形式返回。  | 
|  `Brazil/East`  |    | 
|  `Canada/Saskatchewan`  |  此时区设置会返回 27 Oct 1918 08:00:00 GMT 和 31 Oct 1918 08:00:00 GMT 之间的错误值。  | 
|  `Europe/Amsterdam`  |    | 
|  `Europe/Athens`  |    | 
|  `Europe/Dublin`  |    | 
|  `Europe/Helsinki`  |  此时区设置会返回 30 Apr 1921 22:20:08 GMT 和 30 Apr 1921 22:20:11 GMT 之间的错误值。  | 
|  `Europe/Paris`  |    | 
|  `Europe/Prague`  |    | 
|  `Europe/Sarajevo`  |    | 
|  `Pacific/Auckland`  |    | 
|  `Pacific/Guam`  |    | 
|  `Pacific/Honolulu`  |  此时区设置会返回 21 May 1933 11:30:00 GMT 和 30 Sep 1945 11:30:00 GMT 之间的错误值。  | 
|  `Pacific/Samoa`  |  此时区设置会返回 01 Jan 1911 11:22:48 GMT 和 01 Jan 1950 11:30:00 GMT 之间的错误值。  | 
|  `US/Alaska`  |    | 
|  `US/Central`  |    | 
|  `US/Eastern`  |    | 
|  `US/East-Indiana`  |    | 
|  `US/Pacific`  |    | 
|  `UTC`  |    | 