① 컴퓨터가 항상 켜져있고 프로그램이 실행되어 있어야하고,
② 모두가 접근할 수 있는 공개 주소인 공개 IP 주소(Public IP Address)로 나의 웹 서비스에 접근할 수 있도록 해야한다.
<IP 주소와 포트>
- 우리가 접속하는 컴퓨터는 숫자로 되어있는 주소(IP 주소)가 붙어있다. 우리가 아는 URL 은 우리가 알아보기 쉽게하는 등의 이유로 IP 주소를 알파벳으로 바꾼 것이다. 이렇게 변환해주는 시스템을 DNS 라고 한다.
EX)
URL = http://google.com
↓ DNS (Domain Name System)
IP = http://172.217.25.14:80
(여기서 Port =
:80
에 해당)✅ IP 주소 (줄여서 IP)
: 컴퓨터가 통신할 수 있도록 컴퓨터마다 가지는 고유한 주소라고 생각하면 된다. 정확히는 네트워크가 가능한 모든 기기가 통신할 수 있도록 가지고 있는 특수한 번호이다. 서버는 하나의 주소를 가지고 있다.
✅ 포트(port)
: 하나의 IP에 여러 포트가 있다. 하나의 포트에 하나의 프로그램을 실행시킬 수 있다.
EC2 콘솔페이지
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2
중지 또는 종료하는 법. 무료 기간(1년) 후 결제가 되기 전에, 이렇게 종료하기!!
✔ 대상 인스턴스에 마우스 우클릭 → '인스턴스 상태' 클릭
✔ 중지 또는 종료 중 하나를 클릭하면 명령을 실행한다.
- git bash를 실행하고, 아래를 입력하기
ssh -i 받은키페어를끌어다놓기 ubuntu@AWX에적힌내아이피
- EX) 아래와 비슷한 생김새!
ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20
- Key fingerprint 관련 메시지가 나올 경우 Yes 입력하기
- git bash를 종료할 때는 exit 명령어를 입력하여 ssh 접속을 먼저 끊어주기
<가장 많이 쓰는 명령어>
ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것][붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)
EX)
test.py
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/593aa12f-0c0440dc-957340e1b6
아주 간단하게, 이 정도만 적어보자.
그리고 적당한 곳에 파일을 저장해보자.
print('hello sparta!!')
myec2
입력(HOST: 내 EC2서버의 IP // User: ubuntu로 입력)
home 디렉토리로 이동
cd ~
실행. 콘솔창에 hellow world!가 뜨는 것을 확인 할 수 있다.
python3 test.py
업그레이드, DB설치, 명령어 통일 등의 세팅
을 해줘야 본격적으로 이용할 때 편리하다.EC2 한방에 세팅하기
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d3623fe88b1745d1-bb70304e88dfb537/initial_ec2.sh
✔ filezilla로 업로드하고, git bash(또는 터미널)에서 아래 코드를 차례대로 입력해주기
✔ 3분 정도 기다리면 모든 세팅이 완료된다.
sudo chmod 755 initial_ec2.sh
./initial_ec2.sh
python
이라고 입력해도 가능!
python test.py
- EC2 컴퓨터의 시간대를 한국으로 맞추는 명령어
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
- python3 명령어를 python으로 사용할 수 있게 하는 명령어
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
1) pip3 설치
2) pip3 명령어를 pip으로 사용할 수 있게 하는 명령어
* 한 줄 씩 복사 붙여넣기!
pip3 설치
sudo apt-get update
sudo apt-get install -y python3-pip
pip3 대신 pip라고 입력하기 위한 명령어
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /e
sudo apt-get update
sudo apt-get install -y mongodb-org
✔ 실행. 아무 반응이 없으면, 잘 실행된 것!
✔ 리눅스는 보통 잘 되면 아무것도 안나온다.
sudo service mongod start
mongoDB를 외부에 열어주기 전에, 접속에 필요한 아이디와 비밀번호를 세팅해보자!! (설정 안 하면 누구나 DB정보를 볼 수 있다는...)
mongo
좌측에 >
표시가 나오면 성공적으로 MongoDB에 접속한 것이다!
다음 명령어를 순차적으로 입력하기 (test, test 자리에 내가 넣고 싶은 아이디/비밀번호를 넣으면 된다.(영어로))
✔ admin으로 계정 바꾸기
use admin;
✔ 계정 생성하기
db.createUser({user: "test", pwd: "test", roles:["root"]});
그 후
✔ 나오기
exit
✔ MongoDB 재시작
sudo service mongod restart
💡 mongoDB는 디폴트로 내부에서만 접속을 허용하고 있다. 이 작업은 외부에서 접근이 가능하도록 잠금을 풀어는 것이다.
a
를 눌러야 입력 모드가 되고, :wq
를 눌러야 저장하고 나올 수 있다.
sudo vi /etc/mongod.conf
sudo: 관리자(SuperUser) 권한으로 다음을 실행
=> "관리자 권한으로 /etc 폴더 아래 mongod.conf 파일을 Vim으로 켜줘!"라는 뜻
입력 모드 전환
a
bindIp:
내용을 0.0.0.0
으로security:
내용을 authorization: enabled
로 바꾸기내용 저장하고 에디터 종료하기. esc 누르고 다음 입력.
:wq
재시작
sudo service mongod restart
💻 좌측 상단 File 아래에 위치한 아이콘(컴퓨터모양) 클릭
↓ Create
클릭
↓ 접속 정보 세팅하기
↓ 상단 Authentication 탭 클릭
① Perform authentication 체크박스 클릭
② 생성한 계정의 아이디와 비밀번호 입력 후,save
클릭
- 80포트로 들어오는 요청을 5000포트로 넘겨주는 명령어
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
app.py
파일 준비from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'This is Home!'
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
# 실행
python app.py
🎯 실행시키면, 'flask 패키지가 없다'는 에러가 난다. 패키지를 설치해야 한다.
💡 file → setting → ..에서
+
버튼 누르고 설치했던 작업을, 명령어로 해야한다.
pip install flask
python app.py
http://[내 EC2 IP]:5000/
🎯 아직 작동하지 않는다. AWS에서 약간의 설정이 더 필요하다.
→ 그래서 AWS EC2 Security Group에서 인바운드 요청 포트를 열어줘야 한다.
① 80포트: HTTP 접속을 위한 기본포트
② 5000포트: flask 기본포트
③ 27017포트: 외부에서 mongoDB 접속을 하기 위한 포트
app.py
파일을 수정하고, 다듬어서 올리면 진짜 프로젝트가 된다.