2017-02-22 47 views
0

我有一個基本的docker鏡像,包含一個100mb以下的python腳本。我不確定我要使用哪種發行版,但最好是能夠產生最小文件大小的發行版。AWS:如何在靠近我的客戶的ec2上立即部署Docker實例?

我們的目標是在t2.nano EC2實例部署一個碼頭工人形象,但它必須滿足以下條件:

  • 從時間通過URL客戶請求訪問,就應該儘快迴應,最好在幾秒鐘之內。

  • 客戶與新部署的docker ec2實例之間的延遲應該儘可能小,這意味着最接近可用性區域的ec2。

這可能嗎?

回答

1

在幾秒鐘內部署EC2實例是不可能的,特別是不是t2.nano類型的實例。 EC2實例遵循與物理計算資源相同的規則,因此更大的實例類型啓動速度更快,而t2.nano實際上是最小/最小功能/最慢實例大小。也就是說,即使是最快的實例也需要一分鐘左右的時間才能進行配置並完全啓動。

這聽起來像你應該看看使用AWS Lambda。這是他們專有的,管理的,集裝箱化的計算資源服務,專爲您所描述的工作流程而設計。您不必自己管理容器,而是將代碼(其中的Python是受支持的語言)及其相關庫部署到服務中,並在需要時在容器中啓動它,並在次秒範圍內開銷。

請注意,它不是專爲直接託管「網站」而設計的,如果這是您的意圖。其他AWS服務調用Lambda函數,其中一個爲API Gateway,這將成爲爲您的Lambda函數提供公共接口的最佳途徑。這可以與S3 static website hosting之類的東西結合使用,爲「無服務器」Web應用程序提供構建模塊。

至於你的第二個問題,Route 53支持latency based routing,但我不認爲它支持API網關端點作爲目標。因此,如果全局延遲是一個大問題,那麼最好的辦法可能是在全球部署幾個全職EC2實例,並使用基於延遲的路由。如果主要是您擔心的靜態資產,則CloudFront可以將這些資源緩存在邊緣位置。