ノート:

TerraformでOracle Cloud Infrastructure Architect Professional認定を加速

イントロダクション

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

図0

次の図1は、デプロイするターゲットOCIアーキテクチャを示しています。右側には、OCI Architect Professional Certification(2024)ラボに対する構造化されたアプローチの概要が7つのステップに分かれています。認定試験ラボに合わせた事前構築済みのTerraformコード・スニペットを活用することで、反復的なタスクが自動化され、貴重な時間を確保して、重要なOCIコンセプトの習得に集中できます。このアプローチにより、ラボの完成が加速されるだけでなく、プラットフォームをより深く理解できるようになります。

図1 図1: OCI Architecture Professional認定ラボ1 - アーキテクチャと手動対自動プロセス

手動メソッドの欠点

OCI認定試験のハンズオン・ラボへの手動アプローチは、大きなハードルになる可能性があります。欠点は次のとおりです。

OCIスキルを迅速に習得: 自動化のパワー

このチュートリアルでは、タスクを自動化し、コア・スキルに焦点を当て、練習時間を短縮することで、OCI認定を加速する方法を示します。

主な利点:

その他の利点は次のとおりです。

OCI Architect Professional認定(2024)のジャーニーを促進するために、Terraformを使用して図1に示すラボ1: Oracle Cloud Infrastructure Architect Professionalを自動化します。この自動化されたアプローチは、他の認定ラボや実際のクラウド・デプロイメントに拡張できます。

CIDRブロックではなく別のNSGへのイングレス・ソースとしてのネットワーク・セキュリティ・グループ(NSG)

このチュートリアルでは、OCIのネットワーク・セキュリティ・グループと、Virtual Cloud Network (VCN)内のネットワーク・トラフィックを詳細に制御する方法について説明します。ネットワーク・セキュリティ・グループは仮想ファイアウォールとして機能し、VCN内のリソースへのネットワーク・アクセスを制御します。これには、OCI Computeインスタンス、Kubernetesクラスタ、データベースなどが含まれます。ネットワーク・セキュリティ・グループは、サブネット間のみでなくリソース間の制御を可能にすることで、セキュリティ・リストよりも高い柔軟性を提供します。

半自動ハイブリッド・アプローチ(7ステップ)

OCI Architect Professional認定のハンズオン・ラボは、包括的なものの、時間がかかる場合があります。Lab 1: Oracle Cloud Infrastructure Architect Professionalで、完了までに少なくとも25分が必要なことを検討してください。TerraformでVCN、NSG、仮想マシン(VM)の作成などの反復タスクを自動化することで、今回は最大80%削減でき、面倒な手動ステップではなくコア・セキュリティの概念に集中できます。提案された半自動アプローチは柔軟性を提供し、どのタスクを自動化するかを選択できます。

目的

前提条件

タスク1: Virtual Cloud Network (VCN)の作成

手動オプション:

OCI VCNウィザードを使用して、コア・ネットワーキング・リソース(VCN、インターネット・ゲートウェイ、ルート表、セキュリティ・リスト、パブリックおよびプライベート・サブネット)を作成します。詳細は、仮想ネットワーキングのクイックスタートを参照してください。

  1. OCIコンソールに移動し、「ネットワーキング」「Virtual Cloud Networks」に移動して、新しいVCNを作成します。

  2. 「VCN情報」をクリックし、「VCN」「プライベート・サブネット」および「パブリック・サブネット」のOCIDsを書き留めます(図2)。

  3. デプロイメント・オプションの項に示すように、OCIDsをinput.auto.tfvars (またはterraform.tfvars)ファイルに追加します。

デフォルトでは、create_vcnフラグはオフです(OCIコンソールからVCNを手動で作成します)。VCN OCIDサブネットOCIDsを収集し、input.auto.tfvarsファイルに追加します。

# Step 1a - Create VCN using VCN Wizard (create_vcn flag off)
create_vcn = false

# Copy from the console the VCN OCIDs and subnets (public, Private) OCIDs.
vcn_id            = "REPLACE_CREATED_VCN_OCID_HERE"
private_subnet_id = "REPLACE_CREATED_PRIVATE_SUBNET_OCID_HERE"
public_subnet_id  = "REPLACE_CREATED_PUBLIC_SUBNET_OCID_HERE"

イメージ 図2: VCN OCID、パブリック・サブネットOCIDおよびプライベート・サブネットOCIDを収集するためのコンソールVCNビュー

自動オプション:

次のステップを使用してVCNを作成します。

  1. VCNおよびすべてのネットワーキング・リソースを自動的に作成するには、input.auto.tfvarsファイルでcreate_vcnフラグをtrueに設定します。

  2. VCN、パブリック・サブネット、プライベート・サブネットのCIDRブロックおよびホスト名接頭辞を指定します。

    # Step 1b - Create VCN using Terraform. Provided the CIDR Blocks for the
    #           VCN, Subnets and all other required input (host_name_prefix).
    create_vcn = true
    
    # Provide the VCN & Subnet CIDR Blocks as well as host name prefix
    vcn_cidr_block            = "10.0.0.0/16"
    public_subnet_cidr_block  = "10.0.0.0/24"
    private_subnet_cidr_block = "10.0.1.0/24"
    host_name_prefix          = "phxapl4"
    

タスク2: 2つのNSG (NSG-01およびNSG-02)の作成

手動オプション:

次のステップを使用して、2つのNSG (NSG-01およびNSG-02)を作成します。

  1. タスク1で作成したVCNを選択します。

  2. リソース」で、「ネットワーク・セキュリティ・グループ」をクリックします。

  3. 「ネットワーク・セキュリティ・グループの作成」をクリックし、次の情報を入力します。

    • 名前:名前を入力します。たとえば、<REGION-KEY>-AP-LAB01-NSG-01です。
    • コンパートメントの作成:作業コンパートメントを入力します。
    • 「作成」をクリックします。
  4. <REGION-KEY>-AP-LAB01-NSG-02という名前の2番目のNSGについて、ステップ1から3を繰り返します。

自動オプション:

次のTerraformコードでは、2つのNSG (NSG-01およびNSG-02)が作成されます。

resource "oci_core_network_security_group" "nsg-01" {
  count = (var.create_vcn && var.create_nsg_1) ? 1 : 0

  #Required
  compartment_id = var.compartment_id
  vcn_id         = var.create_vcn ? oci_core_vcn.this.*.id[0] : var.vcn_id
  display_name   = "${var.display_name_prefix}-TF-NSG-01"
}

resource "oci_core_network_security_group" "nsg-02" {
  count = (var.create_vcn && var.create_nsg_2) ? 1 : 0

  #Required
  compartment_id = var.compartment_id
  vcn_id         = var.create_vcn ? oci_core_vcn.this.*.id[0] : var.vcn_id
  display_name   = "${var.display_name_prefix}-TF-1-NSG-02"
}

2つのNSGを作成するには、create_nsg_1およびcreate_nsg_2フラグをtrueに設定します。

# Step 2: Create two(2) empty Network Security Groups (NSG-01 & NSG-02).
create_nsg_1 = true
create_nsg_2 = true

タスク3: TerraformおよびRun Internet Control Message Protocol (ICMP) Ping Testを使用した4つのVMの起動

OCIコンソールから手動でVMを起動することに慣れているとします。詳細は、インスタンスの作成を参照してください。

ノート: 4つのVM (パブリック・サブネットに3つのVM、プライベート・サブネットに1つのVM)を作成するTerraform自動化オプションのみについて説明します。

create_vm_1_3フラグを有効にして、3つのVM (VM-01、VM-02およびVM-03)を作成するようにTerraformに指示します。

# Step 3a: Launch three(3) VMs(VM-01, VM-02, VM-03) in the public subnet.
create_vm_1_3 = true

パブリック・サブネット内に3つのコンピュート・インスタンスを作成するには、次のTerraformコードでcountメタ引数を使用しました。この簡潔なアプローチにより、より複雑なfor_eachメタ引数と比較して作成プロセスが簡略化されます。countを3に設定すると、0、1および2の索引が付けられたインスタンスが自動的に生成され、コードの可読性と効率が向上します。

resource "oci_core_instance" "VM1-3" {
  count = (var.create_vm_1_3) ? 3 : 0

  availability_domain         = "GqIF:PHX-AD-1"
  compartment_id              = var.compartment_id
  create_vnic_details {
    assign_ipv6ip             = "false"
    assign_private_dns_record = "true"
    assign_public_ip          = "true"
    subnet_id                 = var.create_vcn ? oci_core_subnet.My-Public-Subnet.*.id[0] : var.public_subnet_id
    #nsg_ids                   = (var.create_vcn && var.create_nsg_1) && (count.index == 2) ? [oci_core_network_security_group.nsg-1.*.id[0]] : []
    nsg_ids = (var.automate_step_4 && var.create_nsg_1) ? (var.create_vcn ? [oci_core_network_security_group.nsg-1.*.id[0]] : [oci_core_network_security_group.nsg-01.*.id[0]]) : [] 

  }

  display_name  = "${var.display_name_prefix}-VM-0${count.index + 1}"
  metadata = {
    "ssh_authorized_keys"     = "${file(var.ssh_public_key)}"
  }

  shape                       = "VM.Standard.A1.Flex"
  shape_config {
    memory_in_gbs             = "6"
    ocpus                     = "1"
  }

  source_details {
    source_id                = var.amper_image_id
    source_type              = "image"
  }
}

ノート: SSHを介してパブリックVMにアクセスするには、独自のSSHキー・ペアを生成します。詳細は、SSHキーの生成を参照してください。

次に、create_vm_4フラグを有効にして、プライベート・ネットワーク内にVM-04を作成するようにTerraformに指示します。

# Step 3b: Launch the fourth VM (VM-04) in the private subnet.
create_vm_4   = true

これは、プライベート・サブネットに4番目のインスタンス(VM-04)を作成するTerraformコードの一部です。

resource "oci_core_instance" "vm-4" {
  count = (var.create_vm_4) ? 1 : 0

  availability_domain         = "GqIF:PHX-AD-1"
  compartment_id              = var.compartment_id

  create_vnic_details {
    #assign_ipv6ip            = "false"
    assign_private_dns_record = "true"
    assign_public_ip          = "false"
    subnet_id                 = var.create_vcn ? oci_core_subnet.My-Private-Subnet.*.id[0] : var.private_subnet_id
    #nsg_ids                   = (var.create_vcn && var.create_nsg_1) ? [oci_core_network_security_group.nsg-2.*.id[0]] : []
    nsg_ids = (var.automate_step_6 && var.create_nsg_2) ? (var.create_vcn ? [oci_core_network_security_group.nsg-2.*.id[0]] : [oci_core_network_security_group.nsg-02.*.id[0]]) : []                                    
  }

  display_name                = "${var.display_name_prefix}-VM-04"
  shape                       = "VM.Standard.A1.Flex"
  shape_config {
    memory_in_gbs             = "6"
    ocpus                     = "1"
  }

  source_details {
    source_id                = var.amper_image_id
    source_type              = "image"
  }
}

手動ICMPエコー・テスト: NSGがトラフィックに与える影響を監視します。

  1. OCIコンソールに移動し、「コンピュート」および「インスタンス」に移動します。4つのインスタンスがすべてリストされます。

  2. 3つのインスタンスのパブリックIPアドレス(VM-01、VM-02、VM-03)を書き留めます。

  3. コンピュータから、各VMインスタンスのパブリックIPアドレスにpingを送信します。

予期した結果:

自動ICMPエコー・テスト:このテストは、Terraform local-execプロビジョナを使用して自動化されます。

input.auto.tfvarsファイルを編集して、icmp_ping_count変数の値を設定します。ローカル・コンピュータから3つのパブリックVMのそれぞれにpingを有効にするには、icmp_pingvm?_fromlocalフラグをtrueに設定します(1、2または3は特定のVMを表します)。

# ICMP ping from Local Computer (First Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true

タスク4: ICMPイングレス・トラフィックの構成およびNSG-01へのvNICsのアタッチ

手動オプション:

VM-03とNSG-01間のトラフィックを構成するために必要な次のサブタスク。

タスク4.1: ネットワークでの新規イングレス・ルールの追加

最初のNSG (NSG-01)を更新するには、図3に示すステップに従います。

  1. VCNを選択します。

  2. 「ネットワーク・セキュリティ・グループ」でNSG-01を選択し、「ルールの追加」をクリックします。

  3. 次の情報を入力して、「追加」をクリックします。

    • ソース・タイプ: CIDRと入力します。
    • ソースCIDR: 0.0.0.0/0と入力します。
    • IPプロトコル: 「ICMP」を選択します。
    • タイプ: 8と入力します。
    • コード: 「すべて」を選択します。

    イメージ 図3: NSG-01へのイングレス・ルールの追加によるインターネットからのICMP Pingの許可

タスク4.2: NSG-01を指すように3番目のVM (VM-03)を構成する

NSG-01をVM-03仮想ネットワーク・インタフェース(VNIC)にアタッチするには、図4に示すステップに従います。

  1. 「コンピュート」で、「インスタンス」「VM-03」および「詳細の表示」をクリックします。

  2. アタッチされたvNICsを選択し、「プライマリvNIC」をクリックします。

  3. 「vNIC情報」で、「ネットワーク・セキュリティ・グループ」の横にある「編集」リンクをクリックし、「NSG-01」を選択します。

  4. 変更を保存」をクリックします。

イメージ 図4: VM-03 vNICへのNSG-01のアタッチ

自動オプション:

input.auto.tfvarsファイルに移動し、automate_step_4フラグをオンにします。

# Step 4: Add CIDR ingress rule in Network, attach VM-03 vNIC with NSG-01.
automate_step_4 = true

ノート:

手動チェック:ローカル・コンピュータからVM VM-01、VM-02およびVM-03のパブリックIPアドレスに対して、2番目のICMPエコー・テスト(ping)を実行します。

結果:

自動チェック: input.auto.tfvarsファイルにナビゲートし、すべてのicmp_pingvm?_fromlocalフラグをtrueに設定します(1、2または3は特定のVMを表します)。

# ICMP ping from Local Computer (Second Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true

タスク5: 2つのNSGをネストする前にICMP Pingを実行する

手動オプション:

最初に、3つのパブリックVMからVM-04のプライベートIPアドレスにpingを試行します。

予想結果:すべてのping試行が失敗します。接続を有効にするには、ネストされたNSGアーキテクチャが必要です。

自動オプション:

パブリックVM (VM-01、VM-02およびVM-03)ごとにicmp_test_from_vm?フラグをtrueに設定します。各フラグ名の特定の VM番号(1、2、または3)に置き換えます。

# Step 5: SSH to VM-01, VM-02, VM-03 and ping VM-04 (First Attempt).
icmp_test_from_vm1 = true
icmp_test_from_vm2 = true
icmp_test_from_vm3 = true

このオプションは、Terraform remote-execプロビジョナを利用してICMPテストを自動化します。VMの作成時に使用される公開キーに対応する秘密SSHキーを指定する必要があります。シェル・スクリプトping_script.shは、icmp_ping_countで定義されたping試行回数を繰り返します。

resource "null_resource" "icmp_ping_vm4_from_vm1" {
  depends_on = [oci_core_instance.VM1-3[0]]
  count      = (var.icmp_test_from_vm1) ? 1 : 0

  connection {
    agent       = false
    host        = oci_core_instance.VM1-3[0].public_ip
    user        = "opc"
    private_key = file(var.ssh_private_key)
  }

  # At this stage we assume that the ping_script.sh is copied under /home/opc
  provisioner "remote-exec" {
    inline = [
      "echo \" PING PRIVATE IP ${oci_core_instance.vm-4[0].private_ip}\"",
      "chmod +x ping_script.sh",
      "export TARGET_IP=${oci_core_instance.vm-4[0].private_ip}",
      "export PING_COUNT=${var.icmp_ping_count}",
      "sh ping_script.sh",
    ]
  }
}

タスク6: ネストされたNSGの構成(NSG-01およびNSG-02)

手動オプション:

2番目のNSG (NSG-02)をソースとしてNSG-01を指定するイングレス・ルールで構成し、2つのNSG間のICMPトラフィック・フローを有効にします。

タスク6.1: ネットワークでのイングレス・ルールの追加(Virtual Cloud Network)

  1. VCN (VCN-01)で、「セキュリティ・ルール」をクリックします。

  2. 「NSG-02」を選択し、「ルールの追加」をクリックします。

  3. 次の情報を入力して、「追加」をクリックします。

    • ソース・タイプ: 「ネットワーク・セキュリティ・グループ」を選択します。
    • ソース: NSG-01と入力します。
    • IPプロトコル: 「ICMP」を選択します。
    • タイプ: 8と入力します。
    • コード: 「すべて」を選択します。

    イメージ 図5: NSG-01をソースとしてNSG-02イングレス・ルールに追加

タスク6.2: NSG-02を指すように4番目のVM (VM-04)を構成する

  1. VM-04の「vNIC情報」(図6)で、NSGの横にある「編集」リンクをクリックし、「NSG-02」を選択します。

  2. 「変更の保存」をクリックします。

イメージ 図6: VM-04 vNICへのNSG-02のアタッチ

自動オプション:

このタスクを自動化するには、input.auto.tfvarsファイルでautomate_step_6をtrueに設定します。

# Step 6: Add NSG-01 as ingress rule source, attach NSG-02 to VM04 vNIC.
automate_step_6 = true

タスク7: ネストされたNSGの最終ICMPエコー・テストの実行

手動によるエンドツーエンド・テスト:

VM-04のプライベートIPアドレスをパブリックVMからpingを再試行します。

  1. パブリック・サブネットの3つのインスタンス(VM-01、VM-02、VM-03)にSSH接続します。

  2. それぞれから、VM-04のプライベートIPにpingを実行します。図1に示すように、VM-03のみが成功します。

説明: VM-04のvNICは、NSG-02内のルールおよびデフォルトのセキュリティーリストのルールによって管理されるようになりました。NSG-01はNSG-02のイングレス・ルール・ソースとして構成され、インターネットからのトラフィックが許可されます。

エンドツーエンドの自動テスト:

TerraformでICMPエコーpingテストを自動的に実行できるようにします。

  1. 各3つのVM (VM-01、VM-02およびVM-03)のicmp_test_from_vm?フラグをtrueに設定します。

  2. 図1の左側に示すように、VM-03のみがVM-04を正常にpingします。

# Step 7: SSH to VM-01, VM-02, VM-03 and ping VM-04 (Second Attempt).
icmp_test_from_vm1 = true
icmp_test_from_vm2 = true
icmp_test_from_vm3 = true

図7は、VM-03へのSSH接続の確立後に実行された複数のICMP ping試行の結果を示しています。この図は、ネストされたNSGを実装する前後のping結果を比較しています。

イメージ 図7: NSG-02をNSG-01にネストし、vNICsをVMに接続する前後のPingの結果

ノート: Terraformを使用する場合は、手動構成から切り替えた後にVMを再作成し、NSG-02をVM-04 vNICに正しくリンクするようにします。

デプロイ・オプション

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

Terrafromコマンドを実行して、Terraform CLIを使用してインフラストラクチャを計画およびデプロイする前に、提供されているTerraform構成を、ローカル・マシンまたはOCI Cloud Shellから特定の環境の詳細で更新する必要があります。oci-blog-fast-tracking-apcertif-main.zipから完全なTerraformソース・コードをダウンロードします。環境に合せてカスタマイズする必要があるファイルは、input.auto.tfvarsファイルのみです(同様に、ファイル名はterraform.tfvarsです)。たとえば、使用済コンピュータ・イメージ(amper_image_id)のOCIDs、およびラボ・リソースが作成されるコンパートメント(compartment_id)を指定できます(必要に応じてデフォルト値のみ変更)。このパッケージには、環境の設定、ラボの実行、ネットワークとセキュリティの概念の理解に関する包括的な手順が記載されています。OCIの高度なラーニング・エクスペリエンスを強化するための詳細なガイド、ヒント、ベストプラクティスが含まれています。

##########################################################################
# Terraform module: Nested NSGs - NSG-01 as Ingress source to NSG-02.    #
#                                                                        #
# Copyright (c) 2024 Oracle        Author: Mahamat Hissein Guiagoussou   #
##########################################################################

# Working Compartment
compartment_id = "REPLACE_WORKING_COMPARTMENT_OCID_HERE"

# Image OCID - https://docs.oracle.com/en-us/iaas/images/
amper_image_id = "REPLACE_INSTANCE_REGIONAL_IMAGE_OCID_HERE"

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

##########################################################################
# Step 1a - Create VCN using VCN Wizard (turn off the create_vcn flag),  #
##########################################################################
create_vcn        = false
vcn_id            = "REPLACE_VCN_OCID_HERE"
private_subnet_id = "REPLACE_PRIVATE_SUBNET_OCID_HERE"
public_subnet_id  = "REPLACE_PUBLIC_SUBNET_OCID_HERE"

##########################################################################
# Step 1b - Create VCN using Terraform. Provide the CIDR Blocks for the  #
#           VCN, Subnets and other required input (host_name_prefix).    #
##########################################################################
cvcn_cidr_block           = "10.0.0.0/16"
public_subnet_cidr_block  = "10.0.0.0/24"
private_subnet_cidr_block = "10.0.1.0/24"
host_name_prefix          = "phxapl4"

##########################################################################
# Step 2: Create two(2) empty Network Security Groups: NSG-01 & NSG-02.  #
##########################################################################
create_nsg_1 = false
create_nsg_2 = false

##########################################################################
# Step 3a: Launch three VMs(VM-01, VM-02, VM-03) in the public subnet.   #
##########################################################################
create_vm_1_3 = false

##########################################################################
# Step 3b: Launch the fouth VM (VM-04) in the private subnet.            #
##########################################################################
create_vm_4 = false

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

# Ping all public VM from Local Computer
icmp_pingvm1_fromlocal = false
icmp_pingvm2_fromlocal = false
icmp_pingvm3_fromlocal = false

# Compute Instance SSH keys
ssh_public_key  = "~/cloudshellkey.pub"
ssh_private_key = "~/cloudshellkey"

# Ping VM-04 from Public VMs (VM-02, VM-02, and VM-03) via SSH
icmp_test_from_vm1 = false
icmp_test_from_vm2 = false
icmp_test_from_vm3 = false

##########################################################################
# Step 4: Add CIDR ingress rule in Network & Attach VM3 vNIC with NSG-01 #
##########################################################################
automate_step_4 = false

##########################################################################
# Step 5: SSH to VM-01, VM-02, VM-03 and ping VM-04 (First Attempt).     #
##########################################################################

##########################################################################
# Step 6: Add NSG-01 as ingress rule source, Attach VM4 vNIC with NSG-02 #
##########################################################################
automate_step_6 = false

##########################################################################
# Step 7: SSH to VM-01, VM-02, VM-03 and ping VM-04 (Second Attempt).    #
##########################################################################

# Number of time ping is executed
icmp_ping_count =  "REPLACE_NUMBER_OF_PING_ATTEMPTS_HERE"

オプション2: Oracle Resource Managerの使用(変数入力サンプル)

変数(amper_image_idcompartment_idなど)の定義、ネットワーク・リソースのプロビジョニング(create_vcncreate_msg_1/2)、VMの作成(create_vm_1_3create_vm_4shape_name)、ICMP ping(icmp_pingvm1_fromlocalicmp_test_from_vm1)およびインフラストラクチャをデプロイする計画の実行によって、Oracle Resource Managerスタックを作成します。

イメージ

次のステップ

Infrastructure as Codeの(IaC)原則は、Terraformを使用して、迅速なデプロイメントとセキュリティの向上を通じてインフラストラクチャ管理を大幅に強化します。たとえば、OCI Architect Professional Certification (2024)のLab 1: Become An OCI Architect Professional (2024)でネストされたNSGを手動で構成すると、通常約25分かかります。

Terraformを活用することで、複雑なOCIリソースのプロビジョニングと構成にかかる時間を大幅に短縮し、効率が大幅に向上しました。これは、複雑なネットワーク・セキュリティ構成を管理するOCIユーザーの測定可能な時間とコスト削減につながります。さらに、IaCは一貫性を促進し、人的エラーのリスクを軽減し、学習と実際の顧客の実装の両方にとって貴重なモデルとなります。Terraformまたはその他の同様のツールを使用したOCI自動化ニーズへのIaCの適用についてさらに学習するには、OCIリファレンス・アーキテクチャとベスト・プラクティスを調査しながら、残りのOCI Architect Professional認定ラボで学習した原則を適用することを検討してください。

承認

その他の学習リソース

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

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