Elastic Beanstalk:在同一可用区中创建EC2和RDS实例

时间:2014-07-01 19:33:29

标签: amazon-web-services elastic-beanstalk

我是Elastic Beanstalk的新手,我有一个简单的"创建EC2和RDS实例的问题。现在创建,删除环境和谷歌搜索解决方案几个小时我没有想法。

问题似乎很简单。我希望EC2和RDS实例位于同一可用区中,这样我就不必为可用区之间的流量付费。但似乎创建它们的区域是随机的(1a-1c)。在"配置"选项卡我在实例"可用区域:任何"已配置。但是当我编辑实例配置时,没有选项可以更改它。

实际区域并不重要。重要的是,所有实例都在同一区域中创建。

谢谢。

2 个答案:

答案 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中指定您希望实例运行的子网。