Elastic Beanstalk 作为 API 网关的私有后端
Posted: Mon Feb 17, 2025 9:35 am
使用 Amazon Web Services (AWS) 上的 API 网关时,您通常不希望在其他 AWS 子服务上托管的服务在 Internet 上公开。 Elastic Beanstalk 默认生成一个公共服务,这将需要额外的保护服务,例如客户端证书或服务密钥、针对 DoS 攻击的保护等,但如果您将此服务保持私有,则可以通过 API 网关的唯一访问权限来保护它。
可能最好的方法是使用默认情况下是私有的 AWS Lambda, 学生数据库 但此服务不像 Elastic Beanstalk 那样可配置,无法运行您自己的后端配置,因此我们将把服务保留在私有云(亚马逊术语中的“VPC”)中,并仅通过 API 网关提供对此服务的访问。
本指南旨在解释使用位于 VPC 内的 Elastic Beanstalk (EBS) 设置私有后端/服务的基础知识。 EBS 方法将使用 VPC 链接通过 API 网关提供。
1. 设置虚拟私有云 (VPC) 和子网
您首先需要设置一个虚拟私有云 (VPC)。此设置很复杂,需要网络知识。我与您分享以下视频,其中详细解释了如何创建您自己的公共和私有网络、默认安全组配置以及路由器和 NAT 的配置以提供对您的新 VPC 的访问。
2. 私有配置 Elastic Beanstalk
第二步是配置 Elastic Beanstalk (EBS) 应用程序。与纯 EC2 实例相比,使用 EBS 的优势之一是 EBS 带有许多预配置功能,例如自动扩展和滚动更新。
我们将首先通过创建新环境来创建 EBS 应用程序。环境实际上是所有配置发生的地方。有关 EBS 实际工作原理的更多信息,请参阅Elastic Beanstalk (EBS) 文档。
2.1.设置环境
让我们一步一步看看如何配置新环境:
选择“Web服务器环境”。
命名您的环境并分配域名
选择适合您需求的平台,Go、Java、Node.js 等。
选择您想要部署的应用程序。您可以使用示例应用程序,也可以上传您的应用程序“上传您的代码”。
配置部署类型,在这种情况下您必须选择“高可用性”选项。这将为我们稍后配置网络负载均衡器提供选项,网络负载均衡器非常重要,因为我们希望 API 网关通过网络访问我们在 EBS 中部署的 APP。
2.2.设置服务访问
配置服务访问将允许您访问生成基础设施的权限和用户的配置,即我们上面提到的具有 EC2 和网络负载均衡器的服务器。
要配置对服务的访问,您必须:
接下来,您必须指示与通过 EBS 部署服务器相关的 IAM。为此,您必须考虑拥有“aws-elasticbeanstalk-service-role”。要为 Elastic Beanstalk 配置 aws-elasticbeanstalk-ec2-role 角色,您可以按照以下步骤操作:
导航到 IAM:转到 IAM(身份和管理访问)服务。
选择角色:在左侧导航面板中。
查找角色:在角色列表中,查找或创建 aws-elasticbeanstalk-ec2-role 角色。
编辑角色权限:选择角色并点击“附加策略”。
附加必要的策略:为了使 Elastic Beanstalk 正常工作,请确保角色至少具有访问所需资源(例如 S3、EC2 等)的必要权限。如果您默认没有权限,则需要确保关联这 3 个权限(AWSElasticBeanstalkMulticontainerDocker、AWSElasticBeanstalkWebTier、AWSElasticBeanstalkWorkerTier)。
审查并应用更改:附加必要的策略后,审查更改并单击“附加策略”以应用它们。
可能最好的方法是使用默认情况下是私有的 AWS Lambda, 学生数据库 但此服务不像 Elastic Beanstalk 那样可配置,无法运行您自己的后端配置,因此我们将把服务保留在私有云(亚马逊术语中的“VPC”)中,并仅通过 API 网关提供对此服务的访问。
本指南旨在解释使用位于 VPC 内的 Elastic Beanstalk (EBS) 设置私有后端/服务的基础知识。 EBS 方法将使用 VPC 链接通过 API 网关提供。
1. 设置虚拟私有云 (VPC) 和子网
您首先需要设置一个虚拟私有云 (VPC)。此设置很复杂,需要网络知识。我与您分享以下视频,其中详细解释了如何创建您自己的公共和私有网络、默认安全组配置以及路由器和 NAT 的配置以提供对您的新 VPC 的访问。
2. 私有配置 Elastic Beanstalk
第二步是配置 Elastic Beanstalk (EBS) 应用程序。与纯 EC2 实例相比,使用 EBS 的优势之一是 EBS 带有许多预配置功能,例如自动扩展和滚动更新。
我们将首先通过创建新环境来创建 EBS 应用程序。环境实际上是所有配置发生的地方。有关 EBS 实际工作原理的更多信息,请参阅Elastic Beanstalk (EBS) 文档。
2.1.设置环境
让我们一步一步看看如何配置新环境:
选择“Web服务器环境”。
命名您的环境并分配域名
选择适合您需求的平台,Go、Java、Node.js 等。
选择您想要部署的应用程序。您可以使用示例应用程序,也可以上传您的应用程序“上传您的代码”。
配置部署类型,在这种情况下您必须选择“高可用性”选项。这将为我们稍后配置网络负载均衡器提供选项,网络负载均衡器非常重要,因为我们希望 API 网关通过网络访问我们在 EBS 中部署的 APP。
2.2.设置服务访问
配置服务访问将允许您访问生成基础设施的权限和用户的配置,即我们上面提到的具有 EC2 和网络负载均衡器的服务器。
要配置对服务的访问,您必须:
接下来,您必须指示与通过 EBS 部署服务器相关的 IAM。为此,您必须考虑拥有“aws-elasticbeanstalk-service-role”。要为 Elastic Beanstalk 配置 aws-elasticbeanstalk-ec2-role 角色,您可以按照以下步骤操作:
导航到 IAM:转到 IAM(身份和管理访问)服务。
选择角色:在左侧导航面板中。
查找角色:在角色列表中,查找或创建 aws-elasticbeanstalk-ec2-role 角色。
编辑角色权限:选择角色并点击“附加策略”。
附加必要的策略:为了使 Elastic Beanstalk 正常工作,请确保角色至少具有访问所需资源(例如 S3、EC2 等)的必要权限。如果您默认没有权限,则需要确保关联这 3 个权限(AWSElasticBeanstalkMulticontainerDocker、AWSElasticBeanstalkWebTier、AWSElasticBeanstalkWorkerTier)。
审查并应用更改:附加必要的策略后,审查更改并单击“附加策略”以应用它们。