我是一名自由职业者,计划在未来与其他自由职业者合作。由于我将拥有该项目,因此我也希望拥有开发环境。我们都将在各自的位置工作。我一直在考虑使用 Amazon 的 EC2 服务来搭建开发环境并向其他相关人员提供所需的访问权限。
考虑到以上情况,我有几个疑问:
- 首先,这是个好主意吗?创建虚拟机并将其(物理地)分发给团队成员是否更好?当然,在这种情况下我会失去控制权,数据很容易受到攻击。
- 我是否应该购买大型实例、安装所有需要的工具、创建用户并根据角色为他们提供访问权限?
- 我是否应该只购买大型/超大型实例,在实例内构建虚拟机,每个角色一个,并为每个用户实例化实例?我现在不确定访问将如何进行。如何才能直接访问在 EC2 实例内运行的虚拟机实例。
- 有一些工具可以帮助管理 EC2 实例和 EC2 API。但是,根据我上面解释的内容(特别是第 3 点),是否有工具可以帮助管理/监控其中的实例和虚拟机?
可能还有很多复杂情况我暂时想不出来。如果有人已经经历过,我将非常感激您的意见/指导。
答案1
选项 2 要求实例全天候运行(或至少在每个人的工作时间范围内)。这对你来说可能无关紧要。
我不确定选项 3 是否可行。您是在询问在 EC2 实例中安装 Xen(或其他程序)然后创建自己的“子虚拟”机器吗?
另一种选择是创建一个设置了开发环境的 EC2 映像(AMI),然后允许每个开发人员在想要工作时启动此 AMI 的实例。
好处:
- 开发人员不会在共享机器上争夺计算资源(例如 CPU)。这对你来说可能并不重要。
- 您可以修改图像(例如操作系统更新)并发布新的“版本”,而无需所有开发人员停机。
- 由于您不需要全天候运行实例,因此可以节省成本。
缺点:
- 潜在的增加成本,因为您可能运行 5 个实例(即 5 个开发人员同时工作)而不是 1 个。
- 要求每个开发人员都能访问 AWS 账户。
如果您认为这适合您,那么可以通过多种方式解决 AWS 账户问题:
- 每个开发人员都使用您的 AWS 账户。这是最简单的选择,但需要您信任他们。
- 每个开发者都会创建自己的帐户并将账单转发给您。这会导致更多的“文书工作”,但如果您认为开发者不合法,您可以拒绝账单。
- 每个开发人员都会创建自己的帐户,然后您可以使用AWS 整合账单使用同一张信用卡支付所有款项。
我相信您可以授予对 AMI 的启动访问权限,而不必root
在实例启动并运行后授予此人访问权限。但您需要仔细检查这一点,因为听起来您担心安全问题。
最后,这显然需要一些全天候运行的中央源代码存储库。这也是为什么这可能不是适合您的解决方案的原因之一。