如何通过EC2创建到RDS的SSH隧道并通过ALB访问?

问题描述 投票:0回答:1

我对 AWS 比较陌生,因此我们将不胜感激!

我遇到的问题是我无法通过 EC2 实例建立到 RDS 数据库的 SSH 隧道,因为 ALB 只允许 HTTPS/HTTP,而不允许 SSH。

我有一个公共 VPC,其中包含:

  1. 私有子网中的 MySQL RDS 实例
  2. 私有子网中的 EC2 实例
  3. 公有子网中的应用程序负载均衡器 (ALB)

注意我通过 Elastic Beanstalk 设置 ALB 和 EC2 实例

是否可以通过 ALB 建立 SSH 隧道,或者是否有其他推荐的路线,我已经做了一些研究,SSM 或堡垒主机似乎都很常见?

下图显示了通过 SSH 连接到 MySQL 数据库所需的详细信息:

amazon-web-services amazon-ec2 amazon-elastic-beanstalk amazon-rds aws-application-load-balancer
1个回答
0
投票

听起来您想通过连接到 EC2 实例(通过 SSH)来使用 SSH 端口转发,然后通过该实例转发一些端口以连接到 Amazon RDS 数据库。

但是,这不适用于私有子网中的 EC2 实例。您需要在公共子网中启动 EC2 实例才能从 Internet 访问。

另一种方法是在 AWS Systems Manager 会话管理器中使用端口转发来连接到远程主机 | AWS 云运营和迁移博客:

Port forwarding in AWS Systems Manager Session Manager

这使用安装在私有 EC2 实例上的Systems Manager 代理来建立与 AWS Systems Manager 服务的连接。这允许您连接到私有实例。它的行为类似于 SSH,但实际上并没有使用 SSH。

作为此连接的一部分,您可以指定端口转发,以便可以通过会话管理器连接将流量发送到与 EC2 实例位于同一 VPC 中的 Amazon RDS 数据库。

我认为这个方法很适合你的情况。您需要向 EC2 实例上的 IAM 角色添加一些权限,以允许会话管理器运行。

© www.soinside.com 2019 - 2024. All rights reserved.