別の AWS アカウントの Route 53 ヘルスチェックを、自分のアカウントのレコードセットに関連付ける方法を教えてください。

最終更新日: 2020 年 6 月 11 日

別の AWS アカウントの Amazon Route 53 ヘルスチェックを、自分のアカウントのレコードセットに関連付けるにはどうすればよいですか?

解決方法

ヘルスチェックとレコードセットが同じ AWS アカウントにない場合でも、Route 53 ヘルスチェックをレコードセットに関連付けることができます。これを行うには、AWS コマンドラインインターフェイス (AWS CLI) を使用して、change-resource-record-sets コマンドを実行します。CREATE または UPSERT を使ってレコードセットを追加または更新し、他の AWS アカウントのヘルスチェック ID を指定します。

aws route53 change-resource-record-sets --hosted-zone-id Z1XYZ123XYZ --change-batch file://route53.json

注: 上記のコマンドのプレースホルダーを対応する値に置き換えてください。

アカウント間の AWS Identity and Access Management (IAM) 信頼関係は必要ありません。ただし、次のように IAM 信頼関係を作成する必要があります。

  • Route 53 コンソールの [ヘルスチェック] ドロップダウンリストから、他のアカウントのヘルスチェックを表示します。
  • get-health-check コマンドを使用します。

他のアカウントでヘルスチェックが使用可能であることを確認するには:

  • Route 53 コンソールで、[ヘルスチェック] を選択します。次に、[ヘルスチェック ID] 列を見て、route53.json ファイルで正しいヘルスチェックが使用されていることを確認します。
  • list-resource-record-sets コマンドを使用します。

route53.json ファイルには、次のデータが含まれています。

{
    "Comment": "This is route53.json file",
    "Changes": [{
            "Action": "CREATE",
            "ResourceRecordSet": {
                "Name": "abc.example.com",
                "Type": "A",
                "SetIdentifier": "primary-record",
                "Failover": "PRIMARY",
                "TTL": 60,
                "ResourceRecords": [{
                    "Value": "1.1.1.1"
                }],
                "HealthCheckId": "0385ed2d-d65c-4f63-a19b-2412a31ef431"
            }
        },
        {
            "Action": "CREATE",
            "ResourceRecordSet": {
                "Name": "abc.example.com",
                "Type": "A",
                "SetIdentifier": "secondary-record",
                "Failover": "SECONDARY",
                "TTL": 60,
                "ResourceRecords": [{
                    "Value": "2.2.2.2"
                }]
            }
        }
    ]

重要: ヘルスチェックは別のアカウントに属しているため、Route 53 コンソールは RRSet に関連するヘルスチェックを表示しません。ただし、AWS CLI を使用して、RRSet に関連するヘルスチェックは確認できます。

$ aws route53 list-resource-record-sets --hosted-zone-id Z1XYZ123XYZ --query "ResourceRecordSets[?Name == 'abc.example.com.']" --output json

[
    {
        "HealthCheckId": "0385ed2d-d65c-4f63-a19b-2412a31ef431",
        "Name": "abc.example.com.", 
        "Type": "A", 
        "Failover": "PRIMARY", 
    "ResourceRecords": [
            {
                "Value": "1.1.1.1"
    }
        ], 
        "TTL": 60, 
        "SetIdentifier": "primary-record"
    }, 
    {
    "Name": "abc.example.com.", 
        "Type": "A", 
        "Failover": "SECONDARY", 
        "ResourceRecords": [
    {
                "Value": "2.2.2.2"
            }
        ], 
    "TTL": 60, 
        "SetIdentifier": "secondary-record"
    }
]

注: このスクリプトのプレースホルダーを対応する値に置き換えてください。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合