

AWS App Runner 自 2026 年 4 月 30 日起，不再開放給新客戶。如果您想要使用 App Runner，請在該日期之前註冊。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[AWS App Runner 可用性變更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)。

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

# 啟用傳出流量的 VPC 存取
<a name="network-vpc"></a>

根據預設，您的 AWS App Runner 應用程式可以傳送訊息至公有端點。這包括您自己的解決方案 AWS 服務，以及任何其他公有網站或 Web 服務。您的應用程式甚至可以從 [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) 將訊息傳送至 VPC 中執行之應用程式的公有端點。如果您在啟動環境時未設定 VPC，App Runner 會使用預設的 VPC，這是公有的。

您可以選擇在自訂 VPC 中啟動環境，以自訂傳出流量的網路和安全性設定。您可以讓 AWS App Runner 服務從 Amazon Virtual Private Cloud (Amazon VPC) 存取在私有 VPC 中執行的應用程式。執行此操作後，您的應用程式可以與 連線，並將訊息傳送到 [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) 中託管的其他應用程式。例如，Amazon RDS 資料庫、Amazon ElastiCache，以及託管在私有 VPC 中的其他私有服務。

## VPC 連接器
<a name="network-vpc.VPC-connector"></a>

您可以從稱為 VPC Connector 的 App Runner 主控台建立 VPC 端點，將服務與 VPC 建立關聯。若要建立 VPC 連接器，請指定 VPC、一或多個子網路，以及選擇性一或多個安全群組。設定 VPC Connector 之後，您可以將其與一或多個 App Runner 服務搭配使用。

### 一次性延遲
<a name="network-vpc.VPC-connector.latency"></a>

如果您使用用於傳出流量的自訂 VPC 連接器設定 App Runner 服務，它可能會遇到 2 到 5 分鐘的一次性啟動延遲。啟動程序會等到 VPC Connector 準備好連線到其他資源，再將服務狀態設定為*執行*中。您可以在第一次建立服務時，使用自訂 VPC 連接器來設定服務，也可以在之後透過執行服務更新來進行設定。

請注意，如果您為其他服務重複使用*相同的* VPC 連接器組態，則不會有任何延遲。VPC 連接器組態是以安全群組和子網路組合為基礎。對於指定的 VPC 連接器組態，延遲只會在初始建立 VPC Connector Hyperplane ENIs（彈性網路介面） 期間發生一次。

### 有關自訂 VPC 連接器和 AWS Hyperplane 的詳細資訊
<a name="network-vpc.VPC-connector.hyperplane"></a>

App Runner 中的 VPC 連接器是以 AWS Hyperplane 為基礎，Hyperplane 是位於數種 AWS 資源後方的內部 Amazon 網路系統，例如 [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)、[NAT Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) 和 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/)。 AWS Hyperplane 技術提供高輸送量和低延遲功能，以及更高程度的共用。當您建立 VPC 連接器並將其與服務建立關聯時，會在子網路中建立 Hyperplane ENI。VPC 連接器組態是以安全群組和子網路組合為基礎，您可以在多個 App Runner 服務之間參考相同的 VPC 連接器。因此，基礎 Hyperplane ENIs會跨 App Runner 服務共用。此共用是可行的，即使您擴展處理請求負載所需的任務數量，也會導致 VPC 中 IP 空間的更有效率使用率。如需詳細資訊，請參閱 [AWS 容器部落格中的 Deep Dive on AWS App Runner VPC Networking](https://aws.amazon.com/blogs/containers/deep-dive-on-aws-app-runner-vpc-networking/)。 **

## 子網路
<a name="network-vpc.subnet"></a>

每個子網路都位於特定的可用區域。為了獲得高可用性，建議您至少選取三個可用區域的子網路。如果 區域的可用區域少於三個，建議您在所有支援的可用區域中選取子網路。

選取 VPC 的子網路時，請確定您選擇的是私有子網路，而不是公有子網路。這是因為當您建立 VPC 連接器時，App Runner 服務會在每個子網路中建立 Hyperplane ENI。每個 Hyperplane ENI 只會指派一個私有 IP 地址，並使用 *AWSAppRunnerManaged* 金鑰的標籤進行標記。如果您選擇公有子網路，則執行 App Runner 服務時發生錯誤。不過，如果您的服務需要存取網際網路或其他公有服務 AWS 服務，請參閱 [選取子網路時的考量事項](#network-vpc.considerations-subnet)。

### 選取子網路時的考量事項
<a name="network-vpc.considerations-subnet"></a>
+ 當您將服務連線至 VPC 時，傳出流量無法存取公有網際網路。來自您應用程式的所有傳出流量都會透過您服務所連線的 VPC 導向。VPC 的所有聯網規則都適用於應用程式的傳出流量。這表示您的服務無法存取公有網際網路和 AWS APIs。若要取得存取權，請執行下列其中一項操作：
  + 透過 [NAT Gateway 將子網路連接至網際網路。](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)
  + 為您要存取 AWS 服務 的 設定 [VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。您的服務會使用 保留在 Amazon VPC 中 AWS PrivateLink。
+ 有些 中的某些可用區域 AWS 區域 不支援可與 App Runner 服務搭配使用的子網路。如果您選擇這些可用區域中的子網路，則無法建立或更新服務。在這些情況下，App Runner 會提供詳細的錯誤訊息，指向不支援的子網路和可用區域。發生這種情況時，請移除請求中不支援的子網路進行故障診斷，然後再試一次。
+ 您選取的子網路必須具有相同的 IP 地址類型，可以是 IPv4 或雙堆疊。

## 安全群組
<a name="network-vpc.security-group"></a>

您可以選擇性地指定 App Runner 用來在指定子網路 AWS 下存取的安全群組。如果您未指定安全群組，App Runner 會使用 VPC 的預設安全群組。預設的安全群組會允許所有傳出流量。

新增安全群組可為 VPC 連接器提供額外的安全層，讓您更能控制網路流量。VPC Connector 僅用於來自應用程式的傳出通訊。您可以使用傳出規則來允許與所需目的地端點的通訊。您也必須確保與目的地資源相關聯的任何安全群組都有適當的傳入規則。否則，這些資源無法接受來自 VPC Connector 安全群組的流量。

**注意**  
當您將服務與 VPC 建立關聯時，下列流量不會受到影響：  
**傳入流量** – 應用程式接收的傳入訊息不受關聯的 VPC 影響。訊息會透過與您服務相關聯的公有網域名稱路由，而不會與 VPC 互動。
**App Runner 流量** – App Runner 會代表您管理數個動作，例如提取原始程式碼和映像、推送日誌，以及擷取秘密。這些動作產生的流量不會透過您的 VPC 路由。

若要進一步了解 如何與 Amazon VPC AWS App Runner 整合，請參閱 [AWS App Runner VPC 網路](https://aws.amazon.com/blogs/containers/deep-dive-on-aws-app-runner-vpc-networking/)。

## 管理 VPC 存取
<a name="network-vpc.manage"></a>

**注意**  
如果您為服務建立傳出流量 VPC 連接器，接下來的服務啟動程序將經歷一次性延遲。您可以在建立新服務時或之後使用服務更新來設定新服務的此組態。如需詳細資訊，請參閱本指南*的 Networking with App Runner* 章節[一次性延遲](#network-vpc.VPC-connector.latency)中的 。

使用下列其中一種方法來管理 App Runner 服務的 VPC 存取：

------
#### [ App Runner console ]

當您使用 App Runner 主控台[建立服務](manage-create.md)，或[稍後更新其組態](manage-configure.md)時，您可以選擇設定傳出流量。尋找 主控台頁面上**的網路**組態區段。對於**傳出網路流量**，請在下列中選擇 ：
+ **公有存取**：將您的服務與其他公有端點建立關聯 AWS 服務。
+ **自訂 VPC**：將您的服務與來自 Amazon VPC 的 VPC 建立關聯。您的應用程式可與 連線，並將訊息傳送至 Amazon VPC 中託管的其他應用程式。

**啟用自訂 VPC**

1. 開啟 [App Runner 主控台](https://console.aws.amazon.com/apprunner)，然後在**區域**清單中選取您的 AWS 區域。

1.  前往**設定服務**下的**聯網**區段。  
![\[App Runner 主控台組態頁面顯示聯網選項\]](http://docs.aws.amazon.com/zh_tw/apprunner/latest/dg/images/network-vpc-config-network.png)

1. 針對**傳出網路流量**選擇**自訂 VPC**。

1. 在導覽窗格中，選擇 **VPC 連接器**。

   如果您建立了 VPC 連接器，主控台會顯示您帳戶中的 VPC 連接器清單。您可以選擇現有的 VPC 連接器，然後選擇**下一步**以檢閱您的組態。然後，移至最後一個步驟。或者，您可以使用下列步驟新增新的 VPC 連接器。

1. 選擇**新增**，為您的服務建立新的 VPC 連接器。

   然後，**新增 VPC 連接器**對話方塊隨即開啟。  
![\[App Runner 主控台顯示新增 VPC 連接器對話方塊\]](http://docs.aws.amazon.com/zh_tw/apprunner/latest/dg/images/network-vpc-add-new.png)

1. 輸入 VPC 連接器的名稱，然後從可用清單中選擇所需的 VPC。

1. 針對**子網路**，為您計劃從中存取 App Runner 服務的每個可用區域選擇一個子網路。為了提高可用性，請選擇三個子網路。或者，如果少於三個子網路，請選擇所有可用的子網路。
**注意**  
請務必將*私有*子網路指派給 VPC 連接器。如果您將公有子網路指派給 VPC 連接器，您的服務無法在更新期間自動建立或復原。
如果您的傳出流量是雙堆疊，請確定您在 VPC 主控台中選取的所有子網路都已設定為雙堆疊。

1. （選用） 對於**安全群組**，選取要與端點網路介面建立關聯的安全群組。

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

1. 選擇**新增**。

   您建立的 VPC 連接器詳細資訊會顯示在 **VPC 連接器**下方。

1. 選擇**下一步**以檢閱您的組態，然後選擇**建立和部署**。

   App Runner 會為您建立 VPC 連接器資源，然後將其與您的服務建立關聯。如果服務已成功建立，主控台會顯示服務儀表板，其中包含新服務**的服務概觀**。

------
#### [ App Runner API or AWS CLI ]

當您呼叫 [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) 或 [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html) App Runner API 動作時，請使用 `NetworkConfiguration` 參數`EgressConfiguration`的成員來指定服務的 VPC 連接器資源。

使用下列 App Runner API 動作來管理您的 VPC Connector 資源。
+ [CreateVpcConnector](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateVpcConnector.html) – 建立新的 VPC 連接器。
+ [ListVpcConnectors](https://docs.aws.amazon.com/apprunner/latest/api/API_ListVpcConnectors.html) – 傳回與您的 相關聯的 VPC 連接器清單 AWS 帳戶。清單包含完整描述。
+ [DescribeVpcConnector](https://docs.aws.amazon.com/apprunner/latest/api/API_DescribeVpcConnector.html) – 傳回 VPC 連接器的完整描述。
+ [DeleteVpcConnector](https://docs.aws.amazon.com/apprunner/latest/api/API_DeleteVpcConnector.html) – 刪除 VPC 連接器。如果您達到 的 VPC 連接器配額 AWS 帳戶，您可能需要刪除不必要的 VPC 連接器。

若要在具有 VPC 傳出存取權的 App Runner 上部署應用程式，您必須先建立 VPC 連接器。您可以透過指定要與應用程式建立關聯的一或多個子網路和安全群組來執行此操作。然後，您可以透過 CLI 在 **Create** 或 **UpdateService** 中參考 VPC Connector，如下列範例所示：

```
            cat > vpc-connector.json <<EOF
{
"VpcConnectorName": "my-vpc-connector",
"Subnets": [
"subnet-a",
"subnet-b",
"subnet-c"
],
"SecurityGroups": [
"sg-1",
"sg-2"
]
}
EOF

aws apprunner create-vpc-connector \
--cli-input-json file:///vpc-connector.json

cat > service.json <<EOF

{
"ServiceName": "my-vpc-connected-service",
"SourceConfiguration": {
"ImageRepository": {
"ImageIdentifier": "<ecr-image-identifier> ",
"ImageConfiguration": {
"Port": "8000"
},
"ImageRepositoryType": "ECR"
}
},
"NetworkConfiguration": {
"EgressConfiguration": {
"EgressType": "VPC",
"VpcConnectorArn": "arn:aws:apprunner:..../my-vpc-connector"
}
}
}
EOF

aws apprunner create-service \
--cli-input-json file:///service.js
```

------