amazon-web-services - 适用于 EC2、EMR、Redshift、RDS 的 AWS 开发工具包用例
问题描述
我熟悉 AWS 开发工具包(Python/Java)以及对 S3、DDB、KMS 等许多服务的需求。
是否有任何使用 AWS Java SDK 的有效用例,例如以编程方式分离 EC2 实例或 EMR 集群或 Redshift 集群或 RDS 实例,或者任何需要设置基础设施/集群的资源?
如果 AWS 控制台不是一个选项,并且我们只有编程访问,那么我们是否总是最终使用 AWS CLI 来提供相应的服务,或者为此使用 CloudFormation 或 Terraform?
解决方案
通常,通过使用基础架构即代码解决方案来管理任何基础架构/服务部署是最佳实践,例如CloudFormation、CDK(在后台生成 CloudFormation 堆栈)或Terraform。
虽然您可以使用 SDK 来创建此服务(并创建与上述解决方案类似的解决方案),但您将构建其他服务已经创建的许多功能,如果您愿意,您将拥有更多的所有权来修复它支持其他服务等
SDK 只是以编程方式提供每个 AWS API 交互,即使在底层 CloudFormation 和 Terraform 可能会使用 SDK 以编程方式创建资源(尽管我在推测)但随后会添加额外的功能,例如状态管理和漂移检测在此之上。
只有当所选工具中没有该服务时,我才看到通过 SDK 创建的服务,即便如此,它通常也会被包装在该工具中(例如CloudFormation 的自定义资源)。
总而言之,是的,您可以使用 SDK 来生成这些,但除非有使用 SDK 的特定用例,否则我建议您使用已经管理它的工具,以便您可以更专注于您的基础设施/应用程序。
推荐阅读
- angular - 表单提交与角度材料
- python - 包含 keras 模型的 deepcopy 类
- python - 使用 featuretools 指定有趣的变量不起作用
- swift - 如何使用 collectionview 将高质量图像发送到另一个视图
- delphi - 如何在肥皂应用程序中设置 TXSDateTime
- python - PyAutoGUI:如何在 Excel 中切换选择?
- javascript - 错误:SQLITE_ERROR:没有这样的列:未定义
- ffmpeg - 如何使用 FFMPEG 正确裁剪和缩放?
- python - Pandas Timestamp(year=2011, month=8, day=1) 返回一个月的最后一天
- c# - 查找集合中可以被另一个集合的数字整除的所有数字