当前位置: 首页 > 知识库问答 >
问题:

用于EC2、EMR、红移和RDS的AWS SDK用例

岳茂
2023-03-14

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

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

如果AWS控制台不是一个选项,而编程访问是我们所拥有的一切,那么我们最终不总是使用AWS CLI来提供相应的服务,或者使用云形成或地形来解决这个问题吗?

共有2个答案

子车桐
2023-03-14

AWS CLI是使用AWS SDK for Python构建的。Terraform是使用适用于GoLang的AWS SDK构建的。您可能希望使用更高级别的基础设施作为代码工具,但如果没有SDK,这些工具就不可能存在,如果您想构建这样的工具,您很可能会在其中一个SDK之上构建它。

我在StackOverflow上也看到了一些通过AWS Lambda执行架构体系自动化的用例,例如定期停止和启动RDS实例,在Lambda代码中使用一个AWS SDK可能比试图让Terraform在Lambda函数中运行要容易得多。

邵锐
2023-03-14

通常,它的最佳实践是通过将基础设施用作代码解决方案来管理任何基础设施/服务部署,如CloudFormation、CDK(在引擎盖下生成CloudFormation堆栈)或Terraform。

虽然您可以使用SDK创建此服务(并创建一个类似于上述解决方案的解决方案),但您将构建许多其他服务已经创建的功能,如果您想支持其他服务等,这些功能将赋予您更多的所有权来修复它。

SDK只是以html" target="_blank">编程的方式提供每个AWS API交互,即使是在后台,CloudFormation和Terraform也可能会使用SDK以编程的方式创建资源(尽管我在猜测),但随后会添加额外的功能,如状态管理和漂移检测。

我只见过在所选工具中不可用的情况下,通过SDK创建服务,即使这样,它通常也会被包装在该工具中(例如用于CloudFormation的自定义资源)。

总之,是的,你可以使用SDK来生成这些,但是除非有一个特定的用例来使用SDK我建议使用一个已经管理这个的工具,这样你就可以更专注于你的架构体系/应用程序。

 类似资料:
  • 我想问一下关于在AWS中连接EC2到RDP的问题。 我已经将我的EC2安全组(包含EC2实例)添加到默认的RDP组中,数据正在流动——连接正常。 EC2安全组启用了端口80到0.0.0.0/0以及SSH到我的IP。 我有点担心,通过将这个EC2组添加到RDS数据库,它将允许来自任何地方的端口80流量访问数据库。这是对的还是错的? 如果像这样连接RDS实例,EC2中的规则是否适用于它们? 我确实在A

  • 问题内容: 在AWS中,我设置了带有堡垒主机的VPC。堡垒主机是具有公共地址槽的单个EC2实例,您可以将其SSH到VPC上的任何其他服务器。 我已经在VPC中创建了一个RDS MySQL实例,我想使用MySQL工作台连接到它。我已按照此处详细说明的步骤进行操作,但是在“步骤6:设置远程SSH配置”中,它要求我“提供Amazon EC2实例的公共DNS”(即堡垒主机)。 然后,MySQL工作台会检查

  • 我正在尝试在EC2实例中使用mysql RDS。我相信我的安全组配置可能是错误的。由于某种原因,RDS没有连接。 我的 EC2 实例包括以下入站组:1) HTTP(端口 80),2) SSH(端口 22),3) MYSQL/AURA(端口 3306) - 我在源中添加了 RDS 中的安全组,4) 自定义 TCP 规则(端口 3000) 我的RSD实例包括以下入站组:1)HTTP(端口80)-我也尝

  • 我试图在当前redshift表的顶部创建一个redshift表,我有一个执行以下步骤的脚本: 将redshift表按块加载到熊猫数据帧中以避免内存错误 在每个卡盘中,我处理数据并将CSV文件输出到S3 运行S3 Copy命令将文件移动到红移。 这种方法非常慢,因为在将数据加载到pandas dataframe时,它会保持红移查询。 为了加快进程,我认为可能需要 减少查询原始表的次数 我发现Data

  • 背景: 我有一个具有 2 个私有子网的自定义 VPC,其中包含一个位于美国西部 2 区域内的 Postgres RDS 实例,以及一个包含美国西部 2 区域内 EC2 实例的公有子网。 专用子网ACL: < li >允许端口5432上的所有入站IPv4流量 RDS 实例安全组: < li >允许端口5432上的所有入站IPv4流量 公有子网 ACL: 允许所有端口上的所有入站/出站流量 公共子网在

  • 问题内容: 我正在尝试从EC2实例i-78a8df00连接到RDS实例mysql。**。us- east-1.rds.amazonaws.com。他们俩都在美国东部地区。我将EC2实例的安全组(sg- **)添加到RDS安全组,但这无济于事。这似乎是防火墙/ DNS问题,因为运行此命令时超时: 错误2003(HY000):无法连接到“ mysql。**。us- east-1.rds.amazona