본문 바로가기

AI, 논문, 데이터 분석

[클라우드 컴퓨팅] [Azure 실습 2] 가상 네트워크 만들기

Azure 권장 명명 규칙 정의 

https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-naming

 

Define your naming convention - Cloud Adoption Framework

Learn about the considerations for naming your Azure resources and assets, and review example names for resources and assets in Azure.

learn.microsoft.com


가상 네트워크

  • SDx (Software-Defined Everything)
    • IT 인프라 및 서비스의 모든 요소를 소프트웨어에 의해 제어하고 관리할 수 있도록 하는 개념
    • 클라우드 컴퓨팅, 가상화, 자동화 기술을 기반으로 하며, 데이터 센터와 네트워크를 비롯한 다양한 IT 자원을 효율적이고 유연하게 운영하기 위한 접근 방식을 제공
    • SDN (Software-Defined Networking), SDS (Software-Defined Storage), SDD (Software-Defined Datacenter), SDV (Software-Defined Vehicle) 등을 포함
      • SDN (Software-Defined Networking) 소프트웨어 정의 네트워킹은 네트워크의 제어 및 관리를 하드웨어 장치에서 분리하여 소프트웨어로 중앙 집중식 제어를 가능하게 하는 기술
      • SDS (Software-Defined Storage) 소프트웨어 정의 스토리지는 저장 장치를 소프트웨어를 통해 추상화하여 데이터 관리를 자동화하고 최적화하는 기술
      • SDD (Software-Defined Datacenter) 소프트웨어 정의 데이터 센터는 데이터 센터의 모든 구성 요소(컴퓨팅, 스토리지, 네트워킹, 보안)를 소프트웨어로 관리하는 개념
      • SDV (Software-Defined Vehicle) 소프트웨어 정의 차량은 차량의 기능을 소프트웨어로 제어하고 업데이트할 수 있는 차량 기술
  • 개요
  • 설계
  • 서브넷 설계

가상 네트워크 만들기

리소스 그룹 : rg-hallofarmor-[SUFIX]
가상 네트워크 이름 : vnet-hallofarmor-[SUFIX]
주소 공간 : 10.[NUM].0.0 / 16
서브넷 : snet-jarvis, 10.[NUM].42.0 / 16

 


가상 머신 만들기

< 기본 사항>

리소스 그룹 : rg-hallofarmor-km

가상머신 이름 : vmkm

이미지 : Windows Server 2022 Datacenter: Azure Edition - x64 Gen2

크기 : Standard_DS1_v2 admin

id : tony

password : Pa55w.rdsktflyai

인바운드 포트 선택 : HTTP (80), HTTPS (443), RDP (3389)

 

< 디스크 >

OS 디스크 유형 : 프리미엄 SSD

{가상 머신 이름}용 데이터 디스크 : ” 새 디스크 만들기 “ 클릭

디스크 크기 선택 : 32GiB

 

<네트워킹>

공용 IP : (선택 사항. 이름 변경)

 

<관리>

나중에 변경할 수 있다.

 

<모니터링>

부트 진단 : 실제 실무에서는 사용하지만, 우리는 테스트니 '사용 안 함'

< 고급 >

 

< 검토 + 만들기 >

배포가 완료됨!


VM 접속

(Microsoft Remote Desktop 다운로드)

+Add 의 " PC " 클릭

 

접속할 VM의 공용 IP 주소,

접속한 VM의 ID, PW 입력


 

Power Shell  열고, 명령어 입력

#웹 서버(IIS) 역할 설치
Install-WindowsFeature -Name Web-Server -IncludeManagementTools

 

웹 서버 역할 설치 완료

 

그냥 크롬에, 공용 IP 주소를 입력하면, 가상 머신 안에 들어갈 수 있다!

#Default.html 만들기
Set-Content -Path "C:\inetpub\wwwroot\Default.htm" -Value "Running Jarvis built on Copilot from host $($env:computername) !"

 

 

RUN 앱에서 명령어 실행

diskmgmt.msc

 

(Disk2의 오른쪽 상자에서, 우클릭. )

New Simple Volumne 클릭
W로 설정.

Volumn 이름 : webdata.

 


이번엔, Linux VM 만들기

리소스 그룹 : rg-hallofarmor-km

가상 머신 이름 : vmjarvisbekm         (이름 + back end용 + 개인식별이름)

이미지 : Ubuntu Server 22.04 LTS - x64 Gen2

 

 

<관리, 고급, 태그>

기본값으로. 나중에 변경할 수 있다.


 

프라이빗 키 다운로드 하기!

Linux 가상 머신 생성 완료!

 

이제 이 key를 VM으로 옮기자

 

복사/붙여넣기가 가능하게, 내 로컬에서 기능을 켜 준다.

이후 다운 받은 key 파일을 복사하고, 

VM의 다운로드 폴더에 붙여넣기.

cd .\Downloads\
ssh -i .\vmjarvisbekm_key.pem tony@{프라이빗 IP 주소}

프라이빗 IP 주소는 가상머신에서 확인.


< 가상 머신 - 데이터 디스크 추가>

< 디렉터리 생성과 마운트 >

//데이터 디스크인 /dev/sdc 파티셔닝
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%

//XFS 파일 시스템으로 포맷
sudo mkfs.xfs /dev/sdc1

// partprobe 유틸리티를 사용하여 커널이 새 파티션 및 파일 시스템을 바로 인식하는지 확인
sudo partprobe /dev/sdc1

//디렉터리 생성과 마운트
sudo mkdir /jvbedata
sudo mount /dev/sdc1 /jvbedata

//샘플 파일 작성
cd /jvbedata
sudo touch readme.txt

ls 명령어를 통해, readme.txt라는 빈 파일이 잘 형성된 것을 확인할 수 있다.

 

#!/bin/bash
# NGINX 설치
sudo apt-get update
sudo apt-get -y install nginx
# nginx 설치가 잘 되었는지 확인
ps -ef | grep nginx

# index.html 파일 만들기
sudo sh -c 'echo "Running Jarvis Foundation Models from host $(hostname)" > /var/www/html/index.html'

 

이후 가상머신의 인터넷으로, IP 주소로 들어가면,,, "Running ~~~ " 내용이 뜬다.

 


더보기

IIS와 NGINX의 접근성 차이

1. IIS와 외부 접근

  • IIS를 통해 서버를 설치하면 기본적으로 **HTTP 프로토콜(포트 80)**로 외부 사용자가 접근할 수 있는 환경을 설정하게 됩니다.
  • IIS의 기본 설정은 로컬 서버뿐만 아니라 외부 네트워크(인터넷)에서도 설정된 IP 주소(또는 도메인 이름)를 통해 웹 페이지를 제공할 수 있도록 설계되어 있습니다.

2. NGINX 설치와 프라이빗 IP 접근

위의 NGINX 명령어 세트는 다음 이유로 외부 사용자가 접근하기 어려운 환경을 만듭니다:

a. SSH를 통한 접근

  • 명령어 ssh -i .\vmjarvisbekm_key.pem tony@{프라이빗 IP 주소}는 개인 컴퓨터에서 SSH 프로토콜을 이용해 원격 서버의 터미널에 접속하는 것입니다.
  • 여기서 사용된 프라이빗 IP 주소는 일반적으로 내부 네트워크에서만 접근 가능하며, 외부 네트워크에서는 접근할 수 없습니다.
  • 프라이빗 IP는 NAT(Network Address Translation)이나 포트 포워딩 같은 네트워크 설정을 통해서만 외부로 노출할 수 있습니다.

b. NGINX 기본 설정

  • NGINX는 설치 시 기본적으로 HTTP 서버로 동작하지만, 외부 사용자가 접근하려면 다음이 필요합니다:
    • 해당 서버의 공인 IP 주소가 있어야 하고,
    • 방화벽 규칙이 HTTP(포트 80) 트래픽을 허용해야 합니다.
  • 설정하지 않으면 로컬 네트워크에서만 접근 가능하며, 인터넷에서는 서버가 노출되지 않습니다.

c. SSH 접근과의 차이

  • SSH는 보안이 설정된 원격 접속 방식이며, SSH 키 파일(vmjarvisbekm_key.pem)과 사용자 계정(tony)이 있어야 접근할 수 있습니다.
  • 이는 HTTP 프로토콜과 달리 특정 사용자만 접속할 수 있도록 제한된 접근 방식입니다.

 

차이점 정리


특징 IIS (웹 서버) NGINX (SSH 기반 설치 및 로컬 접근)
접속 방식 HTTP/HTTPS (80/443 포트) SSH (22 포트)와 HTTP
외부 네트워크 접근 여부 공인 IP와 방화벽 설정 필요, 외부 접근 가능 기본적으로 로컬 네트워크만 허용, 프라이빗 IP로 제한됨
보안 수준 외부 노출로 인해 추가적인 보안 설정 필요 SSH 키 파일로 제한적 접근
기본 네트워크 설정 공인 IP 또는 라우팅을 통해 외부 접근 가능 NAT/포트 포워딩 없이 외부 접근 불가