AWS CLI 与控制台和 CloudFormation 堆栈
Posted
技术标签:
【中文标题】AWS CLI 与控制台和 CloudFormation 堆栈【英文标题】:AWS CLI vs Console and CloudFormation stacks 【发布时间】:2019-03-08 22:54:45 【问题描述】:通过 CLI 在 aws 上创建资源有什么已知的缺点吗?使用一种方法而不是另一种方法是否更可靠/更容易/容易出错/在很大程度上被接受/推荐?在设置循环脚本时,我是否有理由希望通过 AWS CLI 使用 CloudFormation 或 AWS 控制台直接运行命令?
例如,如果我要创建 ECS Fargate 任务定义,我是否有任何理由希望通过 AWS CLI 使用 AWS CloudFormation 或控制台? Cli 语法简单易用,并且有一些内容(例如为 fargate 任务专门设置事件规则/目标)尚不支持 cloudformation。
【问题讨论】:
【参考方案1】:AWS CLI 和 AWS CloudFormation 是两种不同的工具,可用于在 AWS 上创建基础设施。 CLI 比 CloudFormation 更强大,控制更精细。 CloudFormation 让使用 yaml 或 json 文本文件变得非常容易,这些文本文件可以描述云中的整个企业。
CloudFormation 的一大优势是在部署堆栈时出现任何故障时自动支持回滚更改。相比之下,CLI 将要求您找出问题的详细信息以及如何返回到您的状态。使用 CloudFormation 更新基础架构是另一个好处。在模板中进行更改并更新堆栈。
对于小型设置,使用 CLI 即可。然而,一旦你启动了一个 EC2 实例并开始构建 VPC、实例、密钥对、安全组、RDS 等,你会发现 CLI 有一些真正的限制:大部分过程过于手动,不易重复, 很难把过程放到版本控制中, ....
如果您不断构建、测试和删除复杂的设置,CloudFormation 绝对是 AWS 的最佳工具之一。请注意,有许多第三方解决方案拥有大量追随者,例如 Bamboo、Octopus、Jenkins、Chef 等。
如果您的工作是 SysOps 或 DevOps,那么您绝对想掌握 CLI 和 CloudFormation。这些是使用 AWS 的绝佳工具。还要掌握 Beanstalk,也许是 OpsWorks 和 Jenkins 等第三方工具之一。
【讨论】:
以上是关于AWS CLI 与控制台和 CloudFormation 堆栈的主要内容,如果未能解决你的问题,请参考以下文章
ElasticBeanstalk 与 Docker:如何使用来自 aws cli 的创建环境