首页 文章

使用Amazon RDS的VPC中的AWS Elastic Beanstalk

提问于
浏览
1

我想运行一个简单的Ruby Rack应用程序(REST API)来接收Internet请求(来自iPhone客户端),与PostgreSQL数据库对话,并使用JSON进行响应 .

我应该如何在Amazon Web Services(AWS)上进行设置?

  • 我希望应用程序能够扩展以服务越来越多的客户端,所以我认为我应该使用Auto Scaling with Elastic Load Balancing .

  • 我应该使用Elastic Beanstalk还是自己动手设置所有内容?

在使用PostgreSQL设置Ruby Rack服务器时,如何应用Manual deployment vs. Amazon Elastic Beanstalk这个问题?

  • 默认与自定义VPC

我是否应该使用默认VPC并使用安全组来阻止对EC2和数据库实例的直接Internet访问?或者,我应该创建自定义VPC并使用私有子网,如Example: Launching an Elastic Beanstalk in a VPC with Amazon RDS中所述?

1 回答

  • 4

    使用公共和私有子网的概念为您的AWS应用程序添加了一个出色的安全层 . 通过将数据库和应用程序服务器实例放置在私有子网中,您可以通过设计保护它们免受外部渗透和意外暴露 .

    我建议您首先在每个可用区中配置a VPC in 2 AZs,其中包含1个公共子网和1个私有子网(总共4个子网) .

    在每个公有子网中放置一个NAT instance,并将私有子网的主路由表更新为send all non-vpc traffic to the NAT . 这将允许启动到您的私有子网的实例与WAN Internet进行通信,即使它们本身无法公开寻址 .

    我建议您使用Multi-AZ RDS deployment进行Postgres部署,并在每个AZ内的私有子网中使用RDS实例 . 这将最大限度地提高安全性(Postgres不可公开访问)并将为您提供容错功能(AZ故障不会取消您的应用程序) .

    我会设置你的Ruby app on Elastic Beanstalk . 这将为您提供容错和自动缩放功能 . 您的Elastic Beanstalk负载 balancer 器将驻留在每个AZ的公有子网中,并且您的Elastic Beanstalk EC2实例将驻留在私有子网中 .

相关问题