AWS 환경에서
- Ubuntu EC2 만든 후
- Flask로 간단한 Web Server 만들어보겠습니다!
1. Ubuntu EC2 만들기
EC2 > Launch Instance 클릭
필수설정은 아래와 같고, 나머지는 필요 것 설정하면 됩니다!
- OS: Ubuntu 22.04LTS
- Network Settings:
- Auto-assign Public IP: Enable (자동 Public IP 할당)
Enable 안할 경우, EC2 생성 후 따로 Elastic IP 할당해줘야 합니다. - Security Group:
22, 80, 5001 Port Open from Anywhere 0.0.0.0/0
보안을 위해서 My IP로 IP 접근제어 할 수 있습니다.
5001은 Flask에서 지정하여 사용하는 포트입니다, 수정 가능합니다.
- Auto-assign Public IP: Enable (자동 Public IP 할당)
2. Flask Web Server 만들기
AWS 콘솔에서, EC2의 "Connect" 버튼 누르면 바로 CLI 접속 가능합니다.
만약 본인 환경에서 WSL, CLI 통해서 접속한다면 SSH 연결 권장합니다.
# 전체적으로 packages 업데이트
sudo apt update
sudo apt upgrade
# Python 환경 설치
sudo apt install python3 python3-pip python3-venv
# Flask 돌아갈 폴더 생성
mkdir flask-app && cd flask-app
# 가상 환경 실행
python3 -m venv venv
source venv/bin/activate
# Flask 설치 및 확인
pip3 install Flask
python3 -m flask --version
# Python 파일 생성
vim myapp.py
: '
from flask import Flask, request
import urllib
from urllib import parse
app = Flask(__name__)
@app.route("/go", methods=["GET"])
def route():
url = request.args.get("url")
if url:
try:
req = urllib.request.Request(url)
with urllib.request.urlopen(req) as response:
data = response.read()
except:
return "Error"
return data
else:
return "Require URL parameter."
app.run(host='0.0.0.0', port=5001)
'
# Python 파일 실행
python myapp.py
# 가상 환경 종료 시
deactivate
myapp.py가 잘 실행되면 CLI에서는 아래와 같이 확인할 수 있습니다.
myapp.py 코드를 그대로 썼다면, 웹 브라우저에 아래와 같이 입력하면 됩니다.
http://<EC2 Public IP>:5001/go?url=
끝!
참고 자료
https://tecadmin.net/how-to-install-flask-on-ubuntu/
https://core-research-team.github.io/2022-11-01/AWS-Instance-Meta-data-SSRF-to-RCE
'IT > Web' 카테고리의 다른 글
Web Server 기본 (Apache & NGINX & MS-IIS) (0) | 2023.11.07 |
---|---|
Web 기초 / 용어 정리 (0) | 2023.11.07 |
댓글