AWS 구동해보기 (수업내용 정리)

귀찮Lee·2022년 3월 28일
0
post-custom-banner

EC2 서버 구매하기

  1. 인스턴스 시작
  2. Ubuntu Server 18.04 LTS 선택
    Ubuntu가 대중적이어서 자료가 많음
  3. Select an existing keypair or create a new key pair
    서버 접속할 때 필요한 키 / 없으면 새로 발급할 것
    다시 발급해 주지 않으니 주의!

◎ AWS 포트 열어주기

  1. EC2 관리 콘솔에서 보안 > 보안 그룹(Security Group) 들어가기
  2. 해당 보안그룹을 클릭
  3. 인바운드 규칙 편집(Edit inbound rules)을 선택
  4. 필요한 포트를 추가함
    → 80포트: HTTP 접속을 위한 기본포트
    → 5000포트: flask 기본포트
    → 27017포트: 외부에서 mongoDB 접속을 하기위한 포트

◎ 간단한 리눅스 명령어

ls: 내 위치의 모든 파일을 보여준다.

pwd: 내 위치(폴더의 경로)를 알려준다.

mkdir: 내 위치 아래에 폴더를 하나 만든다.

cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.

cd .. : 나를 상위 폴더로 이동시킨다.

cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기

rm -rf [지울 것]: 지우기

sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)

◎ EC2 접속하기

ssh -i /path/XXXXXX.pem ubuntu@XXX.XXX.XXX.XXX

◎ EC2 세팅하기

  1. filezilla 설정
    →Protocol : SFTP
    →Host : EC2 퍼블릭 IPv4 주소
    →Port : 22
    →Logon Type: Key file
    →User : ubuntu
    →Key file : key pair 파일 선택

  2. 미리 만들어놓은 shellscript를 통해 설정
    → filezilla를 통해 initial_ec2 올리기
    → 해당 명령어 실행

sudo chmod 755 initial_ec2.sh
./initial_ec2.sh
  • initial_ec2
# UTC to KST 시간대 설정
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# python3 -> python 
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

# pip3 -> pip
sudo apt-get update
sudo apt-get install -y python3-pip
pip3 --version
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

# port forwarding 80번 포트 -> 5000번 포트
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

# MongoDB - install
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org

sudo mkdir -p /data/db

# MongoDB - run
sudo service mongod start
sleep 7
netstat -tnlp

# MongoDB set user, set conf file
# MongoDB 유저, 비밀번호 설정
mongo admin --eval 'db.createUser({user: "test", pwd: "test", roles:["root"]});'
sudo sh -c 'echo "security:\n  authorization: enabled" >> /etc/mongod.conf'
sudo sed -i "s,\\(^[[:blank:]]*bindIp:\\) .*,\\1 0.0.0.0," /etc/mongod.conf

sudo service mongod stop
sudo service mongod start
sleep 5
netstat -tnlp

◎ AWS - 배포하기

  • robo3T로 접속하기
  • filezilla로 업로드하기 (Drag & Drop)
    → 접속하기 전 pp.py 파일의 pymongo 세팅 부분을 바꿔주어야 함
client = MongoClient('mongodb://test:test@localhost', 27017)
  • pip로 패키지 설치하기
pip install flask pymongo
  • app.py 실행하기 // 원격 접속하는 동안만 실행가능
# app.py가 있는 파일에서
python app.py
  • nohup 설정하기 // 원격 접속을 꺼도 실행됨
# 실행 명령어
nohup python app.py &

# 중단 명령어
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'
# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!
post-custom-banner

0개의 댓글