首页 > 解决方案 > 适用于 EC2、EMR、Redshift、RDS 的 AWS 开发工具包用例

问题描述

我熟悉 AWS 开发工具包(Python/Java)以及对 S3、DDB、KMS 等许多服务的需求。

是否有任何使用 AWS Java SDK 的有效用例,例如以编程方式分离 EC2 实例或 EMR 集群或 Redshift 集群或 RDS 实例,或者任何需要设置基础设施/集群的资源?

如果 AWS 控制台不是一个选项,并且我们只有编程访问,那么我们是否总是最终使用 AWS CLI 来提供相应的服务,或者为此使用 CloudFormation 或 Terraform?

标签: amazon-web-servicesaws-sdk

解决方案


通常,通过使用基础架构即代码解决方案来管理任何基础架构/服务部署是最佳实践,例如CloudFormationCDK(在后台生成 CloudFormation 堆栈)或Terraform

虽然您可以使用 SDK 来创建此服务(并创建与上述解决方案类似的解决方案),但您将构建其他服务已经创建的许多功能,如果您愿意,您将拥有更多的所有权来修复它支持其他服务等

SDK 只是以编程方式提供每个 AWS API 交互,即使在底层 CloudFormation 和 Terraform 可能会使用 SDK 以编程方式创建资源(尽管我在推测)但随后会添加额外的功能,例如状态管理和漂移检测在此之上。

只有当所选工具中没有该服务时,我才看到通过 SDK 创建的服务,即便如此,它通常也会被包装在该工具中(例如CloudFormation 的自定义资源)。

总而言之,是的,您可以使用 SDK 来生成这些,但除非有使用 SDK 的特定用例,否则我建议您使用已经管理它的工具,以便您可以更专注于您的基础设施/应用程序。


推荐阅读