【问题标题】:How to configure Google Cloud Composer cost-effectively如何经济高效地配置 Google Cloud Composer
【发布时间】:2018-11-15 12:27:35
【问题描述】:
经过一些研究和测试,我们决定开始使用 Google Cloud Composer。由于我们目前的 DAG 和任务都比较小,并且不需要服务器持续运行,所以我正在研究如何管理成本。
两个问题:
- 使用
preemptible VM 的选项似乎合乎逻辑。这大大节省了成本,我正在考虑购买 3x n1-standard-4。我希望每个任务都很短,所以不要认为这会对我们的工作量产生重大影响。是否可以将 preemptible VM 与 Composer 一起使用?
- 按this post 中的要求安排打开/关闭 Composer 环境。我无法在文档中找到如何做到这一点,要么关闭整个环境,要么按照答案中的建议关闭工作人员。
帮忙,有人吗?
【问题讨论】:
标签:
airflow
google-cloud-composer
【解决方案1】:
这是一个有趣的问题。
您可能会遇到的一个障碍是 Airflow 本身的性质。通常,Airflow 不适合临时使用。相反,我怀疑绝大多数 Airflow 的使用,无论是 Cloud Composer 还是其他,都是持久的。短暂性带来了成本收益,但也带来了 Airflow 架构的风险。例如,如果重新启动 Airflow 资源的调度程序失败会发生什么?
回答您的问题:
- Composer 不支持抢占式。虽然 PVM 有很多很棒的好处,但它们可能会使任务处于非常奇怪的状态,尤其是在您多次被抢占的情况下。
- 此过程没有正式的文档,因为它通常是非正式的,如果您必须依赖于您的环境,不建议这样做。但是,基本方法是:
- 创建一个非常小的 GCE 虚拟机
- 设置 Cloud SDK (
gcloud) 以连接到您的项目
- 创建一个 crontab,它可以在需要时重新创建/删除环境/或/暂停 Composer 工作池中的虚拟机
从长远来看,我认为 Composer 将更好地支持临时使用工作人员资源。在短期内,另一种选择是在小型(ish)GCE VM 上运行轻量级 Airflow 环境,然后在需要使用 Airflow 时挂起/恢复该 VM。您不会以这种方式获得 Composer,但您确实受益于团队在核心 Airflow 中改进和扩展 GCP 支持的工作。