

# EC2 インスタンスのホスト名とドメイン
<a name="ec2-instance-naming"></a>

EC2 インスタンスのホスト名とドメインを理解することは、Amazon EC2 インスタンスの効果的な管理とアクセスのために重要です。各 EC2 インスタンスは、プライベートとパブリックの異なる 2 タイプのホスト名を持つことができます。各ホスト名はそれぞれ異なる目的に対応しており、それぞれ固有の命名規則に従います。

このトピックでは、EC2 インスタンスホスト名の構造、構築方法、および使用可能なさまざまなホスト名タイプについて説明します。ホスト名の設定を表示および変更する方法、各タイプを使用するタイミング、および AWS 環境でのホスト名管理のベストプラクティスについて説明します。

**Topics**
+ [EC2 インスタンスのホスト名とドメインについて](understanding-ec2-instance-hostnames-domains.md)
+ [ホスト名タイプ](hostname-types.md)

# EC2 インスタンスのホスト名とドメインについて
<a name="understanding-ec2-instance-hostnames-domains"></a>

EC2 インスタンスアドレスは、複数のコンポーネントで構成されています。インスタンスのプライベート IPv4 アドレスを使用する EC2 インスタンスアドレスの例を次に示します。

```
   IP address         Domain name                   
   ↓--------↓ ↓------------------------↓
ip-10-24-34-0.us-west-2.compute.internal
↑-----------↑   
  Hostname      
↑--------------------------------------↑ 
    Fully qualified domain name (FQDN)
```

コードの説明は以下のとおりです。
+ **IP アドレス**: インスタンスに関連付けられたプライマリネットワークインターフェイスのプライマリ IPv4 アドレス。
+ **ホスト名**: 特定の EC2 インスタンスのローカル名 (オペレーティングシステムとローカルネットワークの特定に使用)
+ **ドメイン名**: FQDN のうち AWS が提供する部分
+ **完全修飾ドメイン名 (FQDN)**: ホスト名とドメイン名の両方を含む完全なアドレス。これは、ネットワーク間でインスタンスにアクセスするために使用する、グローバルに一意の完全な識別子となります。

ホスト名とドメイン名の形式は上記の例とは異なる場合があり、インスタンスまたはインスタンスにアタッチされるプライマリネットワークインターフェイス向けに選択したホスト名タイプに応じた形式となります。このセクションでは、ホスト名タイプのオプションについて説明します。

# ホスト名タイプ
<a name="hostname-types"></a>

AWS は、**プライベート**と**パブリック**の 2 種類のホスト名を提供します。次の表は、解決方法、設定方法、およびそれぞれのタイプを使用すべき状況など、プライベートホスト名とパブリックホスト名の主な違いを比較したものです。


| ​ | プライベートホスト名 | パブリックホスト名 | 
| --- | --- | --- | 
| DNS 解決 | プライベートホスト名は、パブリックインターネットからアクセスできないプライベート FQDN を有効にします。プライベートホスト名では、VPC 内のプライベート IPv4 および IPv6 GUA アドレスに解決するリクエストのみが許可されます。 | パブリックホスト名は、パブリックインターネットからアクセスできるパブリック FQDN を有効にします。パブリックホスト名を設定すると、VPC 内のプライベート IPv4 と IPv6 GUA、およびインターネット上のパブリック IP (スプリットホライズン DNS) へのリクエストを解決できます。 | 
| 設定 | プライベートホスト名はインスタンスレベルで設定されます。 | パブリックホスト名は、ネットワークインターフェイスレベルで設定されます。 | 
| どのようなときに使うか |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/hostname-types.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/hostname-types.html)  | 

**Topics**
+ [パブリックホスト名](#public-hostnames)
+ [プライベートホスト名](#ec2-instance-private-hostnames)

## パブリックホスト名
<a name="public-hostnames"></a>

*パブリックホスト名*を使用すると、インスタンスのパブリック IPv4 アドレスまたは IPv6 アドレスに解決されるホスト名を使用して EC2 インスタンスにアクセスでき、IPv6 への移行がスムーズになります。

パブリックホスト名を使用すると、以下のメリットがあります。
+ IPv4 と IPv6 の両方を介して EC2 インスタンスにアクセスでき、リソースへの接続方法の柔軟性が高まる。
+ 自分の好きなタイミングで IPv4 環境から IPv6 環境に移行できる。たとえば、データベースの移行とアプリケーションの移行を切り離して処理することで、複雑さとリスクを軽減できます。
+ 複数のホスト名オプション (IPv4 のみ、IPv6 のみ、デュアルスタック) を使用することで、自動で適切な IP アドレスに解決できる。
+ VPC 内からクエリを実行するとホスト名がプライベート IP アドレスに解決される、つまり[スプリットホライズン DNS](https://en.wikipedia.org/wiki/Split-horizon_DNS) によるセキュリティ向上のメリットもあります。

**Topics**
+ [パブリックホスト名のタイプと、それぞれのタイプを使用すべき状況](#public-hostname-types)
+ [パブリックホスト名を表示する](#view-public-hostnames)
+ [パブリックホスト名タイプを変更する](#modify-public-hostnames)

### パブリックホスト名のタイプと、それぞれのタイプを使用すべき状況
<a name="public-hostname-types"></a>

パブリックホスト名を使用するには、既存のネットワークインターフェイスを変更する必要があります。このセクションでは、3 つのパブリックホスト名タイプのオプションと、それぞれのタイプを使用すべき状況について説明します。
+ **デュアルスタック – IP ベース名**
  + これは、IPv4 から IPv6 に移行する場合、あるいは移行を計画している場合に最適なオプションです。このオプションを使用すると、IPv4 と IPv6 の両方を介した接続が可能になり、どちらか一つのプロトコルのみを使用しているクライアントも柔軟に接続できます。このオプションの場合、クライアントは IPv6 への移行中も同じホスト名を維持できます。
  + VPC 内からのリクエストは、ネットワークインターフェイスのプライベート IPv4 アドレスと IPv6 グローバルユニキャストアドレス (GUA) の両方に解決されます。インターネットからのリクエストは、ネットワークインターフェイスのパブリック IPv4 と IPv6 GUA アドレスの両方に解決されます。
  + **例**
    + このオプションを選択すると、このネットワークインターフェイス用にデュアルスタック FQDN が生成されます。こちらが、生成される FQDN の例です。
      + f5lnz-0khrm-nt2u3-gyqqt-nbdl5-q3cdpO.ap-southeast-2.ip.aws
    + コードの説明は以下のとおりです。
      + f5lnz-0khrm-nt2u3-gyqqt-nbdl5-q3cdpO は、ネットワークインターフェイス上のプライマリパブリック IPv6 アドレス (f5lnz-0khrm-nt2u3-gyqt-nbdl5) の [base36](https://en.wikipedia.org/wiki/Base36) 表現と、ネットワークインターフェイス上のプライマリパブリック IPv4 アドレス (q3cdpO) の base36 表現を組み合わせたホスト名です。
      + f5lnz-0khrm-nt2u3-gyqqt-nbdl5 は、Amazon DNS リゾルバーによって IPv6 GUA アドレス FFFF:1407:4:f000:81d:2689:1066:4489 に解決されます。これは、ネットワークインターフェイスに割り当てられた最初の IPv6 GUA です。
      + q3cdpO は IPv4 アドレス 52.54.55.56 に解決されます。これは、プライマリネットワークインターフェイスにアタッチされたパブリック IPv4 アドレスです。
      + ap-southeast-2 は、ネットワークインターフェイスが存在するサブネットのリージョンです。
      + ip.aws は、AWS が提供するドメインです。
+ **IPv6 – IP ベースの名前**
  + これは、すでに IPv6 に移行していて、IPv6 経由の接続のみを必要とする場合に適しています。
  + VPC 内またはインターネットからのリクエストは、ネットワークインターフェイスの IPv6 GUA に解決されます。
  + **例**
    + このオプションを選択すると、このネットワークインターフェイス用に FQDN が生成されます。こちらが、生成される FQDN の例です。
      + f5lnz-0khrm-nt2u3-gyqqt-nbdl5.ap-southeast-2.ip.aws
    + コードの説明は以下のとおりです。
      + f5lnz-0khrm-nt2u3-gyqqt-nbdl5 は、ネットワークインターフェイス上のプライマリパブリック IPv6 アドレスの base36 表現であるホスト名です。
      + f5lnz-0khrm-nt2u3-gyqqt-nbdl5 は、Amazon DNS リゾルバーによって IPv6 GUA アドレス FFFF:1407:4:f000:81d:2689:1066:4489 に解決されます。これは、ネットワークインターフェイスに割り当てられた最初の IPv6 GUA です。
      + ap-southeast-2 は、ネットワークインターフェイスが存在するサブネットのリージョンです。
      + ip.aws は、AWS が提供するドメインです。
+ **IPv4 – IP ベースの名前**
  + これは、このネットワークインターフェイスを使用するインスタンスが IPv6 への移行中に IPv4 アクセスを維持する必要がある場合、またはインスタンスで実行されているアプリケーションまたはシステムが IPv4 のみをサポートしている場合に適しています。これは、IPv4 接続のみの維持を必要としており、ワークロードには IPv6 サポートが必要ない場合に最適なオプションです。例えば、IPv6 への移行に際して、一部のアプリケーションを IPv4 に残してその他のアプリケーションを IPv6 に移行させたい場合があります。
  + VPC 内からのリクエストは、ネットワークインターフェイスのプライベートプライマリ IPv4 アドレスに解決されます。インターネットからのリクエストは、ネットワークインターフェイスのパブリック IPv4 アドレスに解決されます。
  + **例**
    + このオプションを選択すると、このネットワークインターフェイスに IPv4 対応のパブリックホスト名が生成されます。こちらは、生成される DNS 名の例です。
      + ec2-52-54-55-66.ap-southeast-2.compute.amazonaws.com
    + コードの説明は以下のとおりです。
      + ec2-52-54-55-66 は、ネットワークインターフェイスのプライマリパブリック IPv4 アドレスの base36 表現であるホスト名です。
      + ec2-52-54-55-66 は IPv4 アドレス 52.54.55.56 に解決されます。これは、プライマリネットワークインターフェイスにアタッチされたパブリック IPv4 アドレスです。
      + ap-southeast-2 は、ネットワークインターフェイスが存在するサブネットのリージョンです。
      + ip.aws は、AWS が提供するドメインです。

**重要**  
上記の例では、ホスト名の生成に IP アドレスが使用されていることがわかります。プライマリプライベート IPv4 アドレスまたはネットワークインターフェイスに割り当てられた最初の IPv6 GUA を変更すると、ホスト名のうち IP アドレスに反映される部分が変更され、**以前に生成されたパブリックホスト名は無効になります**。さらに、プライマリ IPv4 パブリックアドレスを変更すると、「*Amazon EC2 ユーザーガイド*」で説明している[インスタンスメタデータサービス (IMDS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) のダウンストリーム更新が強制されるため、EC2 インスタンス IMDS メタデータは自動的に更新されます。

### パブリックホスト名を表示する
<a name="view-public-hostnames"></a>

ネットワークインターフェイスがある VPC に EnableDnsHostnames および EnableDnsSupport の両方が有効になっていない場合、ホスト名タイプは定義または生成されません。

------
#### [ Console ]

インスタンスまたはプライマリネットワークインターフェイスのパブリックホスト名を表示できます。

**インスタンスのホスト名タイプと DNS 名を表示する方法**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、[**インスタンス**] を選択してください。

1. インスタンスのチェックボックスをオンにします。

1. **[ネットワーク]** タブの **[ホスト名と DNS]** で、次のものを探します。
   + **[パブリックホスト名タイプ]**
   + **[パブリック DNS]**
   + **[IPv4 のみの IP ベースの名前]**
   + **[IPv6 のみ – IP ベースの名前]**
   + **[デュアルスタック – IP ベースの名前]**

**ネットワークインターフェイスのホスト名タイプと DNS 名を表示する方法**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、[**Network Interfaces**] を選択してください。

1. 検索フィールドに、インスタンスの ID を入力します。ネットワークインターフェイスの ID を選択して、その詳細ページを開きます。

1. **[ホスト名と DNS]** で次のものを探します。
   + **[パブリックホスト名タイプ]**
   + **Public DNS name**
   + **[パブリック IPv4 DNS 名]**
   + **[パブリック IPv6 DNS 名]**
   + **[パブリックデュアルスタック DNS 名]**

------
#### [ AWS CLI ]

**ネットワークインターフェイスのホスト名タイプと DNS 名を表示する方法**  
[describe-network-interfaces](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-network-interfaces.html) コマンドを使用します。

```
aws ec2 describe-network-interfaces \
    --network-interface-id eni-1234567890abcdef0 \
    --query NetworkInterfaces[].PublicIpDnsNameOptions
```

以下は出力の例です。ホスト名タイプが `public-dual-stack-dns-name` であるため、DNS ホスト名は `PublicDualStackDnsName` と同じです。

```
[
     {
          "DnsHostnameType": "public-dual-stack-dns-name",
          "PublicIpv4DnsName": "ec2-52-54-55-66.ap-southeast-2.compute.amazonaws.com",
          "PublicIpv6DnsName": "f5lnz-0khrm-nt2u3-gyqqt-nbdl5.ap-southeast-2.ip.aws",
          "PublicDualStackDnsName": "f5lnz-0khrm-nt2u3-gyqqt-nbdl5-q3cdpO.ap-southeast-2.ip.aws"
     }
]
```

------
#### [ PowerShell ]

**ネットワークインターフェイスのホスト名タイプと DNS 名を表示する方法**  
[Get-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2NetworkInterface.html) コマンドレットを使用します。

```
(Get-EC2NetworkInterface `
    -NetworkInterfaceId eni-1234567890abcdef0).PublicIpDnsNameOptions
```

以下は出力の例です。ホスト名タイプが `public-dual-stack-dns-name` であるため、DNS ホスト名は `PublicDualStackDnsName` と同じです。

```
DnsHostnameType        : public-dual-stack-dns-name
PublicDualStackDnsName : f5lnz-0khrm-nt2u3-gyqqt-nbdl5-q3cdpO.ap-southeast-2.ip.aws
PublicIpv4DnsName      : ec2-52-54-55-66.ap-southeast-2.compute.amazonaws.com
PublicIpv6DnsName      : f5lnz-0khrm-nt2u3-gyqqt-nbdl5.ap-southeast-2.ip.aws
```

------

### パブリックホスト名タイプを変更する
<a name="modify-public-hostnames"></a>

パブリックホスト名タイプのオプションは、ネットワークインターフェイスに関連付けられた IP アドレスによって異なります。
+ ネットワークインターフェイスにパブリック IPv4 アドレスのみがある場合、ホスト名タイプは **IPv4 – IP ベースの名前**である必要があります。
+ ネットワークインターフェイスに IPv6 アドレスのみがある場合、ホスト名タイプは **IPv6 – IP ベースの名前**である必要があります。
+ ネットワークインターフェイスにパブリック IPv4 アドレスおよび IPv6 アドレスの両方がある場合、ホスト名タイプは**デュアルスタック – IP ベースの名前**である必要があります。

**前提条件**
+ ネットワークインターフェイスは、関連付けられたパブリック IPv4 アドレスまたは IPv6 アドレスが必要です。
+ ネットワークインターフェイスが存在する VPC には、EnableDnsHostnames および EnableDnsSupport が有効になっている必要があります。「*Amazon VPC ユーザーガイド*」の「[VPC の DNS 属性の表示と更新](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns-updating.html)」を参照してください。

------
#### [ Console ]

**パブリックホスト名タイプを変更する方法**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、[**Network Interfaces**] を選択してください。

1. 検索フィールドに、インスタンスの ID を入力します。ネットワークインターフェイスのチェックボックスをオンにします。

   または、インスタンスの詳細ページで **[ネットワーク]** タブを選択し、デバイスインデックス 0 のネットワークインターフェイスの ID を選択します。

1. **[アクション]** および **[パブリックホスト名タイプの変更]** を選択します。

1. 次のいずれかのオプションを選択します。
   + **デュアルスタック – IP ベースの名前**: ネットワークインターフェイスのデュアルスタックパブリックホスト名。VPC 内からのリクエストは、ネットワークインターフェイスのプライベート IPv4 アドレスと IPv6 グローバルユニキャストアドレスの両方に解決されます。インターネットからのリクエストは、ネットワークインターフェイスのパブリック IPv4 と IPv6 GUA アドレスの両方に解決されます。
   + **IPv4 – IP ベース名**: ネットワークインターフェイスの IPv4 対応パブリックホスト名。VPC 内からのリクエストは、ネットワークインターフェイスのプライベートプライマリ IPv4 アドレスに解決されます。インターネットからのリクエストは、ネットワークインターフェイスのパブリック IPv4 アドレスに解決されます。
   + **IPv6 – IP ベース名**: ネットワークインターフェイスの IPv6 対応パブリックホスト名。VPC 内またはインターネットからのリクエストは、ネットワークインターフェイスの IPv6 GUA に解決されます。

1. **[Modify]** (変更) を選択します。

------
#### [ AWS CLI ]

**パブリックホスト名タイプを変更する方法**  
[modify-public-ip-dns-name-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-public-ip-dns-name-options.html) コマンドを使用します。

```
aws ec2 modify-public-ip-dns-name-options \
    --network-interface-id eni-1234567890abcdef0 \
    --hostname-type public-dual-stack-dns-name
```

以下は出力の例です。

```
{
    "Successful": true
}
```

------
#### [ PowerShell ]

**パブリックホスト名タイプを変更する方法**  
[Edit-EC2PublicIpDnsNameOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2PublicIpDnsNameOption.html) コマンドレットを使用します。

```
Edit-EC2PublicIpDnsNameOption `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -HostNameType public-dual-stack-dns-name
```

------

## プライベートホスト名
<a name="ec2-instance-private-hostnames"></a>

このセクションでは、VPC サブネットでインスタンスを起動する際に使用できる Amazon EC2 インスタンスのプライベートホスト名について説明します。

ネットワーク上の EC2 インスタンスはプライベートホスト名によって区別されます。例えば、ネットワーク上の一部またはすべてのインスタンスと通信するスクリプトを実行する場合、インスタンスのプライベートホスト名を使用できます。

**Topics**
+ [プライベートホスト名タイプ](#instance-naming-types)
+ [リソース名と IP 名を検索する場所](#instance-naming-presence)
+ [リソース名と IP 名の選択](#instance-naming-choose)
+ [Amazon EC2 のリソースベースの命名オプションを変更する](#instance-naming-modify)

### プライベートホスト名タイプ
<a name="instance-naming-types"></a>

EC2 インスタンスが VPC で起動されるときのゲスト OS ホスト名には、次の 2 つのプライベートホスト名タイプがあります。
+ **[IP 名]**: 従来の命名スキームでは、インスタンスの起動時に、インスタンスの*プライベート IPv4 アドレス*がインスタンスのホスト名に含まれます。IP 名は EC2 インスタンスの存続中に存在します。プライベート DNS ホスト名として使用すると、プライベート IPv4 アドレス (A レコード) のみが返されます。
+ **[リソース名]**: インスタンスを起動すると、*EC2 インスタンス ID* がインスタンスのホスト名に含まれます。リソース名はEC2 インスタンスの存続中に存在します。プライベート DNS ホスト名として使用すると、プライベート IPv4 アドレス (A レコード) と IPv6 グローバルユニキャストアドレス (AAAA レコード) の両方を返すことができます。

EC2 インスタンスのゲスト OS ホスト名 のタイプはサブネット設定によって異なります。
+ インスタンスが IPv4 専用サブネットで起動された場合、IP 名またはリソース名を選択できます。
+ インスタンスがデュアルスタック (IPv4\$1IPv6) サブネットで起動されている場合、IP 名またはリソース名を選択できます。
+ インスタンスが IPv6 専用サブネットで起動された場合、リソース名が自動的に使用されます。

**Topics**
+ [IP 名](#instance-naming-ipbn)
+ [リソース名](#instance-naming-rbn)
+ [IP 名とリソース名の違い](#instance-naming-diff)

#### IP 名
<a name="instance-naming-ipbn"></a>

**[IP name]** (IP 名) の **[Hostname type]** (ホスト名タイプ) を使用して EC2 インスタンスを起動すると、ゲスト OS ホスト名がプライベート IPv4 アドレスを使用するように設定されます。
+ us-east-1 でのインスタンスのフォーマット: `private-ipv4-address.ec2.internal`
+ 例:`ip-10-24-34-0.ec2.internal`
+ その他の AWS リージョンのインスタンスのフォーマット: `private-ipv4-address.region.compute.internal`
+ 例:`ip-10-24-34-0.us-west-2.compute.internal`

#### リソース名
<a name="instance-naming-rbn"></a>

EC2 インスタンスを IPv6 専用サブネットで起動すると、**[Resource name]** (リソース名) の**[Hostname type]** (ホスト名タイプ) がデフォルトで選択されます。IPv4 専用またはデュアルスタック (IPv4\$1IPv6) サブネットでインスタンスを起動すると、**[Resource name]** (リソース名) は選択できるオプションです。インスタンスを起動してから、ホスト名設定を管理できます。詳細については、[Amazon EC2 のリソースベースの命名オプションを変更する](#instance-naming-modify)を参照してください。

**[Resource name]** (リソース名) の **[Hostname type]** (ホスト名タイプ) を使用して EC2 インスタンスを起動すると、ゲスト OS ホスト名が EC2 インスタンス ID を使用するように設定されます。
+ us-east-1 でのインスタンスのフォーマット: `ec2-instance-id.ec2.internal`
+ 例:`i-0123456789abcdef.ec2.internal`
+ その他の AWS リージョンのインスタンスのフォーマット: `ec2-instance-id.region.compute.internal`
+ 例:`i-0123456789abcdef.us-west-2.compute.internal`

#### IP 名とリソース名の違い
<a name="instance-naming-diff"></a>

IP 名とリソース名の両方の DNS クエリが共存して、下位互換性を確保し、ホスト名に対する IP ベースの命名 からリソースベースの命名に移行できます。IP 名に基づくプライベート DNS ホスト名の場合、インスタンスの DNS A レコードクエリに応答するかどうかを設定することはできません。DNS A レコードクエリは、ゲスト OS ホスト名の設定に関係なく、常に応答されます。対照的に、リソース名に基づくプライベート DNS ホスト名の場合、インスタンスの DNS A または DNS AAAA クエリに応答するかどうかを設定できます。インスタンスの起動時またはサブネットの変更時に、レスポンスの動作を設定します。詳細については、「[Amazon EC2 のリソースベースの命名オプションを変更する](#instance-naming-modify)」を参照してください。

### リソース名と IP 名を検索する場所
<a name="instance-naming-presence"></a>

Amazon EC2 コンソールでホスト名のタイプ、リソース名、および IP 名を確認できます。

**Topics**
+ [EC2 インスタンスを作成する場合](#instance-naming-presence-create)
+ [既存の EC2 インスタンスの詳細を表示する場合](#instance-naming-presence-view)

#### EC2 インスタンスを作成する場合
<a name="instance-naming-presence-create"></a>

EC2 インスタンスを作成する際、選択したサブネットのタイプに応じて、**[Resource name]** (リソース名) の **[Hostname type]** (ホスト名タイプ) が使用可能になるか、または選択されて変更できない場合があります。このセクションでは、ホスト名タイプのリソース名と IP 名が表示されるシナリオについて説明します。

##### シナリオ 1
<a name="instance-naming-presence-create-1"></a>

ウィザード ([コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する](ec2-launch-instance-wizard.md)を参照) で EC2 インスタンスを作成し、詳細を設定するときに IPv6 専用に設定したサブネットを選択します。

この場合、**[Resource name]** (リソース名) の **[Hostname type]** (ホスト名タイプ) は自動的に選択され、変更できません。**[Enable IP name IPv4 (A record) DNS requests]** (IP 名 IPv4 (A レコード) DNS リクエストを有効にする) の **[DNS Hostname]** (DNS ホスト名) オプションと **[Enable resource-based IPv4 (A record) DNS requests]** (リソースベースの IPv4 (A レコード) DNS リクエストを有効にする) は自動的に選択解除され、変更できません。**[Enable resource-based IPv6 (AAAA record) DNS requests]** (リソースベースの IPv6 (AAAA レコード) DNS リクエストを有効にする) がデフォルトで選択されていますが、変更可能です。選択した場合、リソース名への DNS リクエストはこの EC2 インスタンスの IPv6 アドレス (AAAA レコード) に解決されます。

##### シナリオ 2
<a name="instance-naming-presence-create-2"></a>

ウィザード ([コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する](ec2-launch-instance-wizard.md)を参照) で EC2 インスタンスを作成し、詳細を設定するときに、IPv4 CIDR ブロックまたは IPv4 と IPv6 の両方の CIDR ブロック (「デュアルスタック」) で構成されたサブネットを選択します。

この場合、**[Enable IP name IPV4 (A record) DNS requests]** (IP 名 IPV4 (A レコード) DNS リクエストを有効にする) は自動的に選択され、変更できません。つまり、IP 名へのリクエストは、この EC2 インスタンスの IPv4 アドレス (A レコード) に解決されます。

オプションはサブネットの設定にデフォルト設定されますが、サブネットの設定に応じてこのインスタンスのオプションを変更できます。
+ **[Hostname type]** (ホスト名タイプ): EC2 インスタンスのゲスト OS ホスト名をリソース名 をリソース名または IP 名にするかを決定します。デフォルト値は **[IP name]** (IP 名) です。
+ **[Enable resource-based IPv4 (A record) DNS requests]** (リソースベースの IPv4 (A レコード) DNS リクエストを有効にする): リソース名へのリクエストが、この EC2 インスタンスのプライベート IPv4 アドレス (A レコード) に解決されるかどうかを決定します。このオプションはデフォルトで選択されていません。
+ **[Enable resource-based IPv6 (AAAA record) DNS requests]** (リソースベースの IPv6 (AAAA レコード) DNS リクエストを有効にする): リソース名へのリクエストが、この EC2 インスタンスの IPv6 GUA アドレス (AAAA レコード) に解決するかどうかを決定します。このオプションはデフォルトで選択されていません。

#### 既存の EC2 インスタンスの詳細を表示する場合
<a name="instance-naming-presence-view"></a>

既存の EC2 インスタンスのホスト名の値は、EC2 インスタンスの **[Details]** (詳細) タブで確認できます。
+ **[Hostname type]** (ホスト名タイプ): IP 名またはリソース名形式のホスト名
+ **[Private IP DNS name (IPv4 only) ]** (プライベート IP DNS 名 (IPv4 専用) ): インスタンスのプライベート IPv4 アドレスに常に解決される IP 名
+ **[Private resource DNS name]** (プライベートリソース DNS 名): このインスタンス用に選択された DNS レコードに解決されるリソース名
+ **[Answer private resource DNS name]** (プライベートリソース DNS 名に応答する): リソース名は IPv4 (A)、IPv6 (AAAA)、または IPv4 と IPv6 (A と AAAA) の DNS レコードに解決されます。

さらに、SSH 経由で直接 EC2 インスタンスに接続して、`hostname`コマンドを入力すると、ホスト名が IP 名またはリソース名形式で表示されます。

### リソース名と IP 名の選択
<a name="instance-naming-choose"></a>

EC2 インスタンス ([コンソールのインスタンス起動ウィザードを使用して EC2 インスタンスを起動する](ec2-launch-instance-wizard.md)を参照) を起動する際に **[Resource name]** (リソース名) の **[Hostname type]** (ホスト名) を選んだ場合、EC2 インスタンスはリソース名形式のホスト名を使用して起動します。このような場合、この EC2 インスタンスの DNS レコードはリソース名を指すこともあります。これにより、そのホスト名はインスタンスの IPv4 アドレス、IPv6 アドレス、または IPv4 アドレスと IPv6 アドレスの両方に解決されるように選択する柔軟さを実現します。今後 IPv6 を使用する予定がある場合、あるいは現在デュアルスタックのサブネットを使用している場合、**[Resource name]** (リソース名) の **[Hostname type]** (ホスト名タイプ) の使用により、DNS レコード自体に変更を加えることなく、インスタンスのホスト名の DNS 解決を変更できます。リソース名を使用すると、EC2 インスタンスで IPv4 および IPv6 DNS リゾリューションを追加して削除できます。

代わりに **[IP name]** (IP 名) の **[Hostname type]** (ホスト名タイプ) を選択し、DNS ホスト名として使用する場合、インスタンスの IPv4 アドレスにのみ解決されます。インスタンスに IPv4 アドレスと IPv6 アドレスの両方が関連付けられている場合でも、インスタンスの IPv6 アドレスには解決されません。

### Amazon EC2 のリソースベースの命名オプションを変更する
<a name="instance-naming-modify"></a>

サブネットのホスト名タイプと DNS ホスト名の設定を変更する (そのサブジェクトの後続のすべてのインスタンス起動に影響を与えます) か、EC2 インスタンスの起動後にそのインスタンスの設定を変更することができます。

**リソースベースの命名オプション**
+ **[ホスト名のタイプ]**: サブネットで起動される EC2 インスタンスのゲスト OS ホスト名のデフォルト設定を決定します。これは、リソース名または IP 名です。
+ **[DNS ホスト名 IPv4 (A レコード) リクエストを有効にする]**: リソース名への DNS リクエスト/クエリがこの EC2 インスタンスのプライベート IPv4 アドレス (A レコード) に解決されるかどうかを決定します。
+ **[DNS ホスト名 IPv6 (AAAA レコード) リクエストを有効にする]**: リソース名への DNS リクエスト/クエリがこの EC2 インスタンスの IPv6 アドレス (AAAA レコード) に解決されるかどうかを決定します。

#### サブネット
<a name="instance-naming-modify-subnets"></a>

サブネット設定を変更しても、サブネットですでに起動されている EC2 インスタンスの設定は変更されません。

------
#### [ Console ]

**サブネットのオプションを変更するには**  
Amazon VPC コンソールを開き、サブネットを選択します。**[アクション]**、**[サブネットの設定を編集]** の順に選択します。必要に応じて設定を変更し、変更を保存します。

------
#### [ AWS CLI ]

**サブネットのオプションを変更するには**  
[modify-subnet-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-subnet-attribute.html) コマンドを使用します。

```
aws ec2 modify-subnet-attribute \
    --subnet-id subnet-0abcdef1234567890 \
    --private-dns-hostname-type-on-launch resource-name \
    --enable-resource-name-dns-a-record-on-launch \
    --enable-resource-name-dns-aaaa-record-on-launch
```

------
#### [ PowerShell ]

**サブネットのオプションを変更するには**  
[Edit-EC2SubnetAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2SubnetAttribute.html) コマンドレットを使用します。

```
Edit-EC2SubnetAttribute `
    -SubnetId subnet-0abcdef1234567890 `
    -PrivateDnsHostnameTypeOnLaunch ResourceName `
    -EnableResourceNameDnsAAAARecordOnLaunch $true `
    -EnableResourceNameDnsARecordOnLaunch $true
```

------

#### EC2 インスタンス
<a name="instance-naming-modify-instances"></a>

**考慮事項**
+ ホスト名タイプを変更するには、まずインスタンスを停止する必要があります。他の 2 つのオプションを変更するためにインスタンスを停止する必要はありません。
+ インスタンスストアのルートボリュームを持つインスタンスを停止することはできないため、インスタンスの起動時にのみホスト名タイプと DNS ホスト名のオプションを設定できます。インスタンスストアのルートボリュームをサポートするインスタンスタイプは、C1、C3、D2、I2、M1、M2、M3、R3、X1 のみです。

------
#### [ Console ]

**インスタンスのホスト名タイプと DNS ホスト名のオプションを変更するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. **[Use resource based naming as guest OS hostname]** (リソースベース命名をゲスト OS ホスト名として使用) の設定を変更する場合、まず EC2 インスタンスを停止してください。それ以外の場合は、この手順をスキップしてください。

   インスタンスを停止し、インスタンスを選択後、**[Instance state]** (インスタンスの状態)、**[Stop instance]** (インスタンスの停止) の順にクリックします。

1. インスタンスを選択し、そして **[Actions]** (アクション)、**[Instance settings]** (インスタンス設定)、**[Change resource based naming options]** (リソースベースの命名オプションの変更) を選択します。
   + **[Use resource based naming as guest OS hostname]** (リソースベース命名をゲスト OS ホスト名として使用)：EC2 インスタンスのゲスト OS ホスト名をリソース名または IP 名にするかを決定します。
   + **[Answer DNS hostname IPv4 (A record) requests]** (DNS ホスト名 IPv4 (A レコード) リクエストに応答する): リソース名への DNS リクエスト/クエリがこの EC2 インスタンスのプライベート IPv4 アドレスに解決されるかどうかを決定します。
   + **[Answer DNS hostname IPv6 (AAAA record) requests]** (DNS ホスト名 IPv6 (AAAA レコード) 要求に応答する): リソース名への DNS リクエスト/クエリがこの EC2 インスタンスの IPv6 アドレス (AAAA レコード) に解決されるかどうかを決定します。

1. **[保存]** を選択します。

1. インスタンスを停止した後は、インスタンスを再起動します。

------
#### [ AWS CLI ]

**インスタンスのホスト名タイプと DNS ホスト名のオプションを変更するには**  
[modify-private-dns-name-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-private-dns-name-options.html) コマンドを使用します。

```
aws ec2 modify-private-dns-name-options \
    --instance-id i-1234567890abcdef0 \
    --private-dns-hostname-type resource-name \
    --enable-resource-name-dns-a-record \
    --enable-resource-name-dns-aaaa-record
```

------
#### [ PowerShell ]

**インスタンスのホスト名タイプと DNS ホスト名のオプションを変更するには**  
[Edit-EC2PrivateDnsNameOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2PrivateDnsNameOption.html) コマンドレットを使用します。

```
Edit-EC2PrivateDnsNameOption `
    -InstanceId i-1234567890abcdef0 `
    -PrivateDnsHostnameType ResourceName `
    -EnableResourceNameDnsAAAARecord $true`
    -EnableResourceNameDnsARecord $true
```

------