如果我不知道何时会命中端点,是否应该24/7全天候运行EC2实例?

时间:2019-02-15 19:34:23

标签: amazon-ec2

我正在制作一个ios应用程序,并使用EC2实例托管我的后端代码(在Django中)。即使我只有几个用户(少于10个),我也不知道他们每天何时会使用该应用程序。

我是否需要随时24/7运行EC2实例以接受api调用?对于需要处理的实际计算时间而言,这不是很昂贵吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

如果您的后端部署在EC2实例上,并且EC2实例未在运行,则您的代码将不会执行,并且您的API调用也将无法处理。

您可以使用AWS Lambda实现后端,该后端无需服务器即可运行,并且仅按使用量收费。似乎有一个工具Zappa,可让您在AWS Lambda上部署Python应用程序。

答案 1 :(得分:0)

您应该使用Hakuna Cloud,这是一项服务,可以在HTTP / S请求到达域时启动EC2服务器,然后在一段时间内没有人调用服务器时自动停止EC2服务器(默认时间)应该是30分钟)。它不要求对代码进行任何更改,您只需要配置服务并更改DNS(它实际上可以用作HTTPS安全代理)。 一个EC2实例的服务每月只需支付1美元,一个月免费。

要配置服务,您需要安装CLI:

npm install -g @porketta.io/porcli

然后运行:

porcli provider create

它将询问您可以在IAM AWS控制台中生成的AWS凭证(访问密钥ID和秘密访问密钥)。您可以按照here所述创建具有特定角色和权限的用户。

运行:

porcli vhost create

,然后按照说明进行操作。它将向您显示所有正在运行的EC2实例,并让您选择要使用Hakuna Cloud配置的实例。之后,它将询问您EC2实例链接到哪个FQDN。

结束此部分后,您必须更改DNS。如果您将Route 53用于DNS,则可以从AWS控制台进行操作。您只需要更改或创建CNAME记录集,例如:

 service.yourdomain.com CNAME eu1.lb.hakuna.cloud