Moon Blog

사전학습 4주차 - AWS / 백그라운드 실행 / 도메인 연결 본문

신한투자증권 프로 디지털 아카데미

사전학습 4주차 - AWS / 백그라운드 실행 / 도메인 연결

문블룸 2023. 1. 8. 00:18

- AWS(Amazon Web Services)

아마존에서 제공하는 클라우드 서비스

네트워킹을 기반으로 가상 컴퓨터와 스토리지, 네트워크 인프라 등 다양한 서비스 제공

 

- AWS 인스턴스 설정

제품 - 컴퓨팅 - EC2(가상 컴퓨터 환경) - 인스턴스 시작

인스턴스 시작(설정 화면)

위와 같은 설정 창이 나오고 원하는 설정을 하면 됨 (초보자는 프리 티어만 이용)

 

키 페어
새 키페어 생성

새 키 페어를 생성하는데 이때 생성한 키 페어는 나중에 사용해야 하기에 보관을 잘 해야 함

키 파일 형식은 원하는 형식 사용하면 됨

 

네트워크 설정

네트워크 설정 시 인터넷에서 HTTPS 트레픽 허용, HTTP 트레픽 허용을 체크해줘야 함

이후 인스턴스를 시작하면 기본 설정은 끝

 

- Filezilla

Filezilla 라는 오픈 소스 크로스 플랫폼을 활용하여 EC2의 파일을 관리 할 수 있다

파일질라 실행 화면

파일 바로 아래 위치한 사이트 관리자 열기 클릭

사이트 관리자 창

새 사이트를 누르고 원하는 이름으로 사이트를 생성함

프로토콜은 SFTP - SSH File Transfer Protocol 선택

호스트는 생성한 인스턴스의 퍼블릭 IPv4를 복사해서 넣음

로그온 유형은 키 파일 선택

사용자는 ec2-user

키 파일은 위에서 생성한 키 파일을 찾아보기로 선택하고 연결을 실행하면 완성

 

기본 화면은 로컬 사이트와 리포트 사이트 2개로 분리되어 있음

원하는 파일을 로컬에서 리포트로 옮기면 복사 됨

 

 

- 개발환경 설정

생성한 인스턴스의 리눅스 환경에서 mongoDB를 활용하기 위한 설정으로 

sudo pip3 install flask Flask-PyMongo 

 

- 아마존 리눅스 mongodb 연결

https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-amazon/

 

Install MongoDB Community Edition on Amazon Linux — MongoDB Manual

Docs Home → MongoDB Manual MongoDB AtlasMongoDB Atlas is a hosted MongoDB service option in the cloud which requires no installation overhead and offers a free tier to get started.Use this tutorial to install MongoDB 6.0 Community Edition on Amazon Linux

www.mongodb.com

1단계) 필요 패키지 설치

리눅스 터미널에서 sudo vim /etc/yum.repos.d/mongodb.repo 입력

해당 링크에서 configure the package management system 첫 부분 복사

vim 환경에서 i 입력 (Insert 상태)  -> ctrl+shift+v로 붙여넣기 후 -> Esc 누르고 : 입력 -> wq 입력 후 Enter (파일 저장 후 종료)

 

+)

만약 vim 작성 시 뭔가 실수하여 작성된 파일이 이상하게 되어 Found a swap file by the name ~ 이라는 오류문이 나옴

(아는거라고 나대다가 실수해서 오류 발생함) 

 

해결방법1

  1. Q 또는 A를 눌러 vim을 빠져나옴
  2. ps를 눌러 vi나 vim이 실행 상태에 있는지 확인
  3. 만약 실행 중이라면, kill 명령으로 통해 해당 프로세스를 종료 (ps -ef 로 실행중인 파일 확인)
  4. 다시 vim을 들어가게 되면, swap파일을 삭제할 수 있는 창이 뜸 여기서 D를 눌러 해당 파일을 삭제

해결방법2

  1. Q 또는 A를 눌러 vim을 빠져나감
  2. ls -al 명령을 통해 swap(.swp) 파일을 찾음
  3. swp파일을 삭제함

https://dream-reverseengineer.tistory.com/entry/vivim-Found-a-swap-file-by-the-name-2%EA%B0%80%EC%A7%80-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95

 

2단계) 몽고DB 설치

리눅스 터미널에서 sudo yum install -y mongodb-org 입력

 

3단계) 몽고DB 실행

리눅스 터미널에서 sudo systemctl start mongod 입력하여 실행 (아무 문구 안뜸)
리눅스 터미널에서 sudo systemctl status mongod 입력 (실행 상태 확인) -  active (running) 뜨면 정상

 

4단계) 사이트 실행 확인

리눅스 터미널에서 sudo python3 파일명.py 입력

인스턴스의 퍼블릭 IPv4 주소 복사하여 주소창에 붙여넣고 실행

프로그램 종료는 ctrl + c

 

- 백그라운드 실행

인스턴스 터미널 창을 끄더라도 실행될 수 있게 백그라운드에서 실행이 되어야 함

sudo nohup python3 파일명.py & 입력 

리눅스에서 &는 백그라운드 작업을 실행하게 함

nohup 없이 &만 사용할 경우 터미널 세션이 끊기면 백그라운드 작업도 같이 종료됨

그러므로 nohup을 사용하여 종료되어도 프로세스가 사라지지 않게 함

 

- 실행중인 백그라운드 종료

ps -ef | grep python3 입력 -> python3가 들어있는 실행중인 백그라운드 파일 보여줌

kill -9 해당 pid 번호 

 

리눅스 명령어에 대해서 알고 있으면 쉽게 진행 가능함