<가상 네트워크 만들기>

<가상 머신 2개 만들기>


# ping 방화벽 해제 명령어
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
PC window(local)에서 3389 포트 방화벽 열어주면, 공용 IP로도 Subnet 들어갈 수 있음
포트 열어주려면 -> 가상머신 내의 네트워킹에서 인바운드 포트 규칙 추가
-> 로컬 PC(윈도우)에서 공용 IP로 접속하려면 인바운드 포트 규칙에 HTTP 80을 추가해서 열어줘야 함
윈도우 IIS 설치(스크립트)하면, 윈도우 서버(원격 데스트톱)의 80은 열림

네트워크 보안 그룹: 각 가상머신마다 존재
가상 네트워크 생성
네트워크 보안 그룹 생성
가상 머신 만들기 -> NIC 네트워크 보안 그룹 설정 변경

AWS: NACL
-> 네트워크 방화벽
-> 사용자가 직접 정책을 설정해 유입되는 트래픽을 제어
-> 서브넷은 하나의 NACL만 적용 가능
SG: 인스턴스 방화벽
가상 네트워크 -> 인바운드 보안 규칙 -> RDP 추가
Azure에는 NACL X
주로 각 가상머신의 NIC 보다는 Subnet에 NSG 연결

sudo apt-get install nginx
sudo add-apt-repository ppa:git-core/ppa -y
sudo apt-get update
sudo apt-get install git -y
git --version # git 버전 확인
git clone(flask 파일)

flask 설치
sudo apt install python3-pip
sudo apt install python3-flask
python3 -m flask run
production 시, WSGI Server도 같이 배포해야 함!
Azure resource 그룹 -> 개요 -> 캡쳐 -> 이미지 만들기
-> 가상 머신 다시 사용 불가

이미지 버전 -> VM 만들기

power shell: ssh 들어가서 flask 파일 있는지 확인!
python3 app.py
-> 공용 IP주소:5000로 접속:

-> 공용 IP 주소로

각 가상머신을 네트워크 보안 그룹과의 연결 끊어주고, 서브넷과 연결
세 번째 가상머신 만들기: 네트워크 보안그룹 없음으로 설정하기


이미지 버전 -> VM 만들기

systemd: 리눅스 실행 시 가장 먼저 실행되는 디렉토리
sudo vi /lib/systemd/system/flask.service
# vi editor에서
[Unit]
Description=flask simple server. python-flask
After=syslog.target network.target
[Service]
Type=idle
User=labuser23
WorkingDirectory=/usr/bin/flask2
ExecStart=python3 -m flask run --host=0.0.0.0 --port=5000
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable flask.service
sudo systemctl start flask.service
systemctl is-active flask # active 출력되면 됨
sudo apt-get install curl


Azure resource 그룹 -> 개요 -> 캡쳐 -> 이미지 만들기
가상머신 확장 집합
(AWS: Auto Scaling, 쿠버네티스: deployment)

- 가상 네트워크 만들기
- 네트워크 보안 그룹 2개 만들기
- 프론트 가상머신, 백 가상머신 만들기
-> 백 가상머신에는 공용 IP주소 없음으로!- 프론트 가상머신: 22, 80 포트 열어주기
- 가상머신에서 보안 그룹과의 연결 끊고, 각 보안그룹과 서브 네트워크 연결
- power shell에서 ssh + front 공용 IP
- flask 파일 서비스 등록
- curl + back 가상 머신의 Private IP 주소, 5000번 확인!
<OSI 7 Layer Model>
- 웹개발: 대부분 TCP 사용
- 영상: 주로 UDP 사용
-> TCP, UDP: L4(Transport Layer) : Port 구분 가능- L2 Switch: MAC address 구분
- L3: IP 주소 구분