

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 開始使用 AWS PrivateLink
<a name="getting-started"></a>

本教學課程示範如何使用 從私有子網路中的 EC2 執行個體傳送請求至 Amazon CloudWatch AWS PrivateLink。

下圖提供此情況如何運作的概觀。若要從電腦連線到私有子網路中的執行個體，您必須先連線到公有子網路中的堡壘主機。堡壘主機和執行個體都必須使用相同的金鑰對。由於私密金鑰的 `.pem` 檔案位於您的電腦，而不是堡壘主機上，因此您將使用 SSH 金鑰轉送。然後，您可以從堡壘主機連線至執行個體，而無需在 **ssh** 命令中指定 `.pem` 檔案。在您為 CloudWatch 設定 VPC 端點之後，來自目的地為 CloudWatch 之執行個體的流量會解析至端點網路界面，然後使用 VPC 端點傳送至 CloudWatch。

![\[私有子網路中的執行個體會使用 VPC 端點存取 CloudWatch。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/privatelink/images/getting-started.png)


針對測試目的，您可以使用單一可用區域。在生產環境中，建議您使用至少兩個可用區域以獲得低延遲和高可用性。

**Topics**
+ [步驟 1：建立包含子網路的 VPC](#create-vpc-subnets)
+ [步驟 2：啟動執行個體](#launch-instances)
+ [步驟 3：測試 CloudWatch 存取權](#test-cloudwatch-access)
+ [步驟 4：建立 VPC 端點以存取 CloudWatch](#create-vpc-endpoint-cloudwatch)
+ [步驟 5：測試 VPC 端點](#test-vpc-endpoint)
+ [步驟 6：清除](#clean-up)

## 步驟 1：建立包含子網路的 VPC
<a name="create-vpc-subnets"></a>

按照以下程序建立包含公有子網路和私有子網路的 VPC。

**若要建立 VPC**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 選擇**建立 VPC**。

1. 針對 **Resources to create** (建立資源)，選擇 **VPC and more** (VPC 等)。

1. 針對**自動產生名稱標籤**，輸入 VPC 的名稱。

1. 若要設定子網路，請執行下列動作：

   1. 對於 **Number of Availability Zones** (可用區域數量)，請根據您的需求選擇 **1** 或 **2**。

   1. 針對 **Number of public subnets** (公用子網路數量)，請確定每個可用區域有一個公用子網路。

   1. 針對 **Number of private subnets** (私有子網路數量)，請確定每個可用區域有一個私有子網路。

1. 選擇**建立 VPC**。

## 步驟 2：啟動執行個體
<a name="launch-instances"></a>

使用您在上一個步驟中建立的 VPC，在公有子網路中啟動堡壘主機，並在私有子網路中啟動執行個體。

**先決條件**
+ 使用 **.pem** 格式建立金鑰對。啟動堡壘主機和執行個體時，您必須選擇此金鑰對。
+ 為堡壘主機建立安全群組，以允許來自您電腦 CIDR 區塊的傳入 SSH 流量。
+ 為執行個體建立安全群組，以允許來自您堡壘主機安全群組的傳入 SSH 流量。
+ 建立 IAM 執行個體設定檔，並附加 **CloudWatchReadOnlyAccess** 政策。

**啟動堡壘主機**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 選擇**啟動執行個體**。

1. 針對 **Name** (名稱)，輸入堡壘主機的名稱。

1. 保留預設映像和執行個體類型。

1. 針對 **Key pair** (金鑰對)，選擇您的金鑰對。

1. 針對 **Network settings** (網路設定)，執行下列操作：

   1. 在 **VPC** 中，選擇您的 VPC。

   1. 針對 **Subnet (子網路)**，選擇公有子網路。

   1. 在 **Auto-assign public IP ** (自動指派公有 IP) 中，選擇 **Enable** (啟用)。

   1. 對於 **Firewall** (防火牆)，請選擇 **Select existing security group** (選取現有的安全群組)，然後選擇堡壘主機的安全群組。

1. 選擇**啟動執行個體**。

**啟動執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 選擇**啟動執行個體**。

1. 對於 **Name** (名稱)，請輸入執行個體名稱。

1. 保留預設映像和執行個體類型。

1. 針對 **Key pair** (金鑰對)，選擇您的金鑰對。

1. 針對 **Network settings** (網路設定)，執行下列操作：

   1. 在 **VPC** 中，選擇您的 VPC。

   1. 針對 **Subnet** (子網路)，選擇私有子網路。

   1. 針對 **Auto-assign public IP** (自動指派公有 IP) 中，選擇 **Disable** (停用)。

   1. 對於 **Firewall** (防火牆)，請選擇 **Select existing security group** (選取現有的安全群組)，然後選擇執行個體的安全群組。

1. 展開 **Advanced Details** (進階詳細資訊)。在 **IAM instance profile** (IAM 執行個體設定檔) 中，選擇您的 IAM 執行個體設定檔。

1. 選擇**啟動執行個體**。

## 步驟 3：測試 CloudWatch 存取權
<a name="test-cloudwatch-access"></a>

請用下列程序確認執行個體無法存取 CloudWatch。您將使用 CloudWatch 的唯讀 AWS CLI 命令來執行此操作。

**若要測試 CloudWatch 存取權**

1. 從您的電腦中，使用下列命令將金鑰對新增至 SSH 代理程式，其中 *key.pem* 是 .pem 檔案的名稱。

   ```
   ssh-add ./key.pem
   ```

   如果您收到金鑰對權限過於開放的錯誤訊息，請執行下列命令，然後重試上一個命令。

   ```
   chmod 400 ./key.pem
   ```

1. 從您的電腦連接至堡壘主機。您必須指定 `-A` 選項、執行個體使用者名稱 (例如 `ec2-user`) 和堡壘主機的公用 IP 地址。

   ```
   ssh -A ec2-user@bastion-public-ip-address
   ```

1. 從堡壘主機連接至執行個體。您必須指定執行個體使用者名稱 (例如 `ec2-user`) 和執行個體的私有 IP 地址。

   ```
   ssh ec2-user@instance-private-ip-address
   ```

1. 在執行個體上執行 CloudWatch [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 命令，如下所示。針對 `--region` 選項，請指定您建立 VPC 的「區域」。

   ```
   aws cloudwatch list-metrics --namespace AWS/EC2 --region us-east-1
   ```

1. 命令會在幾分鐘後逾時。這表明您無法使用目前的 VPC 組態，從執行個體存取 CloudWatch。

   ```
   Connect timeout on endpoint URL: https://monitoring.us-east-1.amazonaws.com/
   ```

1. 與您的執行個體保持連線。建立 VPC 端點後，您將再次嘗試此 **list-metrics** 命令。

## 步驟 4：建立 VPC 端點以存取 CloudWatch
<a name="create-vpc-endpoint-cloudwatch"></a>

按照下列程序建立連接至 Cloudwatch 的 VPC 端點。

**先決條件**  
為 VPC 端點建立允許 CloudWatch 流量的安全群組。例如，新增規則，允許來自 VPC CIDR 區塊的 HTTPS 流量。

**建立 CloudWatch 的 VPC 端點。**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Endpoints (端點)**。

1. 選擇**建立端點**。

1. 在 **Name tag** (名稱標籤) 中，輸入端點的名稱。

1. 對於 **Service category** (服務類別)，選擇 **AWS 服務**。

1. 針對 **Service** (服務)，請選取 **com.amazonaws.*region*.monitoring**。

1. 針對 **VPC**，選取您的 VPC。

1. 針對 **Subnets** (子網路)，請選取可用區域，然後選取私有子網路。

1. 針對 **Security group** (安全群組)，請選取 VPC 端點的安全群組。

1. 對於 **Policy** (政策)，選取 **Full access** (完整存取)，以允許 VPC 端點上所有資源的所有主體進行所有操作。

1. (選用) 若要新增標籤，請選擇 **Add new tag (新增標籤)**，然後輸入標籤的鍵和值。

1. 選擇**建立端點**。初始狀態為 **Pending** (等待中)。在進行下一個步驟之前，請先等待狀態變為 **Available** (可用)。這可能需要幾分鐘的時間。

## 步驟 5：測試 VPC 端點
<a name="test-vpc-endpoint"></a>

確認 VPC 端點正在將請求從您的執行個體傳送到 CloudWatch。

**若要測試 VPC 端點**  
在執行個體上執行以下 命令。針對 `--region` 選項，請指定您建立 VPC 端點的區域。

```
aws cloudwatch list-metrics --namespace AWS/EC2 --region us-east-1
```

如果您收到回應，甚至是結果空白的回應，則會使用 連線至 CloudWatch AWS PrivateLink。

如果收到 `UnauthorizedOperation` 錯誤，請確認執行個體具有允許存取 CloudWatch 的 IAM 角色。

如果請求逾時，請確認下列事項：
+ 端點的安全群組允許 CloudWatch 流量。
+ `--region` 選項可指定您在其中建立 VPC 端點的區域。

## 步驟 6：清除
<a name="clean-up"></a>

如果您不再需要針對此教學課程建立的堡壘主機和執行個體，則可以將其終止。

**終止執行個體**

1. 在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取兩個測試執行個體，然後選取 **Instance state** (執行個體狀態)、**Terminate instance** (終止執行個體)。

1. 出現確認提示時，請選擇**終止**。

如果您不再需要該 VPC 端點，可以將其刪除。

**刪除 VPC 端點。**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Endpoints (端點)**。

1. 選取 VPC 端點。

1. 選擇 **Actions** (動作)、**Delete VPC endpoints** (刪除 VPC 端點)。

1. 出現確認提示時，請輸入 **delete**，然後選擇 **Delete** (刪除)。