
我們有一個 Fargate 服務,應該透過負載平衡器暴露到互聯網,並且由於到目前為止我們使用了任務的隨機公共 IP 進行測試,因此我們決定禁用公共 IP,以便它對任務有意義只能通過負載平衡器訪問該服務。
不過,停用公用 IP 似乎會使 Fargate 內的容器無法從 S3 下載 env 檔案。奇怪的事實是,來自 ECR 的映像已被拉取,但任務在嘗試獲取 env 檔案時失敗。
根據這個:https://aws.amazon.com/premiumsupport/knowledge-center/ecs-task-environment-variables/
如果您的 ECS 任務位於公有子網路中,請確認下列各項: 確保該任務啟用了公有 IP 位址。
該服務位於公共子網路中,因此根據此我們應該擁有公共IP。
由於公共子網路本身應該能夠存取互聯網,這是否有原因?為什麼 ECR 拉動仍然有效?
謝謝
答案1
你說你禁用了公共IP。容器/伺服器需要公用 IP 才能透過網際網路閘道到達 S3。
如果您想在沒有公共 IP 的情況下存取 S3,請使用S3 VPC 端點。