

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon EC2 服务端点
<a name="ec2-endpoints"></a>

终端节点是用作 Amazon Web 服务入口点的 URL。Amazon EC2 支持以下端点类型：
+ [IPv4 终端节点 ](#ipv4)
+ [Dual-stack 端点](#ipv6)（支持 IPv4 和 IPv6）
+ [FIPS 端点](https://docs.amazonaws.cn/general/latest/gr/rande.html#FIPS-endpoints)

当您发出请求时，您可以指定要使用的端点。如果不指定端点，则默认使用 IPv4 端点。要使用不同的端点类型，您必须在请求中指定。有关如何执行此操作的示例，请参阅[指定端点](#examples)。有关可用端点的列表，请参阅[各区域的服务端点](#service-endpoints)。

## IPv4 端点
<a name="ipv4"></a>

IPv4 端点仅支持 IPv4 流量。IPv4 端点适用于所有区域。

如果您指定通用端点 `ec2.amazonaws.com`，则我们将端点用于 `us-east-1`。要使用其他区域，请指定其关联端点。例如，如果您指定 `ec2.us-east-2.amazonaws.com` 为端点，我们会将您的请求定向到 `us-east-2` 端点。

IPv4 端点名称使用以下命名约定：
+ `{{service}}.{{region}}.amazonaws.com`

例如，`eu-west-1` 区域的 IPv4 端点名称是 `ec2.eu-west-1.amazonaws.com`。

## Dual-stack （IPv4 和 IPv6）端点
<a name="ipv6"></a>

Dual-stack 终端支持 IPv4 和 IPv6 流量。当您向双堆栈端点发出请求时，端点 URL 解析为 IPv6 或 IPv4 地址，具体取决于您的网络和客户端使用的协议。

Amazon EC2 仅支持区域双堆栈终端节点，这意味着您必须将区域指定为终端节点名称的一部分。 Dual-stack 端点名称使用以下命名规范：
+ `ec2.{{region}}.api.aws`

例如，`eu-west-1` 区域的双堆栈端点名称是 `ec2.eu-west-1.api.aws`。

## 各区域的服务端点
<a name="service-endpoints"></a>

以下是 Amazon EC2 的服务端点。有关区域的更多信息，请参阅《Amazon EC2 用户指南》**中的[区域和可用区](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)。


| 区域名称 | 区域 | 端点 | 协议 | 
| --- | --- | --- | --- | 
| 中国（北京） | cn-north-1 |  ec2.cn-north-1.amazonaws.com.cn  | HTTP 和 HTTPS | 
| 中国（宁夏） | cn-northwest-1 |  ec2.cn-northwest-1.amazonaws.com.cn  | HTTP 和 HTTPS | 

## 指定端点
<a name="examples"></a>

本节提供了一些在发出请求时如何指定端点的示例。

------
#### [ Amazon CLI ]

以下示例显示在使用 Amazon CLI时，如何为 `us-east-2` 区域指定端点。
+ **Dual-stack**

  ```
  aws ec2 describe-regions --region us-east-2 --endpoint-url https://{{ec2.us-east-2.api.aws}}
  ```
+ **IPv4**

  ```
  aws ec2 describe-regions --region us-east-2 --endpoint-url https://{{ec2.us-east-2.amazonaws.com}}
  ```

------
#### [ Amazon SDK for Java 2.x ]

以下示例显示在使用 Amazon SDK for Java 2.x时，如何为 `us-east-2` 区域指定端点。
+ **Dual-stack**

  ```
  Ec2Client client = Ec2Client.builder()
      .region(Region.US_EAST_2)
      .endpointOverride(URI.create("https://{{ec2.us-east-2.api.aws}}"))
      .build();
  ```
+ **IPv4**

  ```
  Ec2Client client = Ec2Client.builder()
      .region(Region.US_EAST_2)
      .endpointOverride(URI.create("https://{{ec2.us-east-2.amazonaws.com}}"))
      .build();
  ```

------
#### [ 适用于 Java 的 Amazon SDK 1.x ]

以下示例显示如何使用 适用于 Java 的 Amazon SDK 1.x 为该`eu-west-1`地区指定终端节点。
+ **Dual-stack**

  ```
  AmazonEC2 s3 = AmazonEC2ClientBuilder.standard()
       .withEndpointConfiguration(new EndpointConfiguration(
            "https://{{ec2.eu-west-1.api.aws}}",
            "eu-west-1"))
       .build();
  ```
+ **IPv4**

  ```
  AmazonEC2 s3 = AmazonEC2ClientBuilder.standard()
       .withEndpointConfiguration(new EndpointConfiguration(
            "https://{{ec2.eu-west-1.amazonaws.com}}",
            "eu-west-1"))
       .build();
  ```

------
#### [ Amazon SDK for Go ]

以下示例显示在使用 适用于 Go 的 Amazon SDK时，如何为 `us-east-1` 区域指定端点。
+ **Dual-stack**

  ```
  sess := session.Must(session.NewSession())
  svc := ec2.New(sess, &aws.Config{
      Region: aws.String(endpoints.UsEast1RegionID),
      Endpoint: aws.String("https://{{ec2.us-east-1.api.aws}}")
  })
  ```
+ **IPv4**

  ```
  sess := session.Must(session.NewSession())
  svc := ec2.New(sess, &aws.Config{
      Region: aws.String(endpoints.UsEast1RegionID),
      Endpoint: aws.String("https://{{ec2.us-east-1.amazonaws.com}}")
  })
  ```

------