본문 바로가기

DevOps

[AWS]쉽고 간단하게 서버 만들기 - EC2, Python, Flask

ㅇㅇㅇ


1. EC2 인스턴스 생성하기

  • 원하는 리전(Region)에 인스턴스 시작
  • AMI 선택
    - 원하는 이미지 선택하면되며, 리눅스/ubuntu/수세/레드헷/windows  등 다양합니다.

지역선택 중요(통신속도 고려), 우선 공짜 프리티어 선택

  • 인스턴스 유형 선택



  • (옵션) 태그 지정
  • 보안그룹 구성
    - 기본으로 만들 때, 소스(0.0.0.0) 디폴트여서 전체 open 되어있다는 경고가 있는데,  접속하고자 하는 PC IP 지정해도 됨
    - 보안그룹은 인스턴스 생성 이후에도 수정 가능합니다.
  • 키 페어 선택/생성 (PEM 파일 생성)
    - EC2 접속을 Key Pair ( AWS에 퍼블릭키, 접속PC에 프라이빗키)를 생성하여 접속 보안을 강화 ( 키 페어 사용을  권장 )
    - PEM (Privacy Enhanced Mail) : 일반적으로 웹서버, SSH 에 사용가능하며 안전한 접속을 보장합니다.
    - ID/PASS는 상대적으로 유출이 가능하지만, Key는 해당 Key 파일이 있어야만 가능하므로 훨씬 강력 합니다.
    - 키 페어 방법은  "새로운 키페어 생성" 또는 "기존 키페어 사용" 중 원하는 옵션을 사용합니다.
         . 새로운 키페어 :  .pem 파일은 새롭게 만들어서 인턴스에 등록 합니다.
         . 기존 키페어 : 이미 만들어진 파일 .pem 을 사용하여 인스턴스에 등록 합니다.
  • 인스턴스 생성 및 확인

2. (옵션) Elastic IP 생성 및 연결하기

  • 서버로써 동작 하기 위해서는 고정된 IP가 사용하는데 편리하여, Elastic IP 할당을 통해 고정IP를 지정합니다.
  • 프리티어에 Elastic IP 1개 까지는 공짜, 하지만 EC2 미 할당하면 과금 되니까 주의하세요.

3. ppk 파일 생성하기

  • PuTTy Private Key 로 Putty 로 접속하고자 할 때 필요한 파일 입니다. ( Putty 접속을 안하려면 미 생성 해도 됩니다.)
  • ppk <-> pem 간의 변환을 별도 프로그램을 활용 합니다.
  • ppk 생성 방법은 구글 검색하면 많이 있어서 패스 할께요.
    https://torbjorn.tistory.com/496

4. Putty로 EC2 서버 접속하기

 
  • putty 접속 시 login : 사용자 이름에는 AMI의 기본 사용자 이름을 입력합니다.
    • Amazon Linux 2 또는 Amazon Linux AMI의 경우 사용자 이름은 ec2-user
    • CentOS AMI의 경우 사용자 이름은 centos 또는 ec2-user
    • Debian AMI의 경우 사용자 이름은 admin
    • Fedora AMI의 경우 사용자 이름은 fedora 또는 ec2-user
    • RHEL AMI의 경우 사용자 이름은 ec2-user 또는 root
    • SUSE AMI의 경우 사용자 이름은 ec2-user 또는 root
    • Ubuntu AMI의 경우 사용자 이름은 ubuntu
    • Oracle AMI의 경우 사용자 이름은 ec2-user
    • Bitnami AMI의 경우 사용자 이름은 bitnami

 

 

5. Python 환경 구성

  • 기존 서비스 업데이트 및 업그레이드
    현재 설치 되어있는서비스를 최신으로 update 수행 합니다.
    sudo apt-get update
    sudo apt-get upgrade
  • Python 설치
    파이썬은  최신 버전을 확인해서 원하는 버전을 설치하면 됩니다.  (여기에서 버전 확인)
    최근 3.10이 막 나왔지만, 안정화 단계도 아닐거라 3.9 를 설치 해보겠습니다.

    sudo apt-get install python3.9
  • 도구 설치
    파이썬 라이브러리 설치를 위해,  pip 와 가상환경 지원을 위한 패키지를 설치 합니다.
    #pip install
    sudo apt-get install python3-pip
    
    #virtualenv install
    sudo apt-get install virtualenv

6. Flask 설치 

필자는 Python을 통한 간단한 Framework 으로 Flask를 설치하지만, 필요하면 Django를 설치 해도 됩니다.

  • 가상 환경 생성
    virtualenv [가상환경이름]
    $ virtualenv flask
     

  • 가상환경 실행
    생성된 가상환경 디렉토리로 이동 후  가상환경 실행 합니다.
    # 가상환경으로 이동
    $ cd flask
    
    # 가상환경 실행
    $ source ./bin/activate
    가상환경이 실행되면, command Line이 바뀜


  • Flask 설치
    $ pip install flask



  • 서버 코드(myapp.py) 작성
    flask 서버 구동을 위해, myapp.py 를 flask 폴더에  생성 합니다.
    [myapp.py]
    from flask import Flask
    
    app=Flask(__name__)
    
    @app.route('/')
    def hello():
     return 'Hello Jason World!'
    
    if __name__=='__main__':
     app.run(host='0.0.0.0', port=8080, debug=True)


  • 서버 실행 및 점검
    $ python myapp.py
    flask 서버가 실행됨
    myapp.py 정상 결과 출력