

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

# Apache Kafka Virtual Private Cloud (VPC) 目的地
<a name="kafka-vpc-destination"></a>

Apache Kafka 規則動作將資料路由至 Amazon Virtual Private Cloud (Amazon VPC) 中的 Apache Kafka 叢集。在為規則動作指定 VPC 目的地時，系統會自動啟用 Apache Kafka 規則動作所使用的 VPC 組態。

Apache Kafka Virtual Private Cloud (VPC) 目的地包含 VPC 內的子網路清單。規則引擎會在您於此清單中指定的每個子網路中建立彈性網路介面。如需有關網路介面的詳細資訊，請參閱《Amazon EC2 使用者指南》中的[彈性網路介面](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)。

## 需求和考量事項
<a name="kafka-vpc-destination-considerations"></a>
+ 如果您使用的是將由公有端點透過網際網路存取的自我管理 Apache Kafka 叢集：
  + 為子網路中的執行個體建立 NAT 閘道。NAT 閘道具有可連接到網際網路的公有 IP 地址，允許規則引擎將您的訊息轉發到公有 Kafka 叢集。
  + 使用 Apache Kafka Virtual Private Cloud (VPC) 目的地建立的彈性網路介面 (ENIs) 來配置彈性 IP 地址。您使用的安全群組必須配置為封鎖傳入流量。
**注意**  
如果 Apache Kafka Virtual Private Cloud (VPC) 目的地已停用，然後重新啟用，您必須重新建立彈性 IPs與新 ENIs關聯。
+ 如果 Apache Kafka Virtual Private Cloud (VPC) 目的地連續 30 天未收到任何流量，則會停用。
+ 如果 Apache Kafka Virtual Private Cloud (VPC) 目的地使用的任何資源變更，則會停用目的地且無法使用。
+ 可以停用 Apache Kafka Virtual Private Cloud (VPC) 目的地的一些變更包括：
  + 刪除 VPC、子網路、安全群組或使用的角色。
  + 將角色修改為不再具有必要的許可。
  + 達到接近子網路容量，這使得我們無法套用 [ FedRAMP](https://aws.amazon.com/compliance/fedramp/) 修補。
  + 停用目的地。

## 定價
<a name="kafka-vpc-destination-pricing"></a>

基於定價目的，除了資源位於您 VPC 中時將訊息傳送至資源之外，還會計量 VPC 規則動作。如需定價資訊，請參閱 [AWS IoT Core 定價](https://aws.amazon.com/iot-core/pricing/)。

## 建立 Apache Kafka Virtual Private Cloud (VPC) 目的地
<a name="kafka-vpc-destination-creating"></a>

您可以使用 [CreateTopicRuleDestination](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateTopicRuleDestination.html) API 或 AWS IoT Core 主控台建立 Apache Kafka Virtual Private Cloud (VPC) 目的地。

建立目的地時，您必須指定下列資訊。

vpcId  
Amazon VPC 的唯一 ID。

subnetIds  
規則引擎在其中建立彈性網路介面的子網路清單。規則引擎會為清單中的每個子網路配置一個單一網路介面。

securityGroups (選用)  
套用至網路介面的安全性群組清單。

roleArn  
有權代您建立網路介面的角色的 Amazon 資源名稱 (ARN)  
此 ARN 應連接至一個看似於下列範例的政策。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeVpcs",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterfacePermission",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/VPCDestinationENI": "true"
            }
        }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateNetworkInterface",
                    "aws:RequestTag/VPCDestinationENI": "true"
            }
        }
        }
    ]
}
```

### 使用 建立 Apache Kafka Virtual Private Cloud (VPC) 目的地 AWS CLI
<a name="kafka-vpc-destination-create-cli"></a>

下列範例示範如何使用 建立目的地 AWS CLI。

```
aws --region regions iot create-topic-rule-destination --destination-configuration 'vpcConfiguration={subnetIds=["subnet-123456789101230456"],securityGroups=[],vpcId="vpc-123456789101230456",roleArn="arn:aws:iam::123456789012:role/role-name"}'
```

執行此命令後，目的地狀態將為 `IN_PROGRESS`。幾分鐘後，其狀態會變更為 `ERROR` (若命令不成功) 或 `ENABLED`。目的地狀態為 `ENABLED` 時，即可使用。

您可以使用下列命令來取得 Apache Kafka Virtual Private Cloud (VPC) 目的地的狀態。

```
aws --region region iot get-topic-rule-destination --arn "VPCDestinationARN"
```

### 使用 AWS IoT Core 主控台建立 Apache Kafka Virtual Private Cloud (VPC) 目的地
<a name="kafka-vpc-destination-create-console"></a>

下列步驟說明如何使用 AWS IoT Core 主控台建立目的地。

1. 導覽至 AWS IoT Core 主控台。在左窗格的**動作**索引標籤上，選擇**目的地**。

1. 請輸入下列欄位的值。
   + **VPC ID**
   + **子網路 ID**
   + **安全群組**

1. 選取具有建立網路介面所需許可的角色。上述範例政策包含這些許可。

當 Apache Kafka Virtual Private Cloud (VPC) 目的地狀態為 **ENABLED** 時，即可開始使用。