AWS ec2를 이용하여 사이트 배포하기

RobinChoi·2022년 1월 5일
0

웹개발 다이어리

목록 보기
1/1
post-thumbnail
  1. 아마존 서버 구매하기

아마존 계정 가입 후 인스턴스 창 > AMI 선택(우분투) > 키페어 파일 저장 (터미널 연결 시 필요 = 인스턴스 생성 완료)

인스턴스 중지 & 재부팅 : 서비스 잠시 중지 & 재부팅
인스턴스 종료 : 인스턴스 자체의 서비스 종료 (서비스 반납)

  1. 터미널에서 아마존 서비스 설치

$ sudo chmod 400 키페어(드래그&드롭)
$ ssh -i 키페어 ubuntu@퍼블릭 IPv4주소

  1. FileZilla로 아마존 서비스 연결

Site Manager > 프로토콜 : SFTP > 호스트 (아마존: ip, default port: 22), 키파일 설정 후 커넥트

  1. 필요 파일 자동 세팅

    sudo chmod 755 initial_ec2.sh

실무에서는 이미 회사 내에서 세팅 되어 있는 경우가 많음
시간, 파이썬, pip, mongodb 세팅

시간 : sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
python : sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
pip : sudo apt-get update
sudo apt-get install -y python3-pip
sudo update-alternatives --install /urs/bin/pip pip /usr/bin/pip3 1

몽고DB : Robo3T로 접속 계정 생성 후 접속
포트포워딩 :
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

  1. AWS 내 패키지 필요 패키지 설치

    pip install flask

  2. AWS에서 포트 열어주기
    AWS ec2 관리 콘솔 > 보안 그룹 > 인스턴스 클릭 > Edit inbound rules > 포트 추가 (전부 anywhere)

    80포트 : HTTP 접속을 위한 기본 포트
    5000포트 : flask 기본 (app.py 시작 포트 참고)
    27017포트 : 외부에서 DB몽고 접속 시 필요한 포트

  3. Robo 3T db 연결
    커넥션 생성 > connection 내의 AWS ip & 포트넘버(27017 입력), Authentication에서 username & password 입력 후 저장.
    ** 해당 인증 정보는 app.py의 클라이언트 comm.baseObject로 변경 필수

  4. nohup 설정하기

    nohup이란? SSH 접속과 관계없이 서버 동작할 수 있게 하는 설정
    명령어 : nohup python app.py & (서버 종료 후 다시 명령 시 서버 재동작)
    서버 종료를 원할때?
    해당 서버 찾기 : ps -ef | grep 'app.py'
    서버 종료 : kill -9 [pid값]

  5. 도메인 연결
    사용하고자 하는 도메인 호스팅 업체 > 원하는 도메인 구입/ 도메인 보유 시 도메인 연결 진입 > DNS 설정

    호스트 이름에 @, iP주소에 AWS ec2 ip 주소 입력

profile
Connecting the dots

0개의 댓글