주:

Terraform으로 Oracle Cloud Infrastructure Architect Professional 인증 가속화

소개

Oracle Cloud Infrastructure(OCI) Architect Professional 인증을 획득하려면 Oracle Cloud 및 실습 경험을 깊이 이해해야 합니다. 이 자습서는 코드형 인프라(IaC)를 Terraform과 함께 활용하여 여정을 가속화합니다.

그림 0

아래 그림 1에서는 배포할 대상 OCI 아키텍처를 보여 줍니다. 오른쪽에서는 OCI Architect Professional Certification(2024) 실습에 대한 구조화된 접근 방식을 7단계로 나눕니다. 인증 시험 실습에 맞춘 사전 구축된 Terraform 코드 조각을 활용하여 반복 작업을 자동화함으로써 필수 OCI 개념의 마스터링에 집중할 수 있는 귀중한 시간을 확보할 수 있습니다. 이 접근 방식은 실험실 완성을 가속화 할뿐만 아니라 플랫폼에 대한 더 깊은 이해를 촉진합니다.

그림 1 그림 1: OCI Architecture Professional Certification Lab 1 - Architecture and Manual과 Automated Process 비교

수동 방법의 전환

OCI 인증 시험 실습에 대한 수동 접근 방식은 중요한 장애물이 될 수 있습니다. 몇 가지 단점은 다음과 같습니다.

더 빠른 마스터 OCI 기술: 자동화의 힘

이 사용지침서에서는 작업을 자동화하고, 핵심 기술에 집중하고, 연습 시간을 단축하여 OCI 인증을 가속화하는 방법을 보여줍니다.

주요 이점:

추가 혜택:

OCI Architect Professional Certification(2024) 여정을 신속하게 진행하기 위해 Terraform을 사용하여 그림 1에 표시된 Lab 1: Oracle Cloud Infrastructure Architect Professional을 자동화합니다. 이 자동화된 접근 방식은 다른 인증 랩 및 실제 클라우드 배포로 확장할 수 있습니다.

NSG(네트워크 보안 그룹)를 CIDR 블록 대신 다른 NSG로 수신 소스로 사용

이 사용지침서에서는 OCI의 네트워크 보안 그룹과 VCN(가상 클라우드 네트워크) 내의 네트워크 트래픽에 대한 세분화된 제어를 제공하는 방법을 살펴봅니다. 네트워크 보안 그룹은 가상 방화벽으로 작동하여 VCN 내의 리소스에 대한 네트워크 액세스를 제어합니다. 여기에는 OCI Compute 인스턴스, Kubernetes 클러스터 또는 데이터베이스가 포함됩니다. 네트워크 보안 그룹은 서브넷 간의 제어가 아닌 리소스 간의 제어를 활성화하여 보안 목록보다 뛰어난 유연성을 제공합니다.

7단계의 반자동 하이브리드 접근 방식

포괄적인 OCI Architect Professional Certification 실습 랩은 시간이 많이 소요될 수 있습니다. Lab 1: Oracle Cloud Infrastructure Architect Professional에서 완료하는 데 25분 이상 소요됩니다. Terraform을 사용하여 VCN, NSG 및 VM(가상 머신) 생성과 같은 반복 작업을 자동화하면 번거로운 수동 단계가 아닌 핵심 보안 개념에 초점을 맞춰 이번에 최대 80%까지 줄일 수 있습니다. 제안된 반자동 접근 방식은 유연성을 제공하므로 자동화할 작업을 선택할 수 있습니다.

목표

필요 조건

작업 1: VCN(가상 클라우드 네트워크) 생성

수동 옵션:

OCI VCN 마법사를 사용하여 VCN, 인터넷 게이트웨이, 라우팅 테이블, 보안 목록, 퍼블릭 및 프라이빗 서브넷과 같은 핵심 네트워킹 리소스를 생성할 수 있습니다. 자세한 내용은 가상 네트워킹 빠른 시작을 참조하십시오.

  1. OCI 콘솔로 이동하여 네트워킹, 가상 클라우드 네트워크로 이동하고 새 VCN을 생성합니다.

  2. VCN 정보를 누르고 VCN, 전용 서브넷공용 서브넷 OCID를 기록해 둡니다(그림 2).

  3. 배치 옵션 섹션에 설명된 대로 OCID를 input.auto.tfvars(또는 terraform.tfvars) 파일에 추가합니다.

기본적으로 create_vcn 플래그는 해제되어 있습니다(수동으로 OCI 콘솔에서 VCN 생성). VCN OCID, 서브넷 OCID를 수집하고 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: 두 개의 NSG 만들기(NSG-01 및 NSG-02)

수동 옵션:

다음 단계를 사용하여 두 개의 NSG(NSG-01 및 NSG-02)를 만듭니다.

  1. 작업 1에서 생성된 VCN을 선택합니다.

  2. 리소스에서 네트워크 보안 그룹을 누릅니다.

  3. 네트워크 보안 그룹 생성을 누르고 다음 정보를 입력합니다.

    • 이름: 이름을 입력합니다. 예: <REGION-KEY>-AP-LAB01-NSG-01.
    • 구획 생성: 작업 컴파트먼트를 입력합니다.
    • Create를 누릅니다.
  4. 이름이 <REGION-KEY>-AP-LAB01-NSG-02인 두번째 NSG에 대해 1-3단계를 반복합니다.

자동 옵션:

다음 Terraform 코드는 두 개의 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"
}

두 개의 NSG를 만들려면 create_nsg_1create_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 및 ICMP(Internet Control Message Protocol) 핑 테스트를 사용하여 4개의 VM 실행

OCI 콘솔에서 수동으로 VM을 실행하는 데 익숙하다고 가정합니다. 자세한 내용은 인스턴스 생성을 참조하십시오.

참고: 4개의 VM(퍼블릭 서브넷의 VM 3개와 프라이빗 서브넷의 VM 1개)을 생성하기 위한 Terraform 자동화 옵션만 다룹니다.

3개의 VM(VM-01, VM-02 및 VM-03)을 생성하도록 Terraform에 지시하려면 create_vm_1_3 플래그를 사용으로 설정합니다.

# 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 키 쌍을 생성하십시오. 자세한 내용은 Generate SSH keys을 참조하십시오.

그런 다음 create_vm_4 플래그를 사용으로 설정하여 Terraform이 프라이빗 네트워크 내에 VM-04를 생성하도록 지시합니다.

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

네 번째 인스턴스(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 콘솔로 이동하여 컴퓨트인스턴스로 이동합니다. 네 개의 인스턴스가 모두 나열됩니다.

  2. 세 인스턴스(VM-01, VM-02, VM-03)의 공용 IP 주소를 적어 둡니다.

  3. 컴퓨터에서 각 VM 인스턴스의 공용 IP 주소를 ping합니다.

예상 결과:

자동화된 ICMP 에코 테스트: 이 테스트는 Terraform local-exec 프로비저닝을 사용하여 자동화됩니다.

input.auto.tfvars 파일을 편집하여 icmp_ping_count 변수의 값을 설정합니다. 로컬 컴퓨터에서 3개의 공용 VM에 대해 각각 핑을 사용으로 설정하려면 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: 인터넷에서 ICMP 핑을 허용하도록 NSG-01에 수신 규칙 추가

작업 4.2: NSG-01을 가리키도록 세번째 VM(VM-03) 구성

NSG-01을 VM-03 VNIC(가상 네트워크 인터페이스)에 연결하려면 그림 4에 설명된 단계를 따릅니다.

  1. 컴퓨트에서 인스턴스, VM-03세부정보 보기를 누릅니다.

  2. 연결된 vNICs을 선택하고 기본 vNIC를 누릅니다.

  3. vNIC Information에서 Network Security Group 옆에 있는 Edit(편집) 링크를 누르고 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 주소에 대해 두번째 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: 두 NSG를 중첩하기 전에 ICMP 핑 실행

수동 옵션:

처음에는 3개의 공용 VM에서 VM-04의 전용 IP 주소 핑을 시도합니다.

예상 결과: 모든 핑 시도가 실패합니다. 접속을 사용으로 설정하려면 중첩된 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.shicmp_ping_count에 의해 정의된 핑 시도 횟수를 반복합니다.

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)

수동 옵션:

NSG-01을 소스로 지정하는 수신 규칙으로 두번째 NSG(NSG-02)를 구성하여 두 NSG 간의 ICMP 트래픽 플로우를 사용으로 설정합니다.

작업 6.1: 네트워킹에 수신 규칙 추가(가상 클라우드 네트워크)

  1. VCN(VCN-01)에서 보안 규칙을 누릅니다.

  2. NSG-02를 선택하고 규칙 추가를 누릅니다.

  3. 다음 정보를 입력하고 추가를 누릅니다.

    • 소스 유형: 네트워크 보안 그룹을 선택합니다.
    • 소스: NSG-01을 입력합니다.
    • IP 프로토콜: ICMP를 선택합니다.
    • 유형: 8을 입력합니다.
    • 코드: 모두를 선택합니다.

    이미지 그림 5: NSG-01을 NSG-02 수신 규칙에 소스로 추가

작업 6.2: 네번째 VM(VM-04)이 NSG-02를 가리키도록 구성

  1. VM-04의 vNIC Information(그림 6)에서 NSG 옆에 있는 Edit 링크를 누르고 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에서 VM-04의 프라이빗 IP 주소 핑을 다시 시도합니다.

  1. 퍼블릭 서브넷의 세 인스턴스(VM-01, VM-02, VM-03)로 SSH 접속합니다.

  2. 각각 VM-04의 전용 IP를 ping합니다. 그림 1과 같이 VM-03만 성공합니다.

설명: 이제 VM-04의 vNIC가 NSG-02 내의 규칙과 기본 보안 목록의 규칙에 의해 제어됩니다. NSG-01은 NSG-02에 대한 수신 규칙 소스로 구성되어 인터넷에서 트래픽을 허용합니다.

자동화된 엔드투엔드 테스트:

ICMP 에코 핑 테스트를 자동으로 실행하려면 Terraform을 사용으로 설정합니다.

  1. 3개의 VM(VM-01, VM-02 및 VM-03) 각각에 대해 icmp_test_from_vm? 플래그를 true로 설정합니다.

  2. 그림 1의 왼쪽에 표시된 것처럼 VM-03만 VM-04를 성공적으로 핑합니다.

# 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 핑 시도가 수행된 결과를 보여 줍니다. 이 그림은 중첩 NSG를 구현하기 전과 후에 핑 결과를 비교합니다.

이미지 그림 7: NSG-02를 NSG-01에 중첩하고 vNICs를 VM에 연결하기 전후에 핑 결과

주: Terraform을 사용하는 경우 NSG-02를 VM-04 vNIC에 올바르게 연결하려면 수동 구성에서 전환한 후 VM을 다시 생성하십시오.

배치 옵션

옵션 1: Terraform CLI(명령행 인터페이스) 사용(Community Edition)

Terraform CLI를 사용하여 인프라를 계획하고 배치하기 위해 Terrafrom 명령을 실행하기 전에 제공된 Terraform 구성을 로컬 시스템의 특정 환경 세부정보 또는 OCI Cloud Shell의 원격으로 업데이트해야 합니다. 전체 Terraform 소스 코드는 oci-blog-fast-tracking-apcertif-main.zip에서 다운로드합니다. 사용자 환경에 맞게 사용자 정의해야 하는 유일한 파일은 input.auto.tfvars 파일입니다. 마찬가지로 이름이 지정된 파일은 terraform.tfvars입니다. 예를 들어, 사용된 컴퓨터 이미지의 OCID(amper_image_id)와 lab 리소스가 생성될 컴파트먼트(compartment_id)의 OCID를 지정할 수 있습니다(필요한 경우에만 기본값 수정). 이 패키지는 환경 설정, 실습 실행, 네트워킹 및 보안 개념 이해를 위한 포괄적인 지침을 제공합니다. 여기에는 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_id, compartment_id), 네트워크 리소스 프로비전(create_vcn, create_msg_1/2), VM 생성(create_vm_1_3, create_vm_4, shape_name), ICMP 핑(icmp_pingvm1_fromlocal, icmp_test_from_vm1) 및 인프라 배치 계획을 실행하여 Oracle Resource Manager 스택을 생성합니다.

이미지

다음 단계

코드형 인프라 (IaC) 원칙은 Terraform을 사용하여 배포 가속화 및 보안 향상을 통해 인프라 관리를 크게 향상시킵니다. 예를 들어, OCI Architect Professional Certification(2024) Lab 1: Become An OCI Architect Professional(2024)에서 중첩 NSG를 수동으로 구성하면 일반적으로 약 25분이 소요됩니다.

Terraform을 활용하여 복잡한 OCI 리소스를 프로비저닝하고 구성하는 데 필요한 시간을 크게 단축함으로써 상당한 효율성 향상을 입증했습니다. 따라서 복잡한 네트워크 보안 구성을 관리하는 OCI 사용자의 경우 측정 가능한 시간과 비용을 절감할 수 있습니다. 또한 IaC는 일관성을 높이고 인적 오류의 위험을 줄여 학습 및 실제 고객의 구현에 중요한 모델입니다. IaC를 Terraform에 적용하거나 OCI 자동화 요구사항에 맞는 기타 유사한 툴에 적용하는 방법에 대해 자세히 알아보려면 나머지 OCI Architect Professional Certification 실습에서 학습한 원칙을 적용하면서 OCI Reference Architecture 및 모범 사례를 살펴보는 것이 좋습니다.

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.