[5주차 목표]
1. Flask 프레임워크를 활용해서 API를 만들 수 있다.
2. '마이 페이보릿 무비스타'를 완성한다.
3. EC2에 내 프로젝트를 올리고, 자랑한다!
웹 서비스 런칭?
내가 만든 프로젝트를 배포하는 것이다. 배포는 누구나 내 서비스를 사용할 수 있게 하기 위한 작업이다.
웹 서비스를 런칭하기 위해서는 클라이언트의 요청에 항상 응답해줄 수 있는 서버가 필요하다.
언제나 요청에 응답하려면,
1) 컴퓨터가 항상 켜져있고, 프로그램이 실행되어야 한다.
2) 모두가 접근할 수 있는 공개 주소인 공개 IP 주소 (public IP Address)로 나의 웹 서비스에 접근할 수 있어야 한다.
서버에 프로젝트를 실행시키고, 외부 접속이 가능하게 하여 내 컴퓨터로 서버를 관리할 수 있다.
AWS라는 클라우드 서비스에서 EC2 (Elastic Compute Cloud) 사용권을 구입하여 서버로 이용한다.
(옛날에는 서버실이 있었는데 요즘은 거의 그런 회사는 없고 대부분 클라우드를 활용한다.)
✋ IP주소와 포트
우리가 접속하는 컴퓨터는 숫자로 되어있는 주소 (IP주소)가 붙어있다. 우리가 아는 URL은 알아보기 쉽게 하는 등의 이유로 IP 주소를 알파벳으로 바꾼 것이다. 이렇게 변환해주는 시스템을 DNS라고 한다.
- IP 주소
: 컴퓨터가 통신할 수 있도록 컴퓨터마다 가지는 고유한 주소. 정확히는 네트워크가 가능한 모든 기기가 통신할 수 있도록 가지고 있는 특수한 번호. 서버는 하나의 주소를 가지고 있다.- 포트 (port)
: 하나의 IP에 여러 포트가 있다. 하나의 포트에 하나의 프로그램을 실행시킬 수 있다.
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2
✋ SSH (Secure SHell protocol)
- 다른 컴퓨터에 접속할 때 쓰는 프로그램. 다른 것들보다 보안이 상대적으로 뛰어나다.
- 접속할 컴퓨터가 22번 포트가 열려있어야 접속가능하다. AWS EC2의 경우, 이미 22번 포트가 열려있다.
ubuntu@~$
로 되어있으면 원격접속 되어있는 것이다.sudo chmod 400 받은키페어를끌어다놓기
ssh -i 받은키페어를끌어다놓기 ubuntu@[퍼블릭 IPv4 DNS]
인스턴스 요약 페이지의 우측 상단에 연결 버튼을 클릭한다.
SSH 클라이언트 탭 클릭한다. terminal에서 3번 4번 실행한다.
# 간단한 리눅스 명령어
ls: 내 위치의 모든 파일을 보여준다. (list)
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다. (make directory)
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다. (change directory)
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다. (superduser do)
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)
chmod : 파일 또는 폴터의 권한을 변경할 때 사용 (change mode)
test.py
만들어서 업로드 후 실행해보기# home 디렉토리로 이동
cd ~
# 실행. 콘솔창에 hellow world!가 뜨는 것을 확인 할 수 있습니다.
python3 test.py
지금 막 컴퓨터를 구매한 상태로 세팅 (업그레이드, DB설치, 명령어 통일 등)을 해줘야 이용할 때 편하다.
initial_ec2.sh
(shell script)을 filezilla로 업로드 후 터미널에서 실행sudo chmod 755 initial_ec2.sh
./initial_ec2.sh
✋ 실제 업무에서는 아래 내용을 인프라 엔지니어 또는 개발 팀장님이 해두는 경우가 많다.
1) 한국시간 세팅
2) 파이썬 (python3 → python)
3) pip (pip3 → pip)
: 패키지 설치할 때 파이참에서는 클릭으로 했는데 이를 대신할 것
4) mongoDB 설치
mongo
명령어로 mongodb에 명령을 내리는 상태로 됨 (거의 안씀)
exit
으로 끝냄
5) 포트포워딩 (80포트 → 5000포트)
: 80포트로 들어오는 요청을 5000포트로 넘겨주는 명령어
connect
→ create
→ 접속 정보 세팅초기 세팅 망한 것 같으면 인스턴스 종료하고 다시 하는 것이 빠름