

# AWS CLI を使用した Route 53 の例
<a name="cli_route-53_code_examples"></a>

次のコード例は、Route 53 で AWS Command Line Interface を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

*アクション*はより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。

**Topics**
+ [アクション](#actions)

## アクション
<a name="actions"></a>

### `change-resource-record-sets`
<a name="route-53_ChangeResourceRecordSets_cli_topic"></a>

次のコード例は、`change-resource-record-sets` を使用する方法を示しています。

**AWS CLI**  
**リソースレコードセットを作成、更新、または削除するには**  
次の `change-resource-record-sets` コマンドは、ファイル `C:\awscli\route53\change-resource-record-sets.json` の `hosted-zone-id` `Z1R8UBAEXAMPLE` と JSON 形式の設定を使用してリソースレコードセットを作成します。  

```
aws route53 change-resource-record-sets --hosted-zone-id Z1R8UBAEXAMPLE --change-batch file://C:\awscli\route53\change-resource-record-sets.json
```
詳細については、*Amazon Route 53 API リファレンス*の「POST ChangeResourceRecordSets」を参照してください。  
JSON ファイルの設定は、作成するリソースレコードセットの種類によって異なります。  
BasicWeightedAliasWeighted AliasLatencyLatency AliasFailoverFailover Alias  
**基本構文**:  

```
{
  "Comment": "optional comment about the changes in this change batch request",
  "Changes": [
    {
      "Action": "CREATE"|"DELETE"|"UPSERT",
      "ResourceRecordSet": {
        "Name": "DNS domain name",
        "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA",
        "TTL": time to live in seconds,
        "ResourceRecords": [
          {
            "Value": "applicable value for the record type"
          },
          {...}
        ]
      }
    },
    {...}
  ]
}
```
**加重構文**:  

```
{
  "Comment": "optional comment about the changes in this change batch request",
  "Changes": [
    {
      "Action": "CREATE"|"DELETE"|"UPSERT",
      "ResourceRecordSet": {
        "Name": "DNS domain name",
        "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA",
        "SetIdentifier": "unique description for this resource record set",
        "Weight": value between 0 and 255,
        "TTL": time to live in seconds,
        "ResourceRecords": [
          {
            "Value": "applicable value for the record type"
          },
          {...}
        ],
        "HealthCheckId": "optional ID of an Amazon Route 53 health check"
      }
    },
    {...}
  ]
}
```
**エイリアス構文**:  

```
{
  "Comment": "optional comment about the changes in this change batch request",
  "Changes": [
    {
      "Action": "CREATE"|"DELETE"|"UPSERT",
      "ResourceRecordSet": {
        "Name": "DNS domain name",
        "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA",
        "AliasTarget": {
          "HostedZoneId": "hosted zone ID for your CloudFront distribution, Amazon S3 bucket, Elastic Load Balancing load balancer, or Amazon Route 53 hosted zone",
          "DNSName": "DNS domain name for your CloudFront distribution, Amazon S3 bucket, Elastic Load Balancing load balancer, or another resource record set in this hosted zone",
          "EvaluateTargetHealth": true|false
        },
        "HealthCheckId": "optional ID of an Amazon Route 53 health check"
      }
    },
    {...}
  ]
}
```
**加重エイリアス構文**:  

```
{
  "Comment": "optional comment about the changes in this change batch request",
  "Changes": [
    {
      "Action": "CREATE"|"DELETE"|"UPSERT",
      "ResourceRecordSet": {
        "Name": "DNS domain name",
        "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA",
        "SetIdentifier": "unique description for this resource record set",
        "Weight": value between 0 and 255,
        "AliasTarget": {
          "HostedZoneId": "hosted zone ID for your CloudFront distribution, Amazon S3 bucket, Elastic Load Balancing load balancer, or Amazon Route 53 hosted zone",
          "DNSName": "DNS domain name for your CloudFront distribution, Amazon S3 bucket, Elastic Load Balancing load balancer, or another resource record set in this hosted zone",
          "EvaluateTargetHealth": true|false
        },
        "HealthCheckId": "optional ID of an Amazon Route 53 health check"
      }
    },
    {...}
  ]
}
```
**レイテンシー構文**:  

```
{
  "Comment": "optional comment about the changes in this change batch request",
  "Changes": [
    {
      "Action": "CREATE"|"DELETE"|"UPSERT",
      "ResourceRecordSet": {
        "Name": "DNS domain name",
        "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA",
        "SetIdentifier": "unique description for this resource record set",
        "Region": "Amazon EC2 region name",
        "TTL": time to live in seconds,
        "ResourceRecords": [
          {
            "Value": "applicable value for the record type"
          },
          {...}
        ],
        "HealthCheckId": "optional ID of an Amazon Route 53 health check"
      }
    },
    {...}
  ]
}
```
**レイテンシーエイリアス構文**:  

```
{
  "Comment": "optional comment about the changes in this change batch request",
  "Changes": [
    {
      "Action": "CREATE"|"DELETE"|"UPSERT",
      "ResourceRecordSet": {
        "Name": "DNS domain name",
        "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA",
        "SetIdentifier": "unique description for this resource record set",
        "Region": "Amazon EC2 region name",
        "AliasTarget": {
          "HostedZoneId": "hosted zone ID for your CloudFront distribution, Amazon S3 bucket, Elastic Load Balancing load balancer, or Amazon Route 53 hosted zone",
          "DNSName": "DNS domain name for your CloudFront distribution, Amazon S3 bucket, Elastic Load Balancing load balancer, or another resource record set in this hosted zone",
          "EvaluateTargetHealth": true|false
        },
        "HealthCheckId": "optional ID of an Amazon Route 53 health check"
      }
    },
    {...}
  ]
}
```
**フェイルオーバー構文**:  

```
{
  "Comment": "optional comment about the changes in this change batch request",
  "Changes": [
    {
      "Action": "CREATE"|"DELETE"|"UPSERT",
      "ResourceRecordSet": {
        "Name": "DNS domain name",
        "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA",
        "SetIdentifier": "unique description for this resource record set",
        "Failover": "PRIMARY" | "SECONDARY",
        "TTL": time to live in seconds,
        "ResourceRecords": [
          {
            "Value": "applicable value for the record type"
          },
          {...}
        ],
        "HealthCheckId": "ID of an Amazon Route 53 health check"
      }
    },
    {...}
  ]
}
```
**フェイルオーバーエイリアス構文**:  

```
{
  "Comment": "optional comment about the changes in this change batch request",
  "Changes": [
    {
      "Action": "CREATE"|"DELETE"|"UPSERT",
      "ResourceRecordSet": {
        "Name": "DNS domain name",
        "Type": "SOA"|"A"|"TXT"|"NS"|"CNAME"|"MX"|"PTR"|"SRV"|"SPF"|"AAAA",
        "SetIdentifier": "unique description for this resource record set",
        "Failover": "PRIMARY" | "SECONDARY",
        "AliasTarget": {
          "HostedZoneId": "hosted zone ID for your CloudFront distribution, Amazon S3 bucket, Elastic Load Balancing load balancer, or Amazon Route 53 hosted zone",
          "DNSName": "DNS domain name for your CloudFront distribution, Amazon S3 bucket, Elastic Load Balancing load balancer, or another resource record set in this hosted zone",
          "EvaluateTargetHealth": true|false
        },
        "HealthCheckId": "optional ID of an Amazon Route 53 health check"
      }
    },
    {...}
  ]
}
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ChangeResourceRecordSets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/change-resource-record-sets.html)」を参照してください。

### `change-tags-for-resource`
<a name="route-53_ChangeTagsForResource_cli_topic"></a>

次のコード例は、`change-tags-for-resource` を使用する方法を示しています。

**AWS CLI**  
次のコマンドは、ID で指定されたヘルスチェックリソースに `owner` というタグを追加します。  

```
aws route53 change-tags-for-resource --resource-type healthcheck --resource-id 6233434j-18c1-34433-ba8e-3443434 --add-tags Key=owner,Value=myboss
```
次のコマンドは、ID で指定されたホストゾーンリソースから `owner` というタグを削除します。  

```
aws route53 change-tags-for-resource --resource-type hostedzone --resource-id Z1523434445 --remove-tag-keys owner
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ChangeTagsForResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/change-tags-for-resource.html)」を参照してください。

### `create-health-check`
<a name="route-53_CreateHealthCheck_cli_topic"></a>

次のコード例は、`create-health-check` を使用する方法を示しています。

**AWS CLI**  
**ヘルスチェックを作成するには**  
次の `create-health-check` コマンドは、`C:\awscli\route53\create-health-check.json` ファイルで発信者リファレンス `2014-04-01-18:47` と JSON 形式の設定を使用してヘルスチェックを作成します。  

```
aws route53 create-health-check --caller-reference 2014-04-01-18:47 --health-check-config file://C:\awscli\route53\create-health-check.json
```
JSON 構文:  

```
{
  "IPAddress": "IP address of the endpoint to check",
  "Port": port on the endpoint to check--required when Type is "TCP",
  "Type": "HTTP"|"HTTPS"|"HTTP_STR_MATCH"|"HTTPS_STR_MATCH"|"TCP",
  "ResourcePath": "path of the file that you want Amazon Route 53 to request--all Types except TCP",
  "FullyQualifiedDomainName": "domain name of the endpoint to check--all Types except TCP",
  "SearchString": "if Type is HTTP_STR_MATCH or HTTPS_STR_MATCH, the string to search for in the response body from the specified resource",
  "RequestInterval": 10 | 30,
  "FailureThreshold": integer between 1 and 10
}
```
Route 53 リソースレコードセットにヘルスチェックを追加するには、`change-resource-record-sets` コマンドを使用します。  
詳細については、「*Amazon Route 53 デベロッパーガイド*」の「Amazon Route 53 ヘルスチェックと DNS フェイルオーバー」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[CreateHealthCheck](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/create-health-check.html)」を参照してください。

### `create-hosted-zone`
<a name="route-53_CreateHostedZone_cli_topic"></a>

次のコード例は、`create-hosted-zone` を使用する方法を示しています。

**AWS CLI**  
**ホストゾーンを作成するには**  
次の `create-hosted-zone` コマンドは、発信者リファレンス `2014-04-01-18:47` を使用して `example.com` という名前のホストゾーンを追加します。オプションのコメントは、スペースを含むため、引用符で囲む必要があります。  

```
aws route53 create-hosted-zone --name example.com --caller-reference 2014-04-01-18:47 --hosted-zone-config Comment="command-line version"
```
詳細については、「*Amazon Route 53 デベロッパーガイド*」の「ホストゾーンの使用」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドレットリファレンス*」の「[CreateHostedZone](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/create-hosted-zone.html)」を参照してください。

### `delete-health-check`
<a name="route-53_DeleteHealthCheck_cli_topic"></a>

次のコード例は、`delete-health-check` を使用する方法を示しています。

**AWS CLI**  
**ヘルスチェックを削除するには**  
次の `delete-health-check` コマンドは、`e75b48d9-547a-4c3d-88a5-ae4002397608` の `health-check-id` を使用してヘルスチェックを削除します。  

```
aws route53 delete-health-check --health-check-id e75b48d9-547a-4c3d-88a5-ae4002397608
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DeleteHealthCheck](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/delete-health-check.html)」を参照してください。

### `delete-hosted-zone`
<a name="route-53_DeleteHostedZone_cli_topic"></a>

次のコード例は、`delete-hosted-zone` を使用する方法を示しています。

**AWS CLI**  
**ホストゾーンを削除するには**  
次の `delete-hosted-zone` コマンドは、`Z36KTIQEXAMPLE` の `id` を使用してホストゾーンを削除します。  

```
aws route53 delete-hosted-zone --id Z36KTIQEXAMPLE
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DeleteHostedZone](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/delete-hosted-zone.html)」を参照してください。

### `get-change`
<a name="route-53_GetChange_cli_topic"></a>

次のコード例は、`get-change` を使用する方法を示しています。

**AWS CLI**  
**リソースレコードセットの変更のステータスを取得するには**  
次の `get-change` コマンドは、`/change/CWPIK4URU2I5S` の `Id` を持つ `change-resource-record-sets` リクエストのステータスとその他の情報を取得します。  

```
aws route53 get-change --id /change/CWPIK4URU2I5S
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetChange](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/get-change.html)」を参照してください。

### `get-health-check`
<a name="route-53_GetHealthCheck_cli_topic"></a>

次のコード例は、`get-health-check` を使用する方法を示しています。

**AWS CLI**  
**ヘルスチェックに関する情報を取得するには**  
次の `get-health-check` コマンドは、`02ec8401-9879-4259-91fa-04e66d094674` の `health-check-id` を持つヘルスチェックに関する情報を取得します。  

```
aws route53 get-health-check --health-check-id 02ec8401-9879-4259-91fa-04e66d094674
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetHealthCheck](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/get-health-check.html)」を参照してください。

### `get-hosted-zone`
<a name="route-53_GetHostedZone_cli_topic"></a>

次のコード例は、`get-hosted-zone` を使用する方法を示しています。

**AWS CLI**  
**ホストゾーンに関する情報を取得するには**  
次の `get-hosted-zone` コマンドは、`Z1R8UBAEXAMPLE` の `id` を使用してホストゾーンに関する情報を取得します。  

```
aws route53 get-hosted-zone --id Z1R8UBAEXAMPLE
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetHostedZone](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/get-hosted-zone.html)」を参照してください。

### `list-health-checks`
<a name="route-53_ListHealthChecks_cli_topic"></a>

次のコード例は、`list-health-checks` を使用する方法を示しています。

**AWS CLI**  
**現在の AWS アカウントに関連付けられたヘルスチェックを一覧表示するには**  
次の `list-health-checks` コマンドは、現在の AWS アカウントに関連付けられている最初の 100 個のヘルスチェックに関する詳細情報を一覧表示します。  

```
aws route53 list-health-checks
```
ヘルスチェックが 100 個を超える場合や、100 個未満のグループでヘルスチェックを一覧表示する場合は、`--maxitems` パラメータを含めます。例えば、ヘルスチェックを一度に一覧表示するには、次のコマンドを使用します。  

```
aws route53 list-health-checks --max-items 1
```
次のヘルスチェックに関する情報を表示するには、前のコマンドに対する応答から `NextToken` の値を取得し、その値を `--starting-token` パラメーターに含めます。次に例を示します。  

```
aws route53 list-health-checks --max-items 1 --starting-token Z3M3LMPEXAMPLE
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListHealthChecks](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/list-health-checks.html)」を参照してください。

### `list-hosted-zones-by-name`
<a name="route-53_ListHostedZonesByName_cli_topic"></a>

次のコード例は、`list-hosted-zones-by-name` を使用する方法を示しています。

**AWS CLI**  
次のコマンドは、最大 100 個のホストゾーンをドメイン名順に一覧表示します。  

```
aws route53 list-hosted-zones-by-name
```
出力:  

```
{
  "HostedZones": [
      {
          "ResourceRecordSetCount": 2,
          "CallerReference": "test20150527-2",
          "Config": {
              "Comment": "test2",
              "PrivateZone": false
          },
          "Id": "/hostedzone/Z119WBBTVP5WFX",
          "Name": "2.example.com."
      },
      {
          "ResourceRecordSetCount": 2,
          "CallerReference": "test20150527-1",
          "Config": {
              "Comment": "test",
              "PrivateZone": false
          },
          "Id": "/hostedzone/Z3P5QSUBK4POTI",
          "Name": "www.example.com."
      }
  ],
  "IsTruncated": false,
  "MaxItems": "100"
}
```
次のコマンドは、`www.example.com` で始まる名前順にホストゾーンを一覧表示します。  

```
aws route53 list-hosted-zones-by-name --dns-name www.example.com
```
出力:  

```
{
  "HostedZones": [
      {
          "ResourceRecordSetCount": 2,
          "CallerReference": "mwunderl20150527-1",
          "Config": {
              "Comment": "test",
              "PrivateZone": false
          },
          "Id": "/hostedzone/Z3P5QSUBK4POTI",
          "Name": "www.example.com."
      }
  ],
  "DNSName": "www.example.com",
  "IsTruncated": false,
  "MaxItems": "100"
}
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListHostedZonesByName](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/list-hosted-zones-by-name.html)」を参照してください。

### `list-hosted-zones`
<a name="route-53_ListHostedZones_cli_topic"></a>

次のコード例は、`list-hosted-zones` を使用する方法を示しています。

**AWS CLI**  
**現在の AWS アカウントに関連付けられたホストゾーンを一覧表示するには**  
次の `list-hosted-zones` コマンドを使用して、現在の AWS アカウントに関連付けられている最初の 100 個のホスト ゾーンに関する概要情報を一覧表示します。  

```
aws route53 list-hosted-zones
```
ホストゾーンが 100 個を超える場合や、100 個未満のグループにホストゾーンを一覧表示する場合は、`--max-items` パラメータを含めてください。例えば、ホストゾーンを一度に一覧表示するには、次のコマンドを使用します。  

```
aws route53 list-hosted-zones --max-items 1
```
次のホストゾーンに関する情報を表示するには、前のコマンドに対する応答から `NextToken` の値を取得し、その値を `--starting-token` パラメーターに含めます。次に例を示します。  

```
aws route53 list-hosted-zones --max-items 1 --starting-token Z3M3LMPEXAMPLE
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListHostedZones](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/list-hosted-zones.html)」を参照してください。

### `list-query-logging-configs`
<a name="route-53_ListQueryLoggingConfigs_cli_topic"></a>

次のコード例は、`list-query-logging-configs` を使用する方法を示しています。

**AWS CLI**  
**クエリログ記録の設定を一覧表示するには**  
次の `list-query-logging-configs` の例は、ホストゾーン `Z1OX3WQEXAMPLE` の AWS アカウント内の最初の 100 件のクエリログ記録の設定に関する情報を一覧表示しています。  

```
aws route53 list-query-logging-configs \
    --hosted-zone-id Z1OX3WQEXAMPLE
```
出力:  

```
{
    "QueryLoggingConfigs": [
        {
            "Id": "964ff34e-ae03-4f06-80a2-9683cexample",
            "HostedZoneId": "Z1OX3WQEXAMPLE",
            "CloudWatchLogsLogGroupArn": "arn:aws:logs:us-east-1:111122223333:log-group:/aws/route53/example.com:*"
        }
    ]
}
```
詳細については、「*Amazon Route 53 デベロッパーガイド*」の「[DNS クエリのログ](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListQueryLoggingConfigs](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/list-query-logging-configs.html)」を参照してください。

### `list-resource-record-sets`
<a name="route-53_ListResourceRecordSets_cli_topic"></a>

次のコード例は、`list-resource-record-sets` を使用する方法を示しています。

**AWS CLI**  
**ホストゾーンのリソースレコードセットを一覧表示するには**  
次の `list-resource-record-sets` コマンドは、指定されたホストゾーンの最初の 100 個のリソースレコードセットに関する概要情報を一覧表示します。  

```
aws route53 list-resource-record-sets --hosted-zone-id Z2LD58HEXAMPLE
```
ホストゾーンが 100 個を超えるリソースレコードセットを含む場合や、100 個未満のグループでリソースレコードセットを一覧表示する場合は、`--maxitems` パラメータを含めてください。例えば、リソースレコードセットを一度に一覧表示するには、次のコマンドを使用します。  

```
aws route53 list-resource-record-sets --hosted-zone-id Z2LD58HEXAMPLE --max-items 1
```
ホストゾーンの次のリソースレコードセットに関する情報を表示するには、前のコマンドに対する応答から `NextToken` の値を取得し、その値を `--starting-token` パラメーターに含めます。次に例を示します。  

```
aws route53 list-resource-record-sets --hosted-zone-id Z2LD58HEXAMPLE --max-items 1 --starting-token Z3M3LMPEXAMPLE
```
特定の名前のすべてのリソースレコードセットを表示するには、`--query` パラメータを使用してフィルタリングします。例えば、次のようになります。  

```
aws route53 list-resource-record-sets --hosted-zone-id Z2LD58HEXAMPLE --query "ResourceRecordSets[?Name == 'example.domain.']"
```
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListResourceRecordSets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/route53/list-resource-record-sets.html)」を参照してください。