我一直在使用Google,不能完全搞清楚。 我试图在AWS VPC中设置一个多层应用程序,但是我是一个大型系统networking架构的新手。 我将要使用几个子网来处理应用程序的不同部分。 我们的应用程序服务器将需要与数据库子网中的数据库服务器以及其他子网中的各种其他服务进行通信。 我将使用CloudFormation编排所有这些。
我的问题是非常基本的。 我的应用程序configuration了哪些名称/ IP,以便与这些其他服务进行通信。 我的应用程序服务器将需要一个url / IP数据库和所有这些其他服务。 我似乎无法find一种方法来分配一个主机名到创build的资源。
对于数据库你有两个select:
mysql-rds01.abcdefgh.ap-southeast-2.rds.amazonaws.com – 使用。 ip-172-31-44-105.ap-southeast-2.compute.internal或更好地在AWS Route53中创build一个区域,并在该区域创build一个logging,如db-server指向上述名称的CNAME 。 如果实例IP更改,那么使用稳定的名称( db-server )可以在单个位置(Route53)更新。 除非你有充分的理由不使用RDS并推出自己的产品,否则总是试图使用RDS 。
接下来,为了在层之间进行通信,使用Elastic Load Balancers (ELB)可能是一个好主意 – 它们可以是内部的 ,例如将内部Web服务集群隐藏在内部ELB之后,并且与Web服务交谈时使用DNS的名称ELB。 将是像internal-blahblah-12345678.ap-southeast-2.elb.amazonaws.com一样,你可以在Route53中给它一个很好的CNAME 。
不用说,所有这些都将由您的CloudFormation模板进行pipe理。 在创build您的Web服务主机的同一个模板中,也会创buildELB和它的Route53logging。 然后,您将一次性创build所有与逻辑相关的资源。