Terraform을 사용하여 Azure에서 허브 및 스포크 네트워크 유효성 검사

Terraform 을 사용하면 클라우드 인프라의 정의, 미리 보기 및 배포가 가능합니다. Terraform을 사용하여 HCL 구문을 사용하여 구성 파일을 만듭니다. HCL 구문을 사용하면 클라우드 공급자(예: Azure)와 클라우드 인프라를 구성하는 요소를 지정할 수 있습니다. 구성 파일을 만든 후에는 인프라 변경 내용을 배포하기 전에 미리 볼 수 있는 실행 계획을 만듭니다. 변경 내용을 확인하면 실행 계획을 적용하여 인프라를 배포합니다.

이 문서에서는 이 시리즈의 이전 문서에서 만든 terraform 파일을 실행합니다. 그 결과 데모 가상 네트워크 간의 연결 유효성 검사가 수행됩니다.

이 문서에서는 다음 방법을 알아봅니다.

  • 허브-스포크 토폴로지에서 허브 VNet 구현
  • 배포할 리소스 확인
  • Azure에서 리소스 만들기
  • 서로 다른 네트워크 간의 연결 확인

1. 환경 구성

  • Azure 구독: Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

2. 구성 확인

예제 디렉터리에서 이 문서 시리즈에서 만든 모든 파일이 있는지 확인합니다.

파일 이름 파일이 만들어지는 문서
main.tf Azure에서 Terraform을 사용하여 허브 및 스포크 하이브리드 네트워크 토폴로지 만들기
variables.tf Azure에서 Terraform을 사용하여 허브 및 스포크 하이브리드 네트워크 토폴로지 만들기
on-prem.tf Azure에서 Terraform을 사용하여 온-프레미스 가상 네트워크 만들기
hub-vnet.tf Azure에서 Terraform을 사용하여 허브 가상 네트워크 만들기
hub-nva.tf Azure에서 Terraform을 사용하여 허브 가상 네트워크 어플라이언스 만들기
spoke1.tf Azure에서 Terraform을 사용하여 스포크 가상 네트워크 만들기
spoke2.tf Azure에서 Terraform을 사용하여 스포크 가상 네트워크 만들기

3. Terraform 초기화

terraform init를 실행하여 Terraform 배포를 초기화합니다. 이 명령은 Azure 리소스를 관리하는 데 필요한 Azure 공급자를 다운로드합니다.

terraform init -upgrade

핵심 사항:

  • -upgrade 매개 변수는 필요한 공급자 플러그 인을 구성의 버전 제약 조건을 준수하는 최신 버전으로 업그레이드합니다.

4. Terraform 실행 계획 만들기

terraform 계획을 실행하여 실행 계획을 만듭니다.

terraform plan -out main.tfplan

핵심 사항:

  • terraform plan 명령은 실행 계획을 만들지만 실행하지는 않습니다. 대신 구성 파일에 지정된 구성을 만드는 데 필요한 작업을 결정합니다. 이 패턴을 사용하면 실제 리소스를 변경하기 전에 실행 계획이 예상과 일치하는지 확인할 수 있습니다.
  • 선택 사항인 -out 매개 변수를 사용하여 계획의 출력 파일을 지정할 수 있습니다. -out 매개 변수를 사용하면 검토한 계획이 정확하게 적용됩니다.

5. Terraform 실행 계획 적용

terraform 적용을 실행하여 클라우드 인프라에 실행 계획을 적용합니다.

terraform apply main.tfplan

핵심 사항:

  • 예시 terraform apply 명령은 이전에 terraform plan -out main.tfplan를 실행했다고 가정합니다.
  • -out 매개 변수에 다른 파일 이름을 지정한 경우 terraform apply에 대한 호출에서 동일한 파일 이름을 사용합니다.
  • -out 매개 변수를 사용하지 않은 경우 매개 변수 없이 terraform apply를 호출합니다.

6. 결과 확인

이 섹션에서는 시뮬레이션된 온-프레미스 환경에서 허브 VNet으로의 연결을 테스트하는 방법을 보여 줍니다.

  1. Azure Portal로 이동합니다.

  2. Azure Portal에서 onprem-vnet-rg 리소스 그룹으로 이동합니다.

  3. onprem-vnet-rg 탭에서 onprem-vm이라는 VM을 선택합니다.

  4. 공용 IP 주소 값을 확인합니다.

  5. 명령줄로 돌아가서 실행 ssh 하여 시뮬레이션된 온-프레미스 환경에 연결합니다.

    ssh azureuser@<onprem_vm_ip_address>
    

    핵심 사항:

    • azureuser 파일에서 variables.tf 사용자 이름을 변경한 경우, ssh 명령에 해당 값을 삽입해야 합니다.
    • 실행할 terraform plan때 지정한 암호를 사용합니다.
  6. onprem-vm 가상 머신에 연결되면 명령을 실행 ping 하여 허브 VNet의 jumpbox VM에 대한 연결을 테스트합니다.

    ping 10.0.0.68
    
  7. ping 명령을 실행하여 각 스포크에서 jumpbox VM에 대한 연결을 테스트합니다.

    ping 10.1.0.68
    ping 10.2.0.68
    
  8. onprem-vm 가상 머신에서 ssh 세션을 종료하려면 exit을 입력하고 < Enter> 키를 누르십시오.

7. 리소스 정리

Terraform을 통해 만든 리소스가 더 이상 필요하지 않은 경우 다음 단계를 수행합니다.

  1. terraform 계획을 실행하고 플래그를 지정합니다destroy.

    terraform plan -destroy -out main.destroy.tfplan
    

    핵심 사항:

    • terraform plan 명령은 실행 계획을 만들지만 실행하지는 않습니다. 대신 구성 파일에 지정된 구성을 만드는 데 필요한 작업을 결정합니다. 이 패턴을 사용하면 실제 리소스를 변경하기 전에 실행 계획이 예상과 일치하는지 확인할 수 있습니다.
    • 선택 사항인 -out 매개 변수를 사용하여 계획의 출력 파일을 지정할 수 있습니다. -out 매개 변수를 사용하면 검토한 계획이 정확하게 적용됩니다.
  2. terraform을 실행하여 실행 계획을 적용합니다.

    terraform apply main.destroy.tfplan
    

Azure에서 Terraform 문제 해결

Azure에서 Terraform을 사용할 때 발생하는 일반적인 문제 해결

다음 단계