AWS EC2

newhyork·2022년 8월 30일
0

make instance


  • AMI(Amazon Machine Image)로는, ubuntu 20.04 LTS 버전을 선택한다.
    • (참고로, Python 3.8.10 버전이 기본적으로 설치되어있다.)
  • 인스턴스 유형은, Free Tier 이므로 t2.micro를 선택한다.

key pair

  • 키 페어를 사용함으로써, 인스턴스에 안전하게 연결할 수 있다.
  • 해당 인스턴스에 접속할 때마다 필요하다.
  • .ppk로 만들고, PuTTY를 통해 SSH 프로토콜로 인스턴스에 접속한다.
  • (미리 만들어두고, 사용한다)

network setting

  • security group
    • 인바운드 규칙
      • 22번
        - SSH 프로토콜로 PuTTY를 통해 인스턴스에 접속할 것이므로,
        내 IP 주소에 대해 열어둔다.
      • 5000번
        - Flask 서버에 대한 것으로,
        어떤 IP주소의 호스트로부터 요청을 받을 것인지 설정한다.
        - 일반적으로는 0.0.0.0/0 및 ::/0으로, 모든 IP주소에 대해 열어두지만
        공부 목적으로 나만 사용할 테니, 내 IP주소에 대해서만 열어둔다.
      • 80번(Nginx), 3306번(MySQL) 등도 있다.
    • 아웃바운드 트래픽은 딱히 필요한 경우가 아니라면,
      기본 설정되어 있는 0.0.0.0/0으로 둔다.
    • (미리 만들어두고, 사용한다)

instance storage

  • 세부적인 설정은 뒤로 하고, 만약 이후에 스냅샷이 생성된다면,
    혹시 모를 과금을 방지하기 위해 삭제하도록 한다.

access remote host


  • PuTTY를 통해 SSH로 접속한다.
  • ubuntu AMI를 사용하였으므로, login as: ubuntu를 입력한다.

run simple Flask APP server


  • 패키지 업데이트 및 설치
    • sudo apt update: OS에서 사용 가능한 패키지들의 버전을 업데이트 한다.
      (해당 버전들로 설치까지 하려면, upgrade로 할 수 있다.)
    • sudo apt install python3-pip: Python3와 달리, pip3는 기본적으로 설치되어있지 않다.
    • sudo apt insatll python3.8-venv: Python3와 달리, venv를 위해 따로 설치해줘야 한다.
  • clone remote repository
    • clone 하는 방법에는 여러 가지가 있지만, 여기선 간단히 HTTPS로 한다.
      • username은, Github에 가입한 계정의 이메일 ID가 아니라
        Account의 username이다. (즉, github.com/~)
      • password로는, 계정 비밀번호 입력을 통한 인증은 더 이상 사용할 수 없다.
        따로 Github의 Personal access token를 생성하여 password로 이용할 수 있다.
  • run Flask APP
    • venv를 실행하고, 필요한 패키지(flask)를 설치 한다.
    • host IP주소를 '0.0.0.0'으로 하고 APP을 실행한다.
    • 로컬에서, 인스턴스 public IP주소:5000를 통해 웹 사이트에 접속할 수 있게 된다.
      • Flask 실행 시 Running on http://~:5000 문구는,
        인스턴스의 private IP주소 및 localhost이다.
    • nohup&으로, 백그라운드 실행 및 로그를 남길 수 있다.

manage instance


  • Elastic IP주소
    • Elastic IP주소를 설정하지 않으면,
      인스턴스를 중지했다가 다시 실행할 때 public IP주소가 변경된다.
    • Free Tier를 사용함에 따라, 과금이 되지 않게 주의해야 한다.

0개의 댓글