ノート:

TerraformでOCI Architect Professional認定を促進するためのプライベートDNSゾーン、ビューおよびリゾルバの構成

イントロダクション

Oracle Cloud Infrastructure (OCI) Architect Professional認定資格を取得するには、Oracle Cloudおよびハンズオン・エクスペリエンスを深く理解する必要があります。このチュートリアル・シリーズでは、Infrastructure as Code (IaC)TerraformおよびAnsibleとともに使用して、移行を加速します。

イメージ

図1は、OCI Architect Professional認定ラボ2: Oracle Cloud Infrastructure Architect Professional (Oracle University Lab - 6h 14m)用にデプロイするアーキテクチャを示しています。

イメージ 図1: プライベートDNSドメイン名を作成するためのローカル・ピアリング・ゲートウェイ(LPG)エンドポイント

プライベートDNSの主な利点

プライベートDNSには、OCIリソースを管理および保護するためのいくつかの利点があります。これには、次のものが含まれます。

OCIのプライベートDNSを活用して、カスタム・ドメインを管理し、ネットワーク全体でリソースを接続する方法について詳しく説明します。プライベート・ゾーンの作成、レコードの定義、内部使用のためのリゾルバの構成について学習します。これにより、OCI内のリソース・アクセスをきめ細かく制御できます。

7つのタスクにおける半自動化アプローチ

このチュートリアルでは、プライベートDNS解決を使用して、OCIのスケーラブルでマルチVCN環境を自動化する方法について説明します。OCIコンソール、TerraformおよびAnsibleを使用して、2つのVCNsを作成し、それらの間にローカル・ピアリング・ゲートウェイ(LPG)を確立し、仮想マシン(VM)インスタンスを起動し、カスタム・プライベートDNSゾーンを構成し、VCNリゾルバの設定前後にDNS解決を完全にテストします。最終的には、ネットワーク全体でプライベートDNS機能を備えた、完全に機能するマルチVCN環境を使用できます。

目的

これは、OCI Architect Professional認定(2024)の準備を加速するために、チュートリアル1: Lab 1: Accelerate Oracle Cloud Infrastructure Architect Professional Certification with Terraformに続くシリーズの2番目のチュートリアルです。TerraformおよびAnsibleでIaCの原則を活用し、試験に関連するDNSのコア概念に焦点を当てています。認定資格のハンズオン・ラボ: ラボ2: Oracle Cloud Infrastructure Architect Professional (Oracle University Lab - 6h 14m)は包括的ですが、ラボ2には時間がかかり、手動で完了するまでに30分以上かかる場合があります。VCNs、パブリック・サブネット、プライベート・サブネット、LPG、VMの作成などのルーチン・タスクを自動化することで、チュートリアル1: TerraformによるOracle Cloud Infrastructure Architect Professional認定の促進で示されているように、完了時間を80%以上大幅に短縮し、OCI DNSのコア概念のマスタリングに集中できます。

前提条件

タスク1: 2つのVirtual Cloudネットワークの作成

手動オプション:

VCNsは、OCIコンソールを使用して手動で作成できます。この手動作成を示すには、is_vcn1_createdおよびis_vcn2_createdフラグをfalseに初期化する必要があります。

VCN、インターネット・ゲートウェイ、ルート表、セキュリティ・リスト、パブリック・サブネットおよびプライベート・サブネットなどのコア・ネットワーキング・リソースを作成するには、仮想ネットワーキングのクイックスタートを参照してください。

イメージ 図2: VCN-01/VCN-02 OCIDsおよびVCN-01パブリック・サブネットOCIDを収集するためのコンソール・ビュー

OCIコンソールに移動し、「ネットワーキング」「Virtual Cloudネットワーク」に移動し、VCN-01の詳細を表示し、そのOCIDとそのパブリック・サブネットのOCIDをメモします。VCN-02についても同じことを行い、そのOCIDsを書き留めて、収集されたOCIDsをTerraform構成ファイル(input.auto.tfvarsまたはvariables.tf)に追加します。

# Create VCN-01 and VCN-02 with OCI VCN Wizard (set is_vcn1_created and is_vcn2_created to false)
is_vcn1_created    = false
is_vcn2_created    = false

# Update VCN-01 OCID and its Public Subnet OCID, as well as VCN-02 OCID
vcn1_id            = "REPLACE_CREATED_VCN1_OCID_HERE"
public_subnet1_id  = "REPLACE_CREATED_PUBLIC_SUBNET1_OCID_HERE"
vcn2_id            = "REPLACE_CREATED_VCN2_OCID_HERE"

自動オプション:

また、VCNを作成するための2つの自動化オプション(VCN-01およびVCN-02): ルート・モジュール・アプローチと子モジュール・アプローチも提供します。1つ目は、開発とテスト、または1回かぎりのVCNsデプロイメントに適しています。2つ目は、大規模で複雑なデプロイメントのためのより優れた組織とスケーラビリティを提供し、コードの再利用性とメンテナンス性を促進することで、本番環境に最適です。

TerraformにVCNsを作成するように指示するには、まず、input.auto.tfvarsis_vcn1_createdフラグとis_vcn2_createdフラグの両方をtrueに設定するか、variables.tfでデフォルト値に設定する必要があります。次に、VCN CIDRブロック(vcn?_cidr_block)、パブリック・サブネットCIDRブロック(public_subnet?_cidr_block)、プライベート・サブネットCIDRブロック(private_subnet?_cidr_block)およびホスト名接頭辞(host_name?_prefix)を指定します。変数名は、プレースホルダとして疑問符(?)を使用して抽象化されます。?を1または2に置き換えることで、VCN-01VCN-02にそれぞれ別々の構成を定義します。

また、特定の変数の値(oci_regions (キーへのリージョン識別子のマッピング)、network_deployment_option (TF-ROOT-MODULEまたはTF-CHILD-MODULE)およびdipslay_name_prefix (AP-Lab-02-1など)も定義する必要があります。最後のVCN表示名には、包括的な名前を生成するためのnetwork_deployment_option値が含まれます(たとえば、PHX-AP-LAB02-1-TF-ROOT-MODULE-VCN-01)。

タスク2: 2つのローカル・ピアリング・ゲートウェイの作成

手動オプション:

OCIでLPGを手動で作成するには、ローカル・ピアリング・ゲートウェイの作成を参照してください。この場合、構成ファイル(input.auto.tfvarsまたはvariables.tf)でis_lpg1_createdおよびis_lpg2_createdフラグをfalseに設定します。

自動オプション:

Terraformを使用してタスクを自動化するには、これらのフラグをtrueに設定します。これにより、LPG-01およびLPG-02を作成するようにTerraformに指示されます。

# Create 2 Local Peering Gateways (LPG-01 and LPG-02) then peer them.
is_lpg1_created = true
is_lpg2_created = true

次のTerraformコード・スニペットは、LPG-01LPG-02の両方を作成し、それらの間のピアリング関係を確立して、VCNs間のプライベート接続を可能にします。

# LPG-01 Creation
resource "oci_core_local_peering_gateway" "lpg-01" {
  count = (var.is_vcn1_created && var.is_lpg1_created) ? 1 : 0

  # Required
  compartment_id = var.compartment_id
  display_name   = var.is_vcn1_created ?  "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-${var.network_deployment_option}-LPG-01" : "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-LPG-01"
  vcn_id = var.is_vcn1_created ? module.vcn-01.vcn_ocid : var.vcn1_id
}

# LPG-02 Creation
resource "oci_core_local_peering_gateway" "lpg-02" {
  depends_on     = [oci_core_local_peering_gateway.lpg_01]
  count = (var.is_vcn2_created && var.is_lpg2_created) ? 1 : 0

  # Required
  compartment_id = var.compartment_id
  display_name   = var.is_vcn1_created ? "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-${var.network_deployment_option}-LPG-02" : "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-LPG-02"
  vcn_id = var.is_vcn2_created ? module.vcn-02.vcn_ocid : var.vcn2_id

  # Peering lpg-02 with lpg-01
  peer_id = oci_core_local_peering_gateway.lpg_01[count.index].id
}

タスク3: 仮想マシン・インスタンスの起動

手動オプション:

OCIコンソールを使用してVMインスタンスを手動で起動するには、インスタンスの作成を参照してください。

自動オプション:

チュートリアル1: TerraformによるOracle Cloud Infrastructure Architect Professional認定の促進の簡易バージョンのTerraformコードを使用して、VMプロビジョニングの自動化を提供します。仮想マシンVM-01を作成するようにTerraformに指示するには、is_instance_createdフラグをtrueに設定します。VCNがTerraformで作成されている場合、VMの表示名にはnetwork_deployment_option設定(たとえば、PHX-AP-LAB02-1-TF-ROOT-MODULE-VM-01またはPHX-AP-LAB02-1-TF-CHILD-MODULE-VM-01)が含まれます。

# Task 3: Launch a VM(VM-01) in the Public Subnet of VCN-01.
is_instance_created = true

次のTerraformコードでは、VCN-01パブリック・サブネット内の図1に示すように、VM-01の作成が自動化されます。

resource "oci_core_instance" "this" {
  count = (var.is_instance_created) ? 1 : 0

  availability_domain = data.oci_identity_availability_domains.ads.availability_domains[0].name
  compartment_id              = var.compartment_id
  create_vnic_details {
    assign_private_dns_record = "true"
    assign_public_ip          = "true"
    subnet_id                 = var.is_vcn1_created ? module.vcn-01.public_subnet_ocid : var.public_subnet1_id
  }
  display_name = var.is_vcn1_created ? "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-${var.network_deployment_option}-VM-0${count.index + 1}" : "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-VM-0${count.index + 1}"

  instance_options {
    are_legacy_imds_endpoints_disabled = "false"
  }
  metadata = {
    "ssh_authorized_keys" = "${file(var.ssh_public_key)}"
  }

  shape = var.shape_name
  shape_config {
    memory_in_gbs             = var.shape_memory_in_gbs
    ocpus                     = var.shape_numberof_ocpus
  }
  source_details {
    source_id   = var.image_ids[var.region]
    source_type = "image"
  }
}

タスク4: VCN-01およびVCN-02のカスタム・プライベート・ゾーンの作成

OCIのプライベートDNSゾーンには、VCN内でのみアクセス可能な内部DNSレコードが格納されます。DNSの概念を理解するために、最初に2つのカスタム・プライベート・ゾーンを手動で作成する方法を示します。図3は、VCN-01 (PHX-AP-LAB02-1-VCN-01)にプライベートDNSゾーンzone-a.localを作成し、それにrecordを追加する方法を示しています。

イメージ 図3: プライベートDNSゾーンを作成し、それをVCN-01に関連付けてから、新しいレコードをゾーンに追加します

手動オプション:

  1. VCN-01 (zone-a.local)のプライベートDNSゾーンを作成および構成します。

    1. OCIコンソールに移動し、「ネットワーキング」「DNS管理」「ゾーン」に移動して、「プライベート・ゾーン」をクリックします。

    2. 「ゾーンの作成」をクリックし、ゾーン名(zone-a.local)を入力して、関連付けられたVCNとして「既存のDNSプライベート・ビューの選択」PHX-AP-LAB02-1-VCN-01を選択し、「作成」をクリックします。

    3. ゾーンが作成されたら、自動生成されたNSおよびSOAレコードを表示します。

    4. 「レコードの管理」をクリックし、「レコードの追加」を選択します。

    5. 次の情報を入力して、「レコードの追加」をクリックします。

      • 名前: server01と入力します。
      • タイプ: A - IPv4 Addressを選択します。
      • TTL: 30 secondsと入力します(必要に応じてフィールドをロック解除します)。
      • アドレス: 10.0.0.2と入力します。
    6. 「変更の公開」および「変更の公開の確認」をクリックします。

      ノート:操作が正常に終了するのを待ちます(状態がUPDATINGからACTIVEに変更されました)。

  2. VCN-02 (zone-b.local)のプライベートDNSゾーンを作成および構成します。図3と同じステップに従って、VCN-02 (PHX-AP-LAB02-1-VCN-02)のプライベート・ゾーンを作成します。

    1. 「ゾーン」「プライベート・ゾーン」にナビゲートし、「ゾーンの作成」をクリックします。

    2. 「名前」zone-b.localと入力し、関連付けられたVCNとして「既存のDNSプライベート・ビューの選択」PHX-AP-LAB02-1-VCN-02を選択して、「作成」をクリックします。

    3. 「レコードの管理」をクリックし、「レコードの追加」を選択します。

    4. 次の情報を入力して、「レコードの追加」をクリックします。

      • 名前: server01と入力します。
      • タイプ: A - IPv4 Addressを選択します。
      • TTL: 60 secondsと入力します(必要に応じてフィールドをロック解除します)。
      • アドレス: 172.16.0.123と入力します。
    5. 「変更の公開」および「変更の公開の確認」をクリックします。

      ノート:手動作成ステップをスキップすると、zone not found: 3 (NXDOMAIN)のようなエラーが発生します。

自動オプション:

このチュートリアルでは、Ansibleを使用した高度な自動アプローチも提供します。Ansibleは、インフラストラクチャの構成を管理するオープンソースの自動化ツールです。この文脈において、Ansibleプレイブックは、プライベートDNSゾーンの作成を自動化するタスクの集合です。詳細は、Ansible Playbook Keywordsを参照してください。

input.auto.tfvarsまたはvariabes.tfis_task4_automatedtrueに設定して、playbooks.shAnsible playbook実行をトリガーし、プライベートDNSゾーン作成とレコード追加の両方を1回実行で自動化します。

# Task 4: Create and Configure two DNS zones (zone-a and zone-b).
is_task4_automated = true

Using Terraform’s local-exec provisioner, you can execute an Ansible playbook to automatically create zone-a.local in VCN-01 and zone-b.local zones in VCN-02 with their respective records.詳細は、ソース・コード: oci-ansible-collectionを参照してください。

# Create 2 Custom Private Zones and Associated Records in OCI
resource "null_resource" "ansible-create-zones-playbook" {
  count      = (var.is_task4_automated) ? 1 : 0

  # Create inventory
  provisioner "local-exec" {
    command = "sh ~/terraform-ws/lab2-demos/playbooks.sh"
  }
}

タスク5: 関連付けられたゾーンAのインスタンスのテスト

手動オプション:

VMインスタンスを手動でSSHして、VMインスタンスがzone-a.localに関連付けられているかどうかを確認します。

  1. パブリックIPアドレスを使用してインスタンスにSSHで接続します。

    ssh -i <private_ssh_key> <public_ip_address>
    
  2. server01.zone-a.localのDNSレコードを検索します。

    host server01.zone-a.local
    

    予期される出力:

    server01.zone-a.local has address 10.0.0.2
    
  3. システム生成のゾーンエントリを確認します。

    host -t NS zone-a.local
    

    予期される出力:

    zone-a.local has NS record vcn-dns.oraclevcn.com.
    
  4. ゾーンの権限レコードを確認します。

    host -t SOA zone-a.local
    

    予期される出力:

    zone-a.local has SOA record ven-dns.oraclevcn.com.
    hostmaster.oracle.com. 2 3600 3600 3600 10
    
  5. 関連するVCNビューに基づくDNS解決の違いを確認します。

    host server01.zone-b.local
    

    予期される出力:

    server01.zone-b.local not found: 3 (NXDOMAIN)
    

    出力は、zone-b.localがVCNのどのビューにも関連付けられていないことを示しています。

自動オプション:

is_test_instance_associated_zone_aフラグをtrueに設定して、zone-a.localとのVM-01アソシエーションをテストするようにTerraformに指示します。

# Test Instance for Associated Zone (zone-a.local)
is_test_instance_associated_zone_a = true

次のTerraformコードは、remote-execプロビジョナを使用して、VM-01ゾーン・アソシエーションのテストを自動化します。

resource "null_resource" "dns_test_1" {
  depends_on = [oci_core_instance.this[0]]
  count      = (var.is_test_instance_associated_zone_a) ? 1 : 0

  connection {
    agent       = false
    timeout     = "30m"
    host        = oci_core_instance.this[0].public_ip
    user        = "opc"
    private_key = file(var.ssh_private_key) # Avoid exposing SSH keys directly
  }

  provisioner "remote-exec" {
    inline = [
      "echo \"Begin Test 1 - Instance Associated Zone-A\"",
      "echo \"1. Successful SSH to the instance using public ip address: ${oci_core_instance.this[0].public_ip}\"",
      "echo \"2. Look up DNS records for server01.zone-a.local.\"",
      "host server01.zone-a.local",
      "echo \"3. Verify the system-generated zone entry.\"",
      "host -t NS zone-a.local",
      "echo \"4. Verify the authority record for the zone.\"",
      "host -t SOA zone-a.local",
      "echo \"5. Observe the difference in DNS resolution based on the associated VCN views.\"",
      "host server01.zone-b.local",
      "echo \"End Test 1 - Instance Associated Zone-A\"",    ]
  }
}

タスク6: VCN Resolverの構成とその他のプライベート・ビューの追加

手動オプション:

VCNリゾルバを手動で構成するには、OCIコンソールのVCN-01の詳細ページに移動し、「VCN Resolver」および「プライベート・ビュー」を選択します。

ドロップダウン・メニューから「VCN-02」を選択し、「Save」をクリックして変更を保存します。プライベート・リゾルバの詳細ページのステータスがUPDATINGからACTIVEに変更されるまで待機します。

自動オプション:

VCNリゾルバ構成を自動化するために、Terraformのlocal-execプロビジョナを利用して、OCI CLI、AnsibleプレイブックまたはTerraformモジュールを実行します。

is_task6_automatedフラグをtrueに設定して、Terraformに指示します。

is_task6_automated = true

提供されているbashスクリプトupdate_resolver.shでは、VCN-01のプライベート・リゾルバを更新し、VCN-02をDNSプライベート・ビューとして関連付けるステップが強調表示されます。また、OCIのハイブリッドTerraform DNS構成の例は、terraform-OCI-hybrid-dnsから入手できます。

# Task 6: Configure the VCN Resolver, adding the Other Private View
resource "null_resource" "run-get-resolver" {
  count      = (var.is_task6_automated) ? 1 : 0

  # Create inventory
  provisioner "local-exec" {
    command = "sh ~/terraform-ws/lab2-demos/update_resolver.sh"
  }
}

タスク7: 関連付けられたゾーンBのインスタンスのテスト

手動オプション:

VCNリゾルバを構成した後、サーバーが適切に解決されることを確認します。

  1. パブリックIPアドレスを使用してインスタンスにSSHで接続します。

    ssh -i <private_ssh_key> <public_ip_address>
    
  2. server01.zone-a.localのDNSレコードを検索します。

    host server01.zone-b.local
    

    予期される出力:

    server01.zone-b.local has address 172.16.0.123
    

ノート: DNS解決が失敗した場合は、数分待って変更が有効になります。必要に応じて、インスタンスを再起動します。

自動オプション:

is_test_instance_associated_zone_bフラグをtrueに設定して、VM-01と2番目のVCN (VCN-02)の2番目のゾーン(zone-b.local)との関連付けをテストするようにTerraformに指示します。

# Test Instance for Assoicated Zone B
is_test_instance_associated_zone_b = true

次のコードでは、Terraformのremote-execプロビジョナを使用してテストを自動化し、VMインスタンスのzone-b.localとの関連付けを検証します。

resource "null_resource" "dns_test_2" {
  depends_on = [oci_core_instance.this[0]]
  count      = (var.is_test_instance_associated_zone_a) ? 1 : 0

  connection {
    agent       = false
    timeout     = "30m"
    host        = oci_core_instance.this[0].public_ip
    user        = "opc"
    private_key = file(var.ssh_private_key)
  }

  provisioner "remote-exec" {
    inline = [
      "echo \"Begin Test 2 - Instance Associated Zone-B\"",
      "echo \"1. Successfull SSH into the instance using its public ip address: ${oci_core_instance.this[0].public_ip}\"",
      "echo \"2. Look up DNS records for server01.zone-b.local.\"",
      "host server01.zone-b.local",
      "echo \"End Test 2 - Instance Associated Zone-B\""    ]
  }
}

デプロイ・オプション

2つのデプロイメント・オプションについて説明します。

To provision Lab 2 resources (VCN-01/VCN-02, LPG-01/LPG-02, and VM-01) and trigger the required tests, you need to provide default values for: image OCIDs map for each used region (image_ids), compartment OCID (compartment_id), display name prefix (display_name_prefix), networking (is_vcn1_created, is_vcn2_created, is lpg1_created, is_lpg2_created, vcn_1_id, vcn_2_id, and public_subnet1_id), compute instance (is_instance_created, shape_name), and testing flags for instance and zone associations (is_test_instance_associated_zone_a and is_test_instance_associated_zone_b).

オプション1: Oracle Resource Manager (ORM)の使用

図4は、演習2のリソース作成のためのORMスタックの作成を示しています。

イメージ 図4: Oracle Resource Manager - Lab2スタックの作成(VCN-01、VCN-02、LPG-01およびLPG-02、VM-01)

Terraformは、図5に示すように、インフラストラクチャのプロビジョニングを7つのステップで自動化します。ソース構成の分析、Terraformテンプレート・パッケージの構築、デフォルトの変数値の提供、ORMスタックの作成、変更の計画、それらの変更の適用によるOCIでのリソースのプロビジョニング、およびオプションでリソースの破棄を行います。JenkinsOCI DevOpsなどのDevOps CI/CDツールを統合することで、プロセス全体を自動化し、シングルクリック・ソリューションに近い便利な機能を提供します。

イメージ 図5: Oracle Resource Managerスタック・ワークフロー(作成、計画、適用および破棄)

オプション2: Terraformコマンドライン・インタフェース(CLI)の使用(Community Edition)

Terraform CLIは、宣言的な構成ファイルを介してクラウド・リソースの柔軟でスケーラブルな管理を可能にするコード・ツールとしての強力なInfrastructureです。OCI-blog-fast-tracking-apcertif-part2.zipからTerraformコードをダウンロードし、input.auto.tfvarsファイルをOCIの詳細(compartment_idimage_ids)でカスタマイズし、README.mdの手順に従って環境を設定し、terraform initterraform planおよびterraform applyコマンドを実行して演習2を完了します。

必要なTerraformフラグを事前に設定して、クリック数と完了時間を短縮する各タスクにbashスクリプトが含まれています。これらのスクリプトは、複数のレベルの柔軟性を提供します。

本質的に、このパッケージは、プライベートDNSを構成するためのガイドとベスト・プラクティスを提供し、ラボ2を簡素化し、OCI DNSによるスムーズな学習エクスペリエンスを保証します。

##########################################################################
# Terraform module: Configuring Private DNS Zones, Views, and Resolvers. #
# File Name: input.auto.tfvars                                           #
# Copyright (c) 2024 Oracle        Author: Mahamat H. Guiagoussou.       #
##########################################################################

# Working Compartment
compartment_id      = "REPLACE_WITH_YOUR_WORKING_COMPARTMENT_OCID_HERE"

# Region based display name prefix
display_name_prefix = "AP-LAB02-1"   # Replace with your prefix

# TASK 1 - Create 2 VCNs (VCN-01 and VCN-02) manually using the OCI
# VCN Wizard (semi automated option) or Terraform (Root or Child)

# Turn flags off to indicate VCN-01 and VCN-02 are not created with TF
#is_vcn1_created    = false   # Set to 'false' to create VCN-01
#is_vcn2_created    = false   # Set to 'false' to create VCN-02

# After Creating VCN-01 & VCN-02 with VCN Wizard, updae OCIDs
vcn_id            = "REPLACE_VCN1_OCID_HERE"
vcn_id            = "REPLACE_VCN2_OCID_HERE"
public_subnet_id  = "REPLACE_PUBLIC_VCN1_SUBNET_OCID_HERE"

# Create VCN-01 and VCN-02 with Terraform. Use only one of 2 options:
# (1) Root Module  - Dupplicated code ("network1.tf" & "network2.tf")
# (2) Child Module - Use an existing Terraform Network Module.

# Network Deployment Options (Root Module)
network_deployment_option = "TF-ROOT-MODULE" # "TF-CHILD-MODULE"

# Turn flags on to instruct Terraform to create VCN-02 and VCN-02
is_vcn1_created            = true   # Set to 'true' to create VCN-01
is_vcn2_created            = true   # Set to 'true' to create VCN-02

# Networking parameters: CIDR Blocks and Host Name prefix
vcn1_cidr_block            = "10.0.0.0/16"
vcn2_cidr_block            = "172.0.0.0/16"
public_subnet1_cidr_block  = "10.0.0.0/24"
public_subnet2_cidr_block  = "172.0.0.0/24"
private_subnet1_cidr_block = "10.0.1.0/24"
private_subnet2_cidr_block = "172.0.1.0/24"
host_name_prefix           = "<region-key>apl1"

# Task 2: Create two(2) Local Peering Gateways (LPG-01 & LPG-02)
is_lpg1_created            = false
is_lpg2_created            = false

# Task 3: Launch a VM (VM-01) in the public subnet
is_instance_created        = false

# Shape Definition
shape_name                 = "VM.Standard.A1.Flex"
shape_memory_in_gbs        = "6"
shape_numberof_ocpus       = "1"

# SSH keys
ssh_public_key             = "REPLACE_SSH_PUBLIC_KEY_PATH"
ssh_private_key            = "REPLACE_SSH_PRIVATE_KEY_PATH"

# Task 4: Create and Configure OCI Private Zones (zone-a/b.local)
is_task4_automated         = false

# Task 5: Test your instance for Associated Zone A.
is_test_instance_associated_zone_a = false

# Task 6: Configure the VCN Resolver, adding the Other Private View.
is_task6_automated         = false

# Task 7: Test your Instance for Associated Zone B.
is_test_instance_assoracle = false

このチュートリアルでは、Oracle Cloud Infrastructure (OCI)でプライベートDNSゾーン、ビューおよびリゾルバを構成するための包括的なアプローチを提供します。これらのコンポーネントを作成、構成およびテストするための手動と自動の両方の方法が提供されています。This hands-on, semi-automated approach ensures a solid understanding of DNS resolution across different VCNs in OCI.

Through seven tasks, you have created two VCNs, established LPGs, launched a VM, configured two custom DNS zones, and verified VM DNS association before and after adding the second VCN as an associated private view to the DNS Resolver of the first VCN.

次のステップ

このチュートリアルでは、Terraform、Ansible、Oracle Resource Manager ORM、OCI CLI bashシェル・スクリプティングなどのInfrastructure as Code IaCツールを使用してOCIインフラストラクチャのプロビジョニングを自動化することで、OCI Architect Professional Certification(2024)の候補者が、ラボ2のDNS構成のような複雑なタスクを30分からわずか5分に高速化できます。今回の効率化により、人的ミスを減らし、リソース管理コストを削減し、大規模な成功率を高めます。

TerraformとAnsibleを学び、ORM、OCI CLI、bashスクリプトを活用して、効果的なOCIインフラストラクチャ管理のためのベストIaCプラクティスを探ります。

承認

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントは、Oracle Help Centerを参照してください。