[20일차]

btga·2024년 1월 16일

SKT FLY AI 4기

목록 보기
19/31

1. 실습1 - 가상 Network

  • 시간 설정하여 서버 생성 가능
  • 많은 서버가 사용되기 때문에, Private Network 필요?

<가상 네트워크 만들기>

  • virtual network 만들기(클래식 X)
  • Subnet 이름만 수정

<가상 머신 2개 만들기>

  • private IP로 Ping 해보기!
# ping 방화벽 해제 명령어
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
  • PC window(local)에서 3389 포트 방화벽 열어주면, 공용 IP로도 Subnet 들어갈 수 있음

  • 포트 열어주려면 -> 가상머신 내의 네트워킹에서 인바운드 포트 규칙 추가
    -> 로컬 PC(윈도우)에서 공용 IP로 접속하려면 인바운드 포트 규칙에 HTTP 80을 추가해서 열어줘야 함

  • 윈도우 IIS 설치(스크립트)하면, 윈도우 서버(원격 데스트톱)의 80은 열림

  • 네트워크 보안 그룹: 각 가상머신마다 존재

2. 네트워크 보안 그룹(NSG)

  • 가상 네트워크 생성

  • 네트워크 보안 그룹 생성

  • 가상 머신 만들기 -> NIC 네트워크 보안 그룹 설정 변경

  • AWS: NACL
    -> 네트워크 방화벽
    -> 사용자가 직접 정책을 설정해 유입되는 트래픽을 제어
    -> 서브넷은 하나의 NACL만 적용 가능

  • SG: 인스턴스 방화벽

  • 가상 네트워크 -> 인바운드 보안 규칙 -> RDP 추가

  • Azure에는 NACL X

  • 주로 각 가상머신의 NIC 보다는 Subnet에 NSG 연결

3. 실습2

  • 우분투 가상머신 만들기
  • update: 목록 가져오기
  • nginx 설치
sudo apt-get install nginx
  • git update
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 주소로

  • 각 가상머신을 네트워크 보안 그룹과의 연결 끊어주고, 서브넷과 연결

  • 세 번째 가상머신 만들기: 네트워크 보안그룹 없음으로 설정하기

4. 실습3

  • 이미지 버전 -> 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
  • flask 서비스 등록 + 실행
sudo systemctl daemon-reload
sudo systemctl enable flask.service
sudo systemctl start flask.service
systemctl is-active flask # active 출력되면 됨
  • curl 설치
    -> curl 명령어: SHELL(커맨드라인 환경)에서 REST API(http) 테스트 하고 싶을 때 이용
sudo apt-get install curl


  • Azure resource 그룹 -> 개요 -> 캡쳐 -> 이미지 만들기

  • 가상머신 확장 집합
    (AWS: Auto Scaling, 쿠버네티스: deployment)

  1. 가상 네트워크 만들기
  2. 네트워크 보안 그룹 2개 만들기
  3. 프론트 가상머신, 백 가상머신 만들기
    -> 백 가상머신에는 공용 IP주소 없음으로!
  4. 프론트 가상머신: 22, 80 포트 열어주기
  5. 가상머신에서 보안 그룹과의 연결 끊고, 각 보안그룹과 서브 네트워크 연결
  6. power shell에서 ssh + front 공용 IP
  7. flask 파일 서비스 등록
  8. curl + back 가상 머신의 Private IP 주소, 5000번 확인!

<OSI 7 Layer Model>

  • 웹개발: 대부분 TCP 사용
  • 영상: 주로 UDP 사용
    -> TCP, UDP: L4(Transport Layer) : Port 구분 가능
  • L2 Switch: MAC address 구분
  • L3: IP 주소 구분

0개의 댓글