Domain-Name-System

如何在 Cloudformation 中創建私有 IP 的 route53 記錄

  • March 3, 2018

我在 AWS 中有一個 cloudformation 腳本,它創建了一個 EC2 實例,其中包含一些防火牆規則、S3 映射和其他內容。我在 route53 中為實例的公共 IP 創建了一個 DNS 記錄,這很好用。

現在我需要在主機內部 ip 的 DNS 中創建另一條記錄(供內部使用,以便其他實例無需通過公共 ip 即可與該實例通信)。

我還沒有找到一種方法來做到這一點。是否可以?有人有範例 cloudformation 腳本嗎?

這是可能的,但您需要設置一個“私有託管區域”,如本文所述使用相同域名訪問網站的內部版本 | 然後Amazon AWS Support調整以下 cloudformation 以滿足您的需求

"myDNSRecord2" : {
   "Type" : "AWS::Route53::RecordSet",
   "Properties" : {
       "HostedZoneId" : "Z3DG6IL3SJCGPX",
       "Name" : "mysite.example.com.",
       "Type" : "A",
       "TTL" : "900",
       "ResourceRecords" : [{
           "Fn::GetAtt" : [ "MyInstance", "PrivateIp" ]
       }]
   }
}

在單獨的 Cloudformation 腳本中創建私有託管區域並輸出 Route53 區域 ID。

使用該私有區域 ID 作為 EC2 創建 Cloudformation 腳本中的參數。創建資源記錄類型,以區域 ID 作為參數,並引用 EC2 實例的私有 IP 地址。

公眾也可以做同樣的事情,但如果你不打算使用 ELB,我會為此創建一個 ENI。

使用 CFN 創建資源記錄

引用自:https://serverfault.com/questions/893642