我们有一个EC2在亚马逊运行。 它有一个公共IP和公共DNS 。
我们通过为www.example.com创buildAlogging来在我们的域logging中使用公有IP。 然后该网站变得可访问。 如果我们使用公共DNS,我们将使用CNAME而不是Alogging。
我的问题是关于两者的技术性和function性。 一个人比另一个人有优势吗?
在很多情况下,没有理由使用CNAME。 您有一个公共IP地址,因此请在您的IP地址处指定一条Alogging,以避免第二次查找CNAME所需。 另外,对于example.com (无www ),当直接指向未使用Elastic Load Balancer(ELB)或CloudFront作为前端的EC2实例时,Alogging是唯一的选项。
例外:
对于域内的主机名(例如www ,如果您希望AWS账户(和同一地区)中的实例能够使用外部主机名,但使用内部IP地址访问实例,那么使用CNAME会非常有用。 EC2基础架构在您使用CNAME时会自动执行此操作。
例如:
www.example.com CNAME ec2-203-0-113-25.compute-1.amazonaws.com.
如果在您的EC2区域和帐户以外查询,www.example.com将返回实例的公共IP,203.0.113.25。
如果在您的EC2区域和帐户内查询,www.example.com将返回实例的私有IP地址,例如172.31.1.20。
我们将外部DNS主机名parsing为实例networking外的实例的公有IP地址,并将实例的networking内部的实例的私有IP地址parsing为实例的私有IP地址。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html
当内部机器使用公共主机名访问其他内部机器时,这种自动映射允许您节省数据传输费用。 如果该访问使用公共IP,弹性IP或NAT网关,则需要额外付费才能将stream量重新发送回去,这就避免了这种情况。