我認為答案是否定的,但我想確保我沒有遺漏任何東西。一個EC2實例是否可以同時擁有多個VPC中的IP位址?
我嘗試創建 2 個 VPC,然後創建兩個網絡接口,每個 VPC 各一個,但似乎無法將它們附加到同一個 EC2 實例,因為無法將它們附加到不在該 VPC 上的實例,這是正確的嗎?
例如,我在vpc1中創建vpc1和eni1(網路介面)。然後我在vpc2中創建vpc2和eni2。然後我創建 ec21(一個 EC2 實例)並將其放入 vpc1 中,並使用 eni1 作為其網路介面。當我打開 eni2 並選擇附加時,我無法選擇 ec21,它顯示:
vpc2 中的 us-esat-1f 中沒有正在運作或已停止的實例。
答案1
更新: 從 10 月開始2023 年 2 月 26 日,現在可以多 VPC ENI 附件。
不,那不可能
網路介面只能附加到與該介面位於同一 VPC 中的實例。
您的 ec2 實例已綁定至其主網路介面的 VPC。如果您想要跨 VPC 連接,則需要設定 VPC 對等互連或 VPN。
一個 ec2 實例可以在多個子網路中擁有多個網路接口,但它們必須全部位於同一 VPC 中。
答案2
我剛剛確認現在這是可行的,只要您嘗試使用多宿主的兩個 VPC 來自相同的帳戶和可用區域。
您可以在一個 VPC 中啟動 EC2 實例,並將另一個 VPC(但位於相同可用區)的輔助 ENI 附加到該執行個體。這使您能夠跨具有不同網路和安全配置的 VPC 建立多宿主執行個體。您無法跨不同 AWS 帳戶跨 VPC 建立多宿主執行個體。 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/scenarios-enis.html#creating-dual-homed-instances-with-workloads-roles-on-distinct-vpcs)
UI 怪癖(2023 年 11 月):我嘗試使用 Web 控制台 UI 的“附加 ENI”功能將來自不同 VPC 的網卡添加到現有實例,但它不允許我選擇我想要的 ENI(儘管ENI 可用(在相同帳戶和相同可用區)—它只允許我從與實例上的第一個網卡相同的主VPC 中選擇ENI。我認為這只是 Web UI 的限制。
您可以透過建立啟動模板在 Web UI 中解決這個問題,在其中添加兩個網路接口,並且這些接口可以來自不同的 VPC,沒有問題。如果您從該範本啟動實例,它將從兩個 vpc 各自的子網路取得(取決於您的設定)一個位址。
我懷疑,如果您從終端(使用 aws-cli)進行操作,您可以繞過這個怪癖並修改現有實例(除了啟動新實例之外)。但我還沒確認。