数据库引用 DNS 名称而不是 IP 地址?

Database reference a DNS name instead of IP address?

我想知道是否可以使用 Amazon RDS 使我的数据库具有 DNS 名称而不是 IP 地址?我们目前拥有一个网站,想知道是否有解决方案可以让 db.website.com 引用我们的 Amazon Web Services 数据库?这可能吗?

I was wondering if it is possible to make my database have a DNS name instead of an IP address with Amazon RDS?

不仅你可以,而且你必须。您的 RDS 将有一个类似于 something.random-string.us-west-2.rds.amazonaws.com 的端点。直接更正其 IP 是危险的,因为服务器的 IP 可能会意外更改(如果服务器被修改、缩放、出现问题或故障转移)。

您可以使用 CNAME 指向您的 RDS 端点,如果您愿意,可以使用 db.example.com 之类的东西来代替您的 RDS 端点。

在 Amazon RDS(关系数据库服务)下启动数据库实例时,端点以以下形式提供:

db.crwobkqad31a.ap-southeast-2.rds.amazonaws.com:3306

如果您希望应用更友好的 DNS 名称,在您的 DNS 服务器中配置 CNAME 记录(例如 Amazon Route 53)以映射友好名称 (例如 db.website.com) 到数据库端点。

DNS 名称将解析为 IP 地址。如果数据库 publicly-accessible 并且名称在您的 Amazon VPC 之外解析,将返回 public IP 地址。如果名称在您的 Amazon VPC 中解析,将返回私有 IP 地址。

您通常希望通过将数据库置于专用子网中来保护您的数据库免受外部访问。让最终用户直接访问数据库是不常见的(我假设你想要这样做,因为需要一个友好的 DNS 名称),但这是你的选择。