我有一个基本的docker镜像,其中包含一个100mb以下的python脚本。我不确定我将使用什么发行版,但最好是一个能够实现最小文件大小的发行版。
目标是在t2.nano ec2实例上部署docker镜像,但它必须满足以下条件:
从客户通过URL请求访问时,它应尽快响应,最好在几秒钟内响应。
客户与新部署的docker ec2实例之间的延迟应尽可能小,即最近可用区域的ec2。
这可能吗?
答案 0 :(得分:1)
不可能在几秒钟内部署EC2实例,尤其是t2.nano类型实例。 EC2实例遵循与物理计算资源相同的规则,因此更大的实例类型启动更快,而t2.nano是当前最小/最不强大/最慢的实例大小。也就是说,即使最快的实例也需要一分钟左右的时间来配置和完全启动。
听起来你应该考虑使用AWS Lambda。它是他们专有的,托管的,容器化的计算资源服务,专为您描述的工作流程而设计。您不是自己管理容器,而是将代码(其中Python是受支持的语言)及其依赖库部署到服务中,并且它处理在容器中按需启动它,并在亚秒范围内开销。
请注意,它不是为直接托管“网站”而设计的,如果这是您的意图。 Lambda函数由其他AWS服务调用,其中一个是API Gateway,这是为Lambda函数提供公共接口的最佳途径。这可以与S3 static website hosting之类的东西结合使用,为“无服务器”的Web应用程序提供构建块。
至于你的第二个问题,Route 53确实支持latency based routing,但我认为它还不支持API Gateway端点作为目标。因此,如果全球延迟是一个大问题,那么您最好的选择可能是在全球部署一些全职EC2实例并使用基于延迟的路由。如果它主要是您担心的静态资产,CloudFront可以在边缘位置缓存这些资产,作为替代方案。