Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
我如何使用 Application Load Balancer 或 Network Load Balancer 調用 API Gateway 私有 API?
我想要將 Amazon API Gateway 私有 API 設定為負載平衡器之後的目標。然後使用 AWS 帳戶,從 Application Load Balancer 或 Network Load Balancer 存取我的私有 API。
解決方法
若要透過 AWS Direct Connect 或 Amazon Route 53 來存取您的私有 API,請參閱調用私有 API。您也可以使用介面虛擬私有雲端 (VPC) 端點存取另一 AWS 帳戶中的 API Gateway 私有 REST API。
下列解決方案使用 Amazon Virtual Private Cloud (Amazon VPC) 端點彈性網路介面 IP 地址。使用此 IP 地址,您可以將私有 API 新增為負載平衡器的目標。
**重要事項:**API Gateway 不支援對私有 API 自訂網域名稱。作為因應措施,您可以調用網域並將其連接至負載平衡器。然後,使用以下設定來調用私有 API。
建立 Amazon VPC 端點
請完成下列步驟:
- 開啟 Amazon VPC 主控台。
- 選擇端點,然後選擇建立端點。
- 輸入下列資訊:
在服務中,選擇 com.amazonaws.com.your-region.execute-api。
在 VPC 中,選取 Amazon VPC。
在子網路中,選取不同可用區域 (AZ ID) 中的兩個子網路。
**注意:**如果您已使用 execute-api,在 VPC 中設定 Amazon VPC 端點,則請關閉私有 DNS。 - 選擇建立端點。
- 選取端點,選擇子網路,然後複製 IP 地址。
如需詳細資訊,請參閱在 API Gateway 中的私有 REST API。
建立私有 REST API,並授予 Amazon VPC 端點權限
請完成下列步驟:
- 開啟 API Gateway 主控台,然後選擇建立 API。
- 為 REST API 選擇建置。
- 在設定中,輸入下列資訊:
在 API 名稱中,輸入 API 的名稱。
在端點類型中,選擇私有。
在端點 ID 中,輸入您建立的端點 ID。 - 選擇建立 API。
- 在導覽窗格中,選擇資源政策。
- 輸入以下政策:
**注意:**使用您的 VPC 端點 ID 取代 vpce-081234d1ad408e。使用您的 API 的 Amazon Resource Name (ARN) 取代 arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*", "Condition": { "StringNotEquals": { "aws:SourceVpce": "vpce-081234d1ad408e" } } }, { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-east-1:ACCOUNT_ID:API_ID/*/*/*" } ] }
- 選擇儲存。
建立或匯入 AWS Certificate Manager 公有憑證
建立 Application Load Balancer 或 Network Load Balancer
您可以建立 Application Load Balancer,或建立 Network Load Balancer。
建立目標群組
請完成下列步驟:
- 開啟 Amazon Elastic Compute Cloud (Amazon EC2) 主控台。
- 在導覽窗格的負載平衡下,選擇負載平衡器,然後選擇目標群組。
- 選擇建立目標群組。
- 輸入下列資訊:
在目標類型中,選擇 IP 地址。
對於目標群組名稱,輸入名稱。
Application Load Balancer
在通訊協定中,選擇 HTTPS。
在連接埠中,選擇 443。
在 VPC 中,選取您的 VPC。
在運作狀態檢查路徑中,輸入「/」並在成功程式碼中,輸入 200,403,以便 VPC 端點顯示為運作狀態良好。
Network Load Balancer
在通訊協定中,選擇 TLS。
在連接埠中,選擇 443。
對於 VPC,選取您的 VPC。 - 選擇下一步。
- 在指定 IP 中,輸入您在建立介面 Amazon VPC 端點區段中複製的 IP 地址。然後,選擇新增 IPv4 位址。
- 選擇建立目標群組。
設定負載平衡器
請完成下列步驟:
- 開啟 EC2 主控台。
- 在導覽窗格中,選擇負載平衡器,然後選擇建立負載平衡器。
Application Load Balancer
在配置中,依您的組態而定,選擇面對網際網路或內部。
在通訊協定中,選擇 HTTPS。
在 VPC 和子網路中,選取您的 VPC 和子網路。
Network Load Balancer
在配置中,依您的組態而定,選擇面對網際網路或內部。
在通訊協定中,選擇 TLS。
在 VPC 和子網路中,選取您的 VPC 和子網路。
在安全政策中,選取預設政策 ELBSecurityPolicy-TLS (建議使用)。
在預設 SSL/TLS 憑證中,選擇從 ACM。
選擇選取憑證,然後選取您的憑證。 - 選擇建立負載平衡器。
注意:負載平衡器目標位置為 VPC 端點建立之彈性網路介面所在的 IP 地址。若要尋找這些彈性網路介面,請選取 VPC 端點,然後開啟子網路索引標籤。
在 Amazon Route 53 公有或私有託管區域中建立記錄
建立公有託管區域或私有託管區域。然後,建立 CNAME 或別名記錄,並將其與 Application Load Balancer 或 Network Load Balancer 建立關聯。
建立自訂網域
在 API Gateway 主控台中建立自訂網域。然後,在自定網域下對應私有 Rest API。
測試
針對公有負載平衡器,請從本機電腦發出 curl 請求。針對私有負載平衡器,請在負載平衡器的其中一個子網路啟動新的 EC2 執行個體。然後,發出類似下列範例的 curl 請求:
curl -v https://{custom-domain-name}/<resource-path>
成功的請求會傳回 200 正常回應代碼。失敗的請求會傳回 403 禁止回應代碼,或 DNS 解析錯誤。如果遇到任何問題,請參閱 Application Load Balancer 疑難排解。
相關資訊
如何透過 Direct Connect 連線與私有 API Gateway 建立連線?
如何對連線至 API Gateway 私有 API 端點時出現的問題進行疑難排解?

相關內容
- 已提問 8 個月前lg...
- 已提問 5 個月前lg...