本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
示例:使用 Amazon RDS 启动 VPC 中的 Elastic Beanstalk
此部分演示了使用 NAT 网关在 VPC 中部署带 Amazon RDS 的 Elastic Beanstalk 应用程序的任务。
您的基础设施与下图类似。
注意
如果您之前从未和应用程序同时使用数据库实例,请在添加 VPC 配置至组合之前,尝试添加至测试环境和连接到外部数据库实例。
创建带有公有子网和私有子网的 VPC
您可使用 Amazon VPC 控制台
创建 VPC
-
登录 Amazon VPC 控制台
。 -
在导航窗格中,选择 VPC Dashboard (VPC 控制面板)。然后选择 Create VPC (创建 VPC)。
-
选择 VPC with Public and Private Subnets (带有公有子网和私有子网的 VPC),然后选择 Select (选择)。
-
您的 Elastic Load Balancing 负载均衡器和您的 Amazon EC2 实例必须位于同一可用区中,这样它们才能相互通信。从每个 Availability Zone (可用区) 列表中选择相同的可用区。
-
为您的 NAT 网关选择弹性 IP 地址。
-
选择创建 VPC。
向导将开始创建 VPC、子网和 Internet 网关。它还将更新主路由表并创建自定义路由表。最后,向导将在公有子网中创建 NAT 网关。
注意
您可以选择在公有子网而非 NAT 网关中启动 NAT 实例。有关更多信息,请参阅《Amazon VPC 用户指南》中的场景 2:带有公有子网和私有子网的 VPC(NAT)。
-
在成功创建 VPC 后,您会获得一个 VPC ID。在下一个步骤中,您需要用到此值。要查看您的 VPC ID,请在 Amazon VPC 控制台
的左窗格中选择您的 VPC。
创建数据库子网组
VPC 的数据库子网组是可为后端 RDS 数据库实例指定的子网(通常为私有子网)集合。每个数据库子网组应至少包含给定AWS区域中每个可用区的一个子网。要了解更多信息,请参阅在 VPC 中创建子网。
创建数据库子网组
-
打开 Amazon RDS 控制台
。 -
在导航窗格中,选择子网组。
-
选择创建数据库子网组。
-
选择名称,然后键入数据库子网组的名称。
-
选择描述,然后描述数据库子网组。
-
对于 VPC,选择您之前创建的 VPC 的 ID。
-
在添加子网中,选择添加与此 VPC 相关的所有子网。
-
完成后,选择 Create。
您的新数据库子网组显示在 Amazon RDS 控制台的子网组列表中。在此页面底部的详细信息窗格中,您可以选择它以查看详细信息,例如与此组关联的所有子网。
部署到 Elastic Beanstalk
设置 VPC 后,您可在其中创建您的环境并将应用程序部署到 Elastic Beanstalk。您可以使用 Elastic Beanstalk 控制台执行此操作,也可以使用AWS工具包、AWS CLI、EB CLI 或 Elastic Beanstalk API。如果您使用 Elastic Beanstalk 控制台,则只需上传 .war
或 .zip
文件并在向导中选择 VPC 设置。Elastic Beanstalk 随后会在 VPC 中创建环境并部署应用程序。或者,您可以使用AWS工具包、AWS CLI、EB CLI 或 Elastic Beanstalk API 来部署应用程序。为此,您需要在配置文件中定义 VPC 选项设置并使用源捆绑部署此文件。本主题提供了这两种方法的说明。
使用 Elastic Beanstalk 控制台来部署
Elastic Beanstalk 控制台将指导您在您的 VPC 内创建新环境。您需要提供 .war
文件 (对于 Java 应用程序) 或 .zip
文件 (对于所有其他应用程序)。在 Elastic Beanstalk 环境向导的 VPC Configuration (VPC 配置) 页面上,您必须做出以下选择:
- VPC
-
选择您的 VPC。
- VPC 安全组
-
选择您上面创建的实例安全组。
- ELB visibility (ELB 可见性)
-
选择
External
(如果您的负载均衡器应公开可用),或选择Internal
(如果负载均衡器应仅在您的 VPC 内可用)。
选择您的负载均衡器和 EC2 实例的子网。确保选择负载均衡器的公有子网和 Amazon EC2 实例的私有子网。默认情况下,VPC 创建向导将创建 10.0.0.0/24
形式的公有子网,并创建 10.0.1.0/24
形式的私有子网。
您可以通过在 Amazon VPC 控制台
使用AWS工具包、EB CLI、AWS CLI 或 API 进行部署
使用AWS工具包、EB CLI、AWS CLI 或 API 将应用程序部署到 Elastic Beanstalk 时,您可以在一个文件中指定 VPC 选项设置并使用源代码包部署该文件。请参阅使用配置文件 (.ebextensions) 进行高级环境自定义了解更多信息。
更新选项设置时,至少需要指定以下内容:
-
VPCId - 包含 VPC 的 ID。
-
Subnets (子网) – 包含 Auto Scaling 组子网的 ID。在此示例中,这是私有子网的 ID。
-
ELBSubnets - 包含负载均衡器的子网 ID。在此示例中,这是公有子网的 ID。
-
SecurityGroups - 包含安全组的 ID。
-
DBSubnets - 包含数据库子网的 ID。
注意
使用数据库子网时,您需要在 VPC 中创建其他子网,以覆盖该AWS区域中的所有可用区。
另外,您还可以指定以下信息:
-
ELBScheme - 指定
internal
以在 VPC 内创建一个内部负载均衡器,确保无法从 VPC 外部访问您的 Elastic Beanstalk 应用程序。
以下是在 VPC 内部署 Elastic Beanstalk 应用程序时可以使用的选项设置的示例。有关 VPC 选项设置的更多信息(包括有关如何指定这些设置、默认值和有效值的示例),请参阅配置选项中的 aws:ec2:vpc 命名空间表。
option_settings:
- namespace: aws:autoscaling:launchconfiguration
option_name: EC2KeyName
value: ec2keypair
- namespace: aws:ec2:vpc
option_name: VPCId
value: vpc-170647c
- namespace: aws:ec2:vpc
option_name: Subnets
value: subnet-4f195024
- namespace: aws:ec2:vpc
option_name: ELBSubnets
value: subnet-fe064f95
- namespace: aws:ec2:vpc
option_name: DBSubnets
value: subnet-fg148g78
- namespace: aws:autoscaling:launchconfiguration
option_name: InstanceType
value: m1.small
- namespace: aws:autoscaling:launchconfiguration
option_name: SecurityGroups
value: sg-7f1ef110
注意
使用数据库子网时,确保 VPC 中的子网可以覆盖该AWS区域中的所有可用区。