DNS Services インスタンスのセットアップ
UIまたはAPIを使用して、IBM Cloud® DNS Servicesインスタンス、DNSゾーン、許可ネットワーク、リソースレコードを設定します。
コンソールでの DNS Services インスタンスの作成
-
IBM Cloud カタログのページを開きます。
-
**「ネットワーキング」**カテゴリーを選択します。
-
**「DNS Services」**タイルをクリックします。
-
プランを選択します。
-
**「サービス名」に入力し、「作成」**をクリックします。
DNS Services インスタンスのページにリダイレクトされ、DNS ゾーンの情報が表示されます。
DNS Services のカタログ・エントリーにアクセスして、DNS Services インスタンスの作成に直接進むこともできます。
コンソールでDNSゾーンを作成する
- 「リソース」ページにナビゲートし、DNS Services インスタンスを選択します。
- 「DNS ゾーン」ページで**「ゾーンの作成」**をクリックします。
- 「ゾーンの作成」パネルでゾーン名を入力します。 オプションで、ラベルと説明を入力できます。
- パネルにある**「ゾーンの作成」**をクリックします。 ゾーンの作成が成功すると、「ゾーンの詳細 (Zone Details)」ページにリダイレクトされます。
コンソールで "A "リソースレコードを作成する
- 「リソース」ページにナビゲートし、DNS Services インスタンスを選択します。 対象のゾーンを選択します。
- 「DNS 詳細」ページで**「DNS レコード」**タブをクリックします。
- 「レコード・アクションの選択」 をクリックし、リスト・メニューから 「レコードの追加」 を選択します。
- 「レコードの追加」パネルの**「タイプ」メニューで、追加する DNS レコードのタイプを選択します。 この場合は、タイプ「A」**を選択します。
- 選択したタイプの DNS レコードに必要なデータを入力します。 この場合は、タイプ**「A」**に対し、 名前と IPv4 アドレスを入力してください。
- パネルにある**「レコードの追加」**をクリックします。
コンソールで許可されたネットワークを作成する
-
「リソース」ページにナビゲートし、DNS Services インスタンスを選択します。 対象のゾーンを選択します。
-
**「許可されたネットワーク」**タブをクリックします。
-
**「ネットワークの追加」**をクリックします。
-
「ネットワークの追加」パネルの**「ネットワークのリージョン (Network Region)」**メニューから、対象の VPC のリージョンを選択します。
-
表示された**「ネットワーク」**メニューから、対象の VPC を選択します。
-
**「ネットワークの追加」**をクリックします。
この要求によってゾーンに VPC のネットワークが追加された結果、そのネットワークからゾーンにアクセスできるようになります。
セットアップの検証
インスタンス、ゾーン、およびレコードが正しく機能していることを確認するために、以下の dig コマンドを実行します。
dig @161.26.0.7 <Record type> <record name>
例:
dig @161.26.0.7 A xyz.example.com
API を使って DNS Services インスタンスを作成する
Resource Controller API の新規リソース・インスタンスの作成の説明を参照してください。 resource_group
と resource_plan_id
を設定する必要があることに注意してください。 各アカウントには複数のリソース・グループを含めることができ、各リソース・グループには固有の
ID が設定されます。
標準プランのインスタンスを作成するため、変数を以下のように設定します。
"resource_plan_id": "2c8fa097-d7c2-4df2-b53e-2efb7874cdf7",
API の使用法について詳しくは、Resource Controller API リファレンスの資料を参照してください。
インスタンスのコマンド・ラインは、DNS API ではなく Resource Controller API を使用します。 これらのコマンドは、DNS ユーザーが DNS Services インスタンスを管理できるようにする ibmcloud resource service-instance
コマンドと同等です。
APIによるDNSゾーンの作成
DNS ゾーンを VPC にリンクできるように、VPC を作成しておく必要があります。
API エンドポイントを変数に保管することで、そのエンドポイントを API 要求で使用するときに URL 全体を入力せずにすみます。 例えば、エンドポイントを変数に保管するために以下のようなコマンドを実行します。
DNSSVCS_ENDPOINT=https://api.dns-svcs.cloud.ibm.com
この変数が保存されたことを確認するために、echo $DNSSVCS_ENDPOINT
を実行して、応答が空でないことを確かめてください。
インスタンスに関する詳細情報を収集したら、以下の curl
コマンドを実行して DNS ゾーンを作成します。
要求
- INSTANCE_ID: インスタンスの GUID
- TOKEN: IAM の OAUTH トークン
curl -X POST \
$DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones \
-H "Authorization: $TOKEN" \
-d '{
"name": "example.com",
"description": "The DNS zone is used for VPCs in the us-east region",
"label": "us-east"
}'
応答
{
"id": "example.com:2d0f862b-67cc-41f3-b6a2-59860d0aa90e",
"created_on": "2019-01-01T05:20:00.12345Z",
"modified_on": "2019-01-01T05:20:00.12345Z",
"instance_id": "1407a753-a93f-4bb0-9784-bcfc269ee1b3",
"name": "example.com",
"description": "The DNS zone is used for VPCs in the us-east region",
"state": "pending_network_add",
"label": "us-east"
}
APIで許可されたネットワークを作成する
DNS Services では、DNS ゾーンに追加された VPC からの名前解決だけが許可されます。
DNS ゾーンが作成されると、ゾーンのステータスが PENDING_NETWORK_ADD
になります。 ゾーンを ACTIVE
状態に移すには、ゾーンの許可ネットワークに VPC のエントリーを追加します。
ゾーンの許可ネットワークに VPC を追加すると、VPC 上のコンピュート・インスタンスがそれらのリソース・レコードにアクセスできるようになります。
要求
curl -X POST \
$DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones/$DNSZONE_ID/acls \
-H "Authorization: $TOKEN" \
-d '{
"type": "vpc",
"acl_data": {
"vpc_crn": "crn:v1:staging:public:is:us-east:a/40705ee14536813e2385f26c20be24a5::vpc:ed5e3cdd-8a4f-45ce-bae4-2774cb028caf"
}
}'
応答
{
"id": "fecd0173-3919-456b-b202-3029dfa1b0f7",
"created_on": "2019-01-01T05:20:00.12345Z",
"modified_on": "2019-01-01T05:20:00.12345Z",
"acl_data": {
"vpc_crn": "crn:v1:staging:public:is:us-east:a/40705ee14536813e2385f26c20be24a5::vpc:ed5e3cdd-8a4f-45ce-bae4-2774cb028caf"
},
"type": "vpc"
}
APIによる "A "リソースレコードの作成
A レコード (アドレス・レコード) とは、ドメインまたはサブドメインを IPv4 アドレスに関連付ける DNS リソース・レコードのことです。
要求
name
: FQDN (www.example.com
など) またはホスト (www
など)。type
: レコードのタイプ (A、AAAA、SRV など)。ip
: name の IP アドレス。ttl
: リソース・レコードの存続時間。
curl -X POST \
$DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones/$DNSZONE_ID/resource_records \
-H "Authorization: $TOKEN" \
-d '{
"name":"www.example.com",
"type":"A",
"rdata": {
"ip":"1.2.6.7"
},
"ttl":300
}'
応答
{
"created_on":"2019-09-13 19:56:42.484382585 +0000 UTC",
"modified_on":"2019-09-13 19:56:42.484382585 +0000 UTC",
"rtype":"A",
"ttl":300,
"name":"www.example.com.testZone.com",
"id":"A:786c07c7-173e-473b-aa09-c186601a5709",
"rdata":{
"ip":"1.2.6.7"
}
}