インスタンス間通信で固定 IP アドレスへの依存を減らすには、DHCP オプションセットを使用して、VPC 内のすべての ECS インスタンスに DNS サーバーの IP アドレスと検索ドメインを設定できます。インスタンスがホスト名で通信すると、システムは検索ドメインを付加し、指定された DNS サーバーに完全なドメイン名と IP アドレスのマッピングを問い合わせます。
仕組み
DHCP オプションセットは VPC に関連付けられ、VPC 内のすべての ECS インスタンスに対して [DNS サーバーの IP アドレス]や [域名]などのパラメータを統一的に設定します。設定後、インスタンスは固定 IP に依存することなく、ホスト名または FQDN で相互に通信できるようになります。
ステップ | 説明 |
① | DHCP オプションセットが VPC に関連付けられます。VPC 内の ECS インスタンスは DHCP サーバーと通信し、DHCP オプションセットからネットワーク設定 (ドメイン名、DNS サーバーの IP アドレス、その他のネットワークパラメータを含む) を取得し、それが各インスタンスのシステム設定に書き込まれます。 |
② | ECS インスタンスが DNS サーバーにクエリを送信して、DNS ホスト名の解決を要求します。DNS サーバーは対応する IP アドレスを返します。 |
③ | インスタンスは解決された IP アドレスを使用して、ターゲットの ECS インスタンスに接続します。 |
ドメイン名の設定:ホスト名による通信
完全なプライベートドメイン名は、ホスト名とドメイン名で構成されます。例えば、host01.host.prvz では、ホスト名が host01、ドメイン名が host.prvz です。
DNS サーバーに ECS インスタンスの DNS 解決レコードを追加すると、完全なプライベートドメイン名でインスタンスに到達できます。ホスト名のみでの通信を簡素化するには、各 ECS インスタンスで vim /etc/resolv.conf を実行し、search host.prvz を追加することで、host.prvz を DNS 検索ドメインとして設定できます。
ただし、各 ECS インスタンスを手動で設定するのは非効率的でエラーが発生しやすくなります。関連付けられた DHCP オプションセットでドメイン名を設定することで、VPC 内のすべての ECS インスタンスは DHCP 経由で自動的にドメイン名を取得し、それが DNS 検索ドメインとして /etc/resolv.conf に書き込まれます。インスタンスがホスト名で通信する場合、システムは検索ドメインを付加し、指定された DNS サーバーに完全なドメインと IP のマッピングを問い合わせます。
DNS サーバー IP の設定:ドメイン名の解決
DNS サーバーはドメイン名解決レコードを保持します。ECS インスタンスが ping host01.host.prvz を実行すると、指定された DNS サーバーにクエリが送信され、DNS サーバーは対応する IP アドレスを返します。
公式イメージから ECS インスタンスを作成する場合、Alibaba Cloud は DHCP 経由でデフォルト DNS サーバーを自動的に設定します。これらのサーバーの IP アドレスは 100.100.2.136 と 100.100.2.138 です。これらは Alibaba Cloud VPC 内部の DNS サーバーであり、パブリックドメイン名と Alibaba Cloud 内部のドメイン名の両方を解決します。
比較項目 | DNS ホスト名が有効 | プライベート DNS (プライベートゾーン) | セルフマネージド DNS サービス |
DHCP オプションセットのタイプ | デフォルト DHCP オプションセット | カスタム DHCP オプションセット | カスタム DHCP オプションセット |
ドメイン名の設定 | ECS プライベートドメイン [regionID].ecs.internal デフォルト DNS サーバー | カスタムドメイン名 デフォルト DNS サーバー | カスタムドメイン名 セルフマネージド DNS サーバー |
課金 | ドメイン名料金なし | ドメイン名の数と DNS クエリ量に基づいて課金されます。詳細については、「課金の詳細」をご参照ください。 | ドメイン名料金なし |
VPC 間およびハイブリッドクラウドのプライベートドメイン通信 | サポートされていません | サポートされています | サポートされています |
DNS クエリのパフォーマンスは、使用する DNS サーバーによって異なります。Alibaba Cloud のデフォルト DNS サーバーのパフォーマンス制限については、「プライベート DNS 解決サービスの使用制限」をご参照ください。
DHCP オプションセットの作成または削除
固定 IP への依存を減らし、ホスト名または FQDN ベースの通信を可能にするには、DHCP オプションセットを使用して、関連付けられた VPC 内のすべての ECS インスタンスに DNS サーバー IP と検索ドメインを統一的に設定できます。ECS インスタンスが ping <hostname> を実行すると、システムは検索ドメイン (例: hostname.example.com) を付加して、指定された DNS サーバーにドメインと IP のマッピングを問い合わせます。
1 つの DHCP オプションセットは、同一リージョン内の複数の VPC に関連付け可能ですが、各 VPC には 1 つの DHCP オプションセットしか関連付けできません。
コンソール
DHCP オプションセットの作成
あるリージョン内の VPC の DNS ホスト名を初めて有効にすると、デフォルトの DHCP オプションセットが自動的に作成され、VPC に関連付けられます。デフォルトの DHCP オプションセットは変更できません。カスタムで作成する場合は、VPC コンソール - DHCP オプションセットに移動し、创建DHCP选项集 をクリックして、お使いの DNS 解決サービスに合わせて 域名 と [DNS サーバー IP] を設定します。
VPC が既に別の DHCP オプションセットに関連付けられている場合、DNS ホスト名を有効にしても、デフォルトの DHCP オプションセットは自動的に関連付けられません。手動で関連付けを更新する必要があります。
VPC の関連付け
VPC と DHCP オプションセットの関連付けは、対象の VPC 詳細ページの DHCP Options Sets セクション、または対象の DHCP オプションセットの 操作 列または詳細ページから作成、変更、または削除できます。
関連付けを変更すると、新しい ECS インスタンスは自動的に更新された設定を使用します。既存のインスタンスの場合は、
sudo dhclient -r eth0 && sudo dhclient eth0を実行して DHCP プロセスを再起動し、新しい設定を適用します。関連付けを解除すると、Alibaba Cloud は DHCP 経由でデフォルトの DNS サーバーをインスタンスに割り当てます。ワークロードに影響がない場合は、インスタンスまたはネットワークサービスを再起動して、最新の設定を有効にすることもできます。DHCP オプションセットに関連付けられた VPC で 共有 VPC が有効になっている場合、DHCP オプションセットは共有 VPC 内の ECS インスタンスにも適用されます。
DHCP オプションセットの変更
デフォルトの DHCP オプションセットは変更できません。カスタムの DHCP オプションセットのドメイン名と DNS サーバー IP は変更できます。
DHCP オプションセットを変更すると、関連付けられた VPC 内の新しい ECS インスタンスは自動的に更新された設定を使用します。既存のインスタンスの場合は、DHCP プロセスを再起動して変更を適用します。ワークロードに影響がない場合は、インスタンスまたはネットワークサービスを再起動して、最新の設定を有効にすることもできます。
DHCP オプションセットの削除
DHCP オプションセットを削除する前に、すべての VPC との関連付けを解除します。 次に、対象の DHCP オプションセットの操作 列、または詳細ページで、削除 をクリックします。
API
リージョン内の VPC に対して初めて DNS ホスト名を有効にすると、デフォルトの DHCP オプションセットが自動的に作成され、VPC に関連付けられます。
DHCP オプションセットまたはその関連付けを変更すると、新しい ECS インスタンスは自動的に更新された設定を使用します。既存のインスタンスの場合は、インスタンス、DHCP プロセス、またはネットワークサービスを再起動して変更を適用します。
CreateDhcpOptionsSet を呼び出して DHCP オプションセットを作成します。
AttachDhcpOptionsSetToVpc を呼び出して DHCP オプションセットを VPC に関連付けます。
DetachDhcpOptionsSetFromVpc を呼び出して DHCP オプションセットと VPC の関連付けを解除します。
ReplaceVpcDhcpOptionsSet を呼び出して、VPC に関連付けられている DHCP オプションセットを置き換えます。
UpdateDhcpOptionsSetAttribute を呼び出して DHCP オプションセットの設定を変更します。
DeleteDhcpOptionsSet を呼び出して DHCP オプションセットを削除します。
Terraform
リソース: alicloud_vpc_dhcp_options_set、alicloud_vpc_dhcp_options_set_attachment
# VPC のリージョンを指定
provider "alicloud" {
region = "cn-hangzhou"
}
# DHCP オプションセットを作成
resource "alicloud_vpc_dhcp_options_set" "test_dhcp_options_set" {
dhcp_options_set_name = "test_dhcp_options_set_name"
domain_name = "example.com" # ドメイン名を指定
domain_name_servers = "100.100.2.136,100.100.2.138" # DNS サーバー IP を指定
}
# DHCP オプションセットを VPC に関連付け
resource "alicloud_vpc_dhcp_options_set_attachment" "test_attachment_vpc" {
vpc_id = "vpc-8vbg******" # VPC インスタンス ID を指定
dhcp_options_set_id = alicloud_vpc_dhcp_options_set.test_dhcp_options_set.id # DHCP オプションセットインスタンス ID を指定
}DNS ホスト名の有効化
VPC 内でプライベートドメイン名による通信を有効にするには、VPC の DNS ホスト名を有効にし、ECS インスタンスでプライベート DNS 解決を設定します。Alibaba Cloud Private DNS は DNS レコードを自動的に管理するため、メンテナンスの時間とコストを削減できます。VPC にはデフォルト DHCP オプションセットが関連付けられ、各インスタンスに ECS 組み込み権威ドメイン [regionID].ecs.internal が割り当てられます。
1. リージョン内の VPC に対して初めて DNS ホスト名を有効にすると、デフォルト DHCP オプションセットが自動的に作成され、VPC に関連付けられます。同じリージョン内の他の VPC が DNS ホスト名を有効にすると、システムは自動的に同じデフォルト DHCP オプションセットを関連付けます。
2. VPC が既に別の DHCP オプションセットに関連付けられている場合、DNS ホスト名を有効にしても、デフォルト DHCP オプションセットは関連付けられません。手動で関連付けを更新する必要があります。
3. VPC 間およびハイブリッドクラウドのプライベートドメイン名通信は、現在サポートされていません。
コンソール
DNS ホスト名の有効化
VPC コンソールに移動します。対象の VPC の 基本情報 ページで、DNS ホスト名の 有効化 をクリックします。
ECS コンソールにアクセスし、ECS インスタンスのプライベート DNS 解決を設定します。設定したインスタンスは、同じ VPC 内の他の ECS インスタンスからホスト名でアクセスできるようになります。
インスタンスの作成 の際、[詳細オプション] を展開して[プライベート DNS 解決] を設定します。 IP 形式のホスト名とプライマリプライベート IPv4 アドレスのマッピング、またはインスタンス ID 形式のホスト名とプライマリプライベート IPv4 アドレスのマッピングのいずれかを選択します。
インスタンス ID は変更できません。インスタンスの IP アドレスが変更された場合、DNS レコードは自動的に更新され、新しい IP 形式のホスト名が新しい IP アドレスにマッピングされます。
IPv6 アドレスが割り当てられた後、インスタンス ID 形式のホスト名とプライマリプライベート IPv6 アドレスのマッピングを選択することもできます。
既存の ECS インスタンスの場合は、[操作] 列で
> [インスタンスプロパティ] > [インスタンスプロパティの編集] を選択し、プライベートドメイン名と IP アドレス間のマッピングを選択します。
DNS ホスト名の無効化
ターゲット VPC の 基本情報 ページで、無効化 をクリックします。Alibaba Cloud が割り当てたドメイン名が無効になり、ECS プライベートドメイン名は対応する IP に解決できなくなります。
システムは自動的に VPC とデフォルト DHCP オプションセットの関連付けを解除しますが、削除はしません。DHCP オプションセットを削除するには、まずすべての VPC との関連付けを解除してください。
API
コンソールでの操作とは異なり、CreateVpc API を呼び出す際に EnableDnsHostname パラメーターを設定することで、VPC 作成時に DNS ホスト名を有効化または無効化できます。ModifyVpcAttribute API で
EnableDnsHostnameパラメーターを設定して、DNS ホスト名を有効化または無効化します。RunInstances API を呼び出してインスタンスを作成する際、
PrivateDnsNameOptionsのパラメーターを指定して、プライベート DNS 解決を設定します。ModifyInstanceAttribute API で
PrivateDnsNameOptionsのパラメーターを設定して、既存の ECS インスタンスのプライベート DNS 解決を設定します。
Terraform
ECS プライベート DNS 解決は Terraform では設定できません。この例では、VPC の DNS ホスト名を有効にする方法のみを示します。
リソース: alicloud_vpc、alicloud_vswitch
データソース: alicloud_zones
# VPC のリージョンを指定
provider "alicloud" {
region = "cn-hangzhou"
}
# DNS ホスト名を有効にした VPC を作成
resource "alicloud_vpc" "test_vpc" {
vpc_name = "test_vpc_name"
cidr_block = "10.0.0.0/16"
dns_hostname_status = "ENABLED" # DNS ホスト名を有効化
}カスタムドメイン名の使用
DNS ホスト名によって生成される ECS プライベートドメイン名は変更できません。カスタムドメイン名を使用するには、Alibaba Cloud Private DNS またはセルフマネージド DNS サービスを使用できます。
Private DNS の使用
ECS インスタンスの DNS レコードを一括で追加するには、Private DNS を使用できます。このサービスは、ドメイン名の数と DNS クエリ量に基づいて料金が請求されます。
コンソール
Private DNS コンソールに移動し、Add Zone をクリックして、カスタムの[イントラネット権威ドメイン名 (Zone)]を設定し、[Effective Scope]を対象の VPC に設定します。
対象のゾーン ID をクリックします。ECS Hostname タブで、Add ECS Hostname をクリックします。システムは、選択されたリージョン内の ECS ホスト名を IP にマッピングする DNS レコードを自動的に追加しますが、ホスト名の変更は自動的に同期されません。Automatic Synchronization Settings を有効にすると、システムが 1 分ごとに DNS レコードを自動的に追加および同期するようになります。カスタムドメインプレフィックスを使用するには、Settings タブに移動し、カスタムの[Hostname]を追加します。
VPC コンソール - DHCP オプションセットに移動し、创建DHCP选项集 をクリックして、[域名]を対応する組み込みの権威ドメイン名に設定します。
対象の DHCP オプションセットの操作 列で、关联专有网络 を選択します。DNS レコードが設定された ECS インスタンスは、関連付けられた VPC 内の他のインスタンスからホスト名またはホストレコードでアクセスできるようになります。
API
Alibaba Cloud Private DNS を使用するには、次の API を順番に呼び出します。
Terraform
ECS ホスト名の DNS レコードの自動追加はサポートされていません。カスタム DNS レコードを個別に追加する必要があります。
リソース: alicloud_pvtz_zone、alicloud_pvtz_zone_attachment、alicloud_pvtz_zone_record、alicloud_vpc_dhcp_options_set、alicloud_vpc_dhcp_options_set_attachment
# 対象の VPC のリージョンを指定します
provider "alicloud" {
region = "cn-hangzhou"
}
# 組み込みの権威ドメインを設定します
resource "alicloud_pvtz_zone" "test_pvtz_zone" {
zone_name = "example.com"
}
# ドメイン名の範囲を設定します
resource "alicloud_pvtz_zone_attachment" "test_pvtz_zone_attachment" {
zone_id = alicloud_pvtz_zone.test_pvtz_zone.id
vpc_ids = ["vpc-8vba******"] # ドメインが有効になる VPC インスタンス ID を指定します
}
# DNS レコードを追加します
resource "alicloud_pvtz_zone_record" "test_pvtz_zone_record" {
zone_id = alicloud_pvtz_zone.test_pvtz_zone.id
rr = "abc" # ホストレコードを指定します
type = "A" # DNS レコードタイプを指定します
value = "192.168.0.4" # DNS レコード値を指定します
}
# DHCP オプションセットを作成します
resource "alicloud_vpc_dhcp_options_set" "test_dhcp_options_set" {
dhcp_options_set_name = "test_dhcp_options_set_name"
domain_name = "example.com" # ドメイン名を指定します
domain_name_servers = "100.100.2.136,100.100.2.138" # Alibaba Cloud のデフォルト DNS サーバー IP を指定します
}
# DHCP オプションセットを VPC に関連付けます
resource "alicloud_vpc_dhcp_options_set_attachment" "test_attachment_vpc" {
vpc_id = "vpc-8vba******" # VPC インスタンス ID を指定します
dhcp_options_set_id = alicloud_vpc_dhcp_options_set.test_dhcp_options_set.id # DHCP オプションセットインスタンス ID を指定します
}セルフマネージド DNS サービスの使用
ワークロードに、地理的な場所、ネットワーク品質、またはサーバー負荷に基づいて最適な IP を動的に返すなど、柔軟な DNS ルーティングポリシーが必要な場合は、セルフマネージド DNS サーバーをデプロイできます。ただし、DNS レコードの維持とサービスの信頼性の確保は、お客様の責任となります。次の例では、BIND を使用してセルフマネージド DNS サービスをデプロイし、DHCP オプションセットを使用して ECS インスタンスを DNS サーバー IP とカスタムドメイン名に向ける方法を示します。
セルフマネージド DNS サービスと Alibaba Cloud DNS サービスの両方を使用するには、セルフマネージド DNS サーバーでグローバル転送ルールを設定し、カスタムドメイン以外のクエリを Alibaba Cloud のデフォルト DNS サーバーに転送します。
カスタム DHCP オプションセットで DNS サーバー IP を指定する場合は、次の点に注意してください。
1. 単一障害点によって引き起こされる DNS 名前解決の失敗を防ぐために、少なくとも 2 つのカスタム DNS サーバーをデプロイすることを推奨します。
2. DHCP オプションセットには、カスタム DNS サーバーの IP アドレスのみを入力してください。コンソールが自動的に入力する Alibaba Cloud のデフォルト DNS サーバーの IP アドレス (100.100.2.136 および 100.100.2.138) は削除してください。カスタム DNS サーバーでグローバルフォワーダーを設定し、100.100.2.136 と 100.100.2.138 を上位 DNS サーバーとして指定してください。これにより、パブリックドメイン名と Alibaba Cloud の内部サービスの名前解決ができるようになります。
3. 関連付けられた VPC のセキュリティグループとネットワーク ACL (設定されている場合) にインバウンドルールを追加して、セルフマネージド DNS サーバー IP へのトラフィックを許可してください。そうしないと、DNS クエリが失敗する可能性があります。
4. カスタム DNS サーバーの IP アドレスには、IPv6 アドレスはサポートされていません。
コンソール
VPC コンソール - DHCP オプションセットに移動し、创建DHCP选项集 をクリックして、[域名]をセルフマネージド DNS サービスで使用されるドメイン名に設定し、サーバ IP をカスタマイズ をクリックして、セルフマネージド DNS サーバー IP をリストの最初に配置します。
対象の DHCP オプションセットの操作 列で、关联专有网络 を選択します。DNS レコードが設定された ECS インスタンスは、関連付けられた VPC 内の他のインスタンスからホスト名でアクセスできるようになります。
API
ドメイン名とセルフマネージド DNS サーバー IP を使用してカスタム DHCP オプションセットを作成し、それを VPC に関連付けるには、次の API を順番に呼び出します。
Terraform
リソース: alicloud_vpc_dhcp_options_set、alicloud_vpc_dhcp_options_set_attachment
# VPC のリージョンを指定します
provider "alicloud" {
region = "cn-hangzhou"
}
# DHCP オプションセットを作成します
resource "alicloud_vpc_dhcp_options_set" "test_dhcp_options_set" {
dhcp_options_set_name = "test_dhcp_options_set_name"
domain_name = "example.com" # ドメイン名を指定します
domain_name_servers = "192.168.0.10,192.168.0.11" # セルフマネージド DNS サーバー IP のみを指定します。単一障害点を回避するために、2 台のサーバーを推奨します
}
# DHCP オプションセットを VPC に関連付けます
resource "alicloud_vpc_dhcp_options_set_attachment" "test_attachment_vpc" {
vpc_id = "vpc-8vbg******" # VPC インスタンス ID を指定します
dhcp_options_set_id = alicloud_vpc_dhcp_options_set.test_dhcp_options_set.id # DHCP オプションセットインスタンス ID を指定します
}補足情報
課金
DHCP オプションセット機能は無料です。
サポートリージョン
エリア | リージョン |
アジアパシフィック - 中国 | China (Hangzhou)、China (Shanghai)、China (Qingdao)、China (Beijing)、China (Zhangjiakou)、China (Hohhot)、China (Ulanqab)、China (Shenzhen)、China (Guangzhou)、China (Zhongwei)、China (Chengdu)、および China (Hong Kong) |
アジアパシフィック - その他 | Japan (Tokyo)、South Korea (Seoul)、Singapore、Malaysia (Kuala Lumpur)、Indonesia (Jakarta)、Philippines (Manila)、Thailand (Bangkok)、および Malaysia (Johor) |
ヨーロッパおよびアメリカ | Germany (Frankfurt)、UK (London)、France (Paris)、US (Silicon Valley)、US (Virginia)、Mexico、および Brazil (São Paulo) |
中東 | UAE (Dubai) および Saudi Arabia (Riyadh - Partner Region) |
クォータ
クォータ名 | 説明 | デフォルトの上限 | 調整可能 |
該当なし | アカウントあたりの DHCP オプションセットの最大数 デフォルトの DHCP オプションセットは、このクォータには含まれません。 | 10 | 調整不可 |
1 つの DHCP オプションセットに関連付けられる Virtual Private Cloud (VPC) の最大数 | 10 | ||
1 つの VPC に関連付けられる DHCP オプションセットの最大数 | 1 | ||
DHCP オプションセットあたりのドメイン名の最大数 | 1 | ||
DHCP オプションセットあたりの DNS サーバー IP の最大数 | 4 |