簡體   English   中英

如何使用 AWS Javascript SDK 從 EC2 實例連接其他 AWS 雲服務?

[英]How to connect other AWS cloud service from an EC2 instance using AWS Javascript SDK?

我已將應用程序部署在附加了 IAM 角色的 EC2 實例上。 在私有 su.net 中運行的實例。 我在嘗試列出來自 S3 服務的存儲桶時遇到 .networking 錯誤。

Error: connect ETIMEDOUT 10.100.20.30:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16) {
errno: -110,
code: 'NetworkingError',
syscall: 'connect',
address: '10.100.20.30',
port: 443,
region: 'us-east-1',
hostname: 'mybucket.s3.us-east-1.amazonaws.com',
retryable: true,
time: 2020-07-28T05:44:13.678Z
} Error: connect ETIMEDOUT 10.100.20.30:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16)

看來你的情況是:

  • 私有 su.net 中的 Amazon EC2 實例
  • 實例上的應用程序需要訪問 Amazon S3

有兩種方法可以實現這一點:

選項 1:Internet 訪問

Amazon S3 駐留在 Inte.net 上。 由於 EC2 實例位於私有 su.net 中,因此需要使用NAT 網關來訪問 Inte.net 和 Amazon S3。

NAT 網關應在公共 su.net中啟動,並且應更新私有 su.net 的路由表以將目的地為0.0.0.0/0的流量發送到 NAT 網關。

選項 2:VPC 端點

或者,您可以為 S3 添加一個 VPC 端點,它提供了一個與 Amazon S3 通信的“捷徑”,而無需通過 Inte.net。

請確保您的實例能夠連接到 S3 端點。 AWS 在其文檔中列出了驗證從 EC2 到 S3 的網絡連接的步驟。 當您的實例在私有 su.net 中運行時,請確保您已具備以下條件之一:

  • 包含通過 NAT 網關的默認路由的路由表
  • 一個VPC 端點

試試這個。

sudo npm install -g @aws-amplify/cli
amplify configure
amplify init
amplify push

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM