我正在寻找一些AWS专家来帮助我解决这个问题。我花了近一周时间尝试将我的后端docker镜像部署到AWS,没有100%的期望行为。
首先,我建议尝试最近提供的新的Fargate服务AWS。我设法部署了我需要的所有内容,但很快就发现我需要任何类型的数据持久性,而Fargate目前无法阅读这些内容。
我发现这些模板非常有用,因为AWS太大而且压倒性,所以如果没有这些模板我会做什么,目前尝试使用EC2实例进行部署。 https://github.com/awslabs/aws-cloudformation-templates/tree/master/aws/services/ECS/EC2LaunchType
我对这种部署提出了一个问题:
1:为什么此部署为群集创建2个EBS实例?一个8GB带快照,第二个带22GB大小,没有快照。
2:是否可以减小那些EBS卷的大小?如果是这样的话?
3:是否可能只有一个EBS?
4:是否可以将我的docker后端映像中的volue挂载到那些EBS卷以保存数据?如果是这样的话?我需要为我的后端安装两个卷
/root/.local/share/Bisq
/root/.local/share/bisq-api
或~/.local/share/Bisq
~/.local/share/bisq-api
我不太确定这如何与AWS配合使用。与本地环境的步骤相比,有哪些路径。
5:使用EBS或EFS进行数据持久性会更好吗? EFS的问题在于我无法找到如何将EFS连接到这种ECS部署的任何相关文档。一切都必须使用CloudFormation模板
总体而言,符合100%期望行为的要求是:
1:尽可能少地部署neccesarry服务的CloudFormation Template / tempalte,以便不构建庞大的基础架构来保留COST,并且只需单击按钮并获得后端服务的外部链接。 (不能有任何手动配置,一切都必须自动化)
2:能够停止/启动后端容器的EC2实例(EC2将从每天几分钟到几小时/每月几天运行。(取决于每个用户场景他将多久使用一次后端)
3:能够在用户停止实例时保留数据,然后在将来的时间点启动它。
我很感激任何帮助/建议,因为我开始失去对所有连接到AWS服务的HEAD。理解AWS的任何用例都是一个非常大的问题,所以我很感激帮助
谢谢!
答案 0 :(得分:2)
1:为什么此部署为群集创建2个EBS实例?一个有快照的8GB,第二个没有快照的22GB。
根据文档:
Amazon ECS优化的AMI从2015.09.d版本开始,随后以8-GiB卷的操作系统版本启动,该卷附加在/ dev / xvda并安装为文件系统的根。在/ dev / xvdcz上附加了一个附加的22-GiB卷,Docker将其用于图像和元数据存储。
2:是否可以减小这些EBS卷的大小?如果可以,怎么办?
也来自同一文档:
您可以通过在启动实例时更改其块设备映射设置来增加这些默认卷大小;但是,您不能指定比默认大小小的卷大小。
3:是否可能只有这些EBS之一?
为此,您可以更好地使用自定义AMI并根据需要对其进行配置。
4:是否可以将卷从我的docker后端映像挂载到那些EBS卷以保留数据?如果可以,怎么办?我需要为后端安装两个卷,即/root/.local/share/Bisq /root/.local/share/bisq-api或〜/ .local / share / Bisq〜/ .local / share / bisq-api我不太确定这如何与AWS一起使用。与本地环境中的步骤相比,路径是什么?
这是在任务定义中配置的: AWS::ECS::TaskDefinition
Type: AWS::ECS::TaskDefinition
Properties:
Volumes:
- Volume Definition
...
5:使用EBS或EFS进行数据持久化会更好吗? EFS的问题是我找不到任何相关文档,说明如何将EFS连接到这种ECS部署。一切都必须使用CloudFormation模板
这取决于您的用例场景。每个文档都有优点和缺点,具体取决于您的需求,因此最好阅读每个文档的文档,并据此选择最佳文档。在找到的模板中,您可以自定义 LaunchConfiguration UserData 以运行附加命令。您可以在CloudFormation中完成所有这些操作。
此外,我将为自动安装EFS保留此文档:Mounting Your Amazon EFS File System Automatically