5

我正在寻找一些 AWS 专家来帮助我解决这个问题。我花了将近一周的时间尝试将我的后端 docker 映像部署到 AWS,但没有 100% 的预期行为。

首先,有人建议我试用 AWS 最近提供的新 Fargate 服务。我设法部署了我需要的所有东西,但很快发现我需要任何类型的数据持久性,这在我所读到的内容中目前 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 后端映像中的卷挂载到那些 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:CloudFormation 模板/模板尽可能少地部署必要的服务,以便不构建庞大的基础设施来保留成本和只需单击按钮并获取到后端服务的外部链接的能力。(不能有任何手动配置,一切都必须自动化)

2:能够停止/启动后端容器的 EC2 实例(EC2 将每天运行几分钟到几小时/每月几天。(取决于每个用户场景他使用后端的频率)

3:能够在用户停止实例然后在将来的时间点启动它时保留数据。

我会感谢任何帮助/建议,因为我开始对连接到 AWS 服务的所有内容失去理智。这对于理解 AWS 的任何用例来说都是一个非常大的问题,因此我将不胜感激

谢谢!

4

1 回答 1

2

1:为什么此部署会为集群创建 2 个 EBS 实例?一个 8GB 带快照,第二个 22GB 大小不带快照。

根据文档:

版本 2015.09.d 和更高版本的 Amazon ECS 优化 AMI 使用 8-GiB 卷启动,该卷用于附加在 /dev/xvda 并作为文件系统根挂载的操作系统。在 /dev/xvdcz 附加了一个额外的 22-GiB 卷,Docker 将其用于图像和元数据存储。

这里是参考:ecs-ami-storage-config

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:自动安装您的 Amazon EFS 文件系统

于 2018-08-31T19:02:57.740 回答