[19일차] - 가상 머신, 가상 네트워크

btga·2024년 1월 15일

SKT FLY AI 4기

목록 보기
18/31

1. 웹앱 만들기

from flask import Flask
app = Flask(__name__)

@app.route("/")
def home():
    return "Hello, Flask!"
    
if __name__ == '__main__':
    app.run('0.0.0.0', 80, True) # port를 80으로
  • github/flask/dockerfile 수정
FROM python:3.8-slim-buster

WORKDIR /app

COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt

COPY . .

EXPOSE 80 # port 80으로

CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]
  • github/flask/workflow 파일 변경: 태그 수정
name: Python application

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: "3.8"
    - name: Display Python version
      run: python -c "import sys; print(sys.version)"
    - name: Build & push Docker image
      uses: mr-smithers-excellent/docker-build-push@v5
      with:
        image: ktde24/github-actions-app
        tags: ${{ github.sha }}, v1.0.0  # 빌드 할 때마다 생성되는 해시값을 태그에 지정
        registry: docker.io
        username: ktde24
        password: dckr_pat_t6_KOi8zUOjsYxUdRhadWfSzSO4

-> docker hub 들어가면:


2. Cloud Computing

인터넷 기술을 활용하여 다수에게 높은 확장성을 가진 자원들을 서비스로 제공하는 컴퓨팅의 한 형태

  • Cloud: 가상의 데이터센터를 구축 + 운영

  • 가상 머신(Infrastructure as a Service) 생성 시, 가상 네트워크도 만들어짐
    -> 망 안으로 들어가기 위해, 인바운드 포트 설정 필요

  • SaaS > PaaS > laaS


3. Azure

참고: https://learn.microsoft.com/ko-kr/azure/architecture/aws-professional/services

  1. 지역쌍(Pairs) 사용

    • 각 Azure 지역은 다른 지역과 쌍으로 연결
    • 일부 서비스는 쌍으로 연결된 지역으로의 자동 복제 제공
  2. 구독(Subscription)

    • Azure 비용 관리 위한
  3. cloud shell

  • Azure CLI 설치
    -> 확인: 로컬 Powershell에서 az 명령어 실행

4. 실습1 - 윈도우 가상머신


-> 지역: 미국으로 해보기
-> 가상 머신을 1개만 만들어도, Private Network는 생성됨

  • 원격 데스크톱(rdp)
    -> IP 주소 입력, 로그인 후 연결

  • IIS 설치

Install-WindowsFeature -name Web-Server -IncludeManagementTools
  • 네트워킹 -> 인바운드 포트 규칙 추가 -> HTTP, 80번 열어주기
    -> 공용 IP 주소로 접속

5. 실습2- Ubuntu 가상머신 만들기

  • ssh 접속
  • Update
sudo apt-get update
  • nginx 설치
sudo apt-get install nginx

6. 실습3 - 가상 네트워크 만들기

  • AWS에서 가상 네트워크 만들 때: 지역 지정 따로 X(default VPC가 지정되어 있음)

  • IP 주소(32bits) -> Net ID + Host ID

  • IP 주소 변경 사이트: https://www.ipaddressguide.com/cidr

  • 가상 네트워크 1개, 가상 머신 2개 만들고 각 공용 IP 주소로 원격 데스트톱 연결

  • powershell에서 서로의 private IP 주소로 ping 실행 시, 막힘

# 2개의 powershell 모두에서 이 코드 사용
New-NetFirewallRule –DisplayName "Allow ICMPv4-In" –Protocol ICMPv4
  • ping + Private IP주소 -> 같은 네트워크 망에서 서로 통신 가능
    -> public IP 주소로는 불가!

0개의 댓글