我是Elastic Beanstalk的新手,我有一个简单的"创建EC2和RDS实例的问题。现在创建,删除环境和谷歌搜索解决方案几个小时我没有想法。
问题似乎很简单。我希望EC2和RDS实例位于同一可用区中,这样我就不必为可用区之间的流量付费。但似乎创建它们的区域是随机的(1a-1c)。在"配置"选项卡我在实例"可用区域:任何"已配置。但是当我编辑实例配置时,没有选项可以更改它。
实际区域并不重要。重要的是,所有实例都在同一区域中创建。
谢谢。
答案 0 :(得分:2)
这是可能的。您可以为EC2实例和RDS数据库指定自定义可用区域。您可以使用.ebextensions
来实现此目的。在您的应用来源中创建名为.ebextensions
的目录。在此目录中创建一个名为'01 -rds-setup.config'的文件。此目录中的配置文件按其名称的字典顺序处理。
假设这是唯一要处理的文件。
要配置EC2可用区,请使用“aws:autoscaling:asg”命名空间下的“自定义可用区域”选项设置。有关此选项设置的文档可用here。 要配置RDS可用性区域,您可以覆盖RDS资源的属性。有关覆盖资源属性的更多文档,请阅读this。
您的文件内容.ebextensions / 01-rds-setup.config:
option_settings:
- namespace: aws:autoscaling:asg
option_name: Custom Availability Zones
value: us-west-2a
Resources:
AWSEBRDSDatabase:
Type: AWS::RDS::DBInstance
Properties:
AvailabilityZone: us-west-2a
从控制台启动带有RDS的Elastic Beanstalk环境时,请确保不要选择“多可用区”选项。这应该适用于您的用例。
答案 1 :(得分:0)
aws:autoscaling:asg:Custom Availability Zones
选项不适用于现代“VPC”Elastic Beanstalk环境。
您将收到错误:Custom Availability Zones option not supported for VPC environments
。
相反,您必须通过aws:ec2:vpc:Subnets
选项限制您提供的子网,以仅在AZ中指定您希望实例运行的子网。