[항해99] 사전준비 - 웹개발 종합반 5주차

박하린·2021년 9월 12일
0

항해99

목록 보기
4/27

AWS

내 프로젝트를 서버에 올리기

  • 웹 서비스를 런칭하기 위해 클라이언트의 요청에 항상 응답해줄 수 있는 서버에 프로젝트를 실행시켜주어야 한다.
  • 언제나 요청에 응답하려면,
    1) 컴퓨터가 항상 켜져있고 프로그램이 실행되어 있어야하고,
    2) 모두가 접근할 수 있는 공개 주소인 공개 IP 주소(Public IP Address)로 나의 웹 서비스에 접근할 수 있도록 해야함
  • 외부 접속이 가능하게 설정한 다음에 내 컴퓨터를 서버로 사용할 수도 있다.

AWS 라는 클라우드 서비스에서 편하게 서버를 관리하기 위해서 항상 켜 놓을 수 있는 컴퓨터인 EC2 사용권을 구입해 서버로 사용했다

  1. AWS 서버 사기
  • EC2 콘솔페이지 접속
  • Lanch instance 클릭
  • Ubuntu Server 18.04 LTS(HVM), SSD Volume Type - 64비트(x86) 선택
  • 검토 및 런치
  • 키페어 저장 후 런치
  1. EC2 접속하기
  • 방금 받은 내 Keypair의 접근 권한을 바꿔주기
sudo chmod 400 받은키페어를끌어다놓기
  • SSH로 접속하기
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
  1. 서버 세팅하기
  • filezilla 실행
  • new site 클릭 - myec2 만들기
  • 프로토콜 : SFTP
    호스트 : AWS에 적힌 내 IP
    로그온 유형 : 키파일
    사용자 : ubuntu
    키 파일 : keyfair파일 위치
  • connect
  1. EC2 명령어 세팅하기
  • Filezilla에서 sparta 폴더에 initial_ec2.sh 업로드
  • sudo chmod 755 initial_ec2.sh 로 환경 세팅
  1. flask 서버 실행해보기
pip install flask
python app.py
  1. AWS에서 포트 열어주기
  • AWS EC2 Security Group에서 인바운드 요청 포트를 열어줘야 한다.
  • 내 EC2 관리 콘솔 들어가기
  • 보안 그룹 - 인바운드 규칙 편집 클릭
  • 세 가지 포트 추가
    • 유형 : 사용자 지정 TCP
      소스 : Anywhere-IPv4
    • 80포트 : HTTP 접속을 위한 기본 포트
    • 5000포트 : flask 기본 포트
    • 27017포트 : 외부에서 mongoDB 접속하기 위한 포트
  • http:// 내 IP주소:5000 으로 접속
  • 서버 종료하려면 터미널에서 ctrl + c로 종료
  1. robo3T 연동
  • create 클릭
  • Connection 세팅
    • Type : direct connection
    • Name : myec2
    • address : 내 IP 주소
  • Authentication 세팅
    • Database : admin
    • Username : test
    • Password : test
  • test 후 connect
  • app.py 파일 수정
client = MongoClient('mongodb://test:test@localhost', 27017)
  • filezilla 에 업로드 후 터미널에서 python app.py 로 실행
  1. 포트 포워딩
  • 서비스를 실행하려면 주소 뒤에 :5000을 붙여줘야하는데 이걸 떼려면?
    • http 요청은 80포트가 기본포트이기때문에 :80을 붙여주지않아도 정상적으로 접속된다.
    • 80포트로 오는 요청을 5000포트로 전달하는 포트포워딩 설정을 해주면 뒤에 :5000을 붙이지 않고 IP주소만 입력해도 자동으로 연결되도록 할 수 있다.
  1. nohup 설정하기
  • SSH(원격접속) 끊어도 서버가 돌아가게 하기
# 아래의 명령어로 실행하면 된다
nohup python app.py &
  • 서버 강제 종료하기
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'

# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]

# pid값 : ubuntu 뒤에 나오는 5자리 숫자 (위에서 두개)
  1. 도메인 구입하기
  • 가비아 회원가입하고 도메인 구입
  • DNS 관리툴
  • 설정 - 레코드 추가
    • 호스트 : @
    • IP 주소 : 내 IP주소
  • 내 도메인으로 접속
  • aeio.shop

og 태그

  • 내 프로젝트를 카톡/페북/슬랙에 공유했을때 위의 미리보기같이 예쁘게 볼 수 있도록 og태그를 넣어준다.
<meta property="og:title" content="내 사이트의 제목" />
<meta property="og:description" content="보고 있는 페이지의 내용 요약" />
<meta property="og:image" content="{{ url_for('static', filename='ogimage.png') }}" />
profile
깃허브: https://github.com/khakaa

0개의 댓글