on
[TIL] 9.16 - 스파르타 내일배움캠프 4일차(AWS 서버 구매 및 배포/ AWS...
[TIL] 9.16 - 스파르타 내일배움캠프 4일차(AWS 서버 구매 및 배포/ AWS...
9.16
웹 프로그래밍 A-Z기초 5주차
1) AWS 서버 구매하기
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2
1. aws 에 들어가 로그인을 한 후 인스턴스를 클릭힌다.
[인스턴스] - [인스턴스 시작] - 3번째 거 (ubuntu server 18.04)
인스턴스 : 서버 하나하나
인스턴스 ubuntu Server 18.04 선액
오픈소스 라이브러리인 리눅스 기반 서버 Ubuntu를 사용한다. (무료 라이센스이기 때문)
2. T2 micro 선택
T2 micro 선택 실행 키페어 선택 (생성시 RSA) : keypari는 잃어버리면 찾을 수 없으니 잘 보관하자
인스턴스를 보면 서버가 하나 실행중인 것을 볼 수있다.
t2 micro 서버는 해당된 크기만큼 1년간 무료로 사용이 가능하다고 한다. (하지만 혹시 모르니 잘 꺼두자)
3. AWS 인스턴스 서버 종료하기
인스턴스 종료 : 다시 반납 (아예 종료)
인스턴스 중지 : 잠시 컴퓨터 종료시키기
인스턴스 재부팅 : 재부팅
4. 로컬 PC에서 원격으로 서버 접속하기
git Bash 에서 접속
//ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피(인스턴스 퍼블릭 ipv4 주소) ex) ssh -i /path/my-key-pair.pem [email protected]
접속 완료 상태
filezila
파일질라란, FTP(File Transfer Protocol) 프로그램, 즉 파일 전송 프로그램 입니다.
파일질라는 FTP, SFTP, FTPS를 지원한다. FTP : 파일 전송 프로트콜로, 프로코톨이란 컴퓨터가 서로 통신하기위한 통신 규약입니다. 즉 FTP는 컴퓨터끼리 파일을 전송할 때 사용하기위한 약속이라고 볼 수 있습니다. SFTP : (SSH FTP)를 말합니다. FTP를 이용하여 클라언트와 서버사이에 파일을 주고 받을 수 있습니다. SFTP 란 SSH(셸) 데이터 스트림을 통해 보안등급을 높인 파일 전송 프로토콜입니다.
즉, 파일질라는 이런 통신 프로토콜(FTP, SFTP)를 제공함으로써 이를 이용하여 보다 쉽고 직관적으로(GUI 지원) 클라이언트와 서버 사이에 파일을 주고 받을 수 있습니다.
그럼 어디에 파일질라(FileZila)를 사용하나 ? ?
1. AWS 서버에 파일 업로드 하기
갑자기 파일질라가 나온 이유는 바로, 위에서 구매한 AWS 서버(인스턴스)에서 제공받은 키페어가 SSH이기 때문에 파일질라와 이 키페어를 이용해 쉽게 서버에 파일을 올릴 수 있습니다.
2. FileZila 사용법
[파일질라 실행 후 설정] - [1번 클릭] - [site 생성 (New site)] - [드로그 앤 드랍으로 파일 전송]
Protocal : SFTP Host : aws 내 서버(인스턴스) 퍼블릭 IP 주소 Logon type : key file
세팅 후 화면
3) AWS 서버 사용하기
1. aws 서버 환경 세팅 명령어들
한국시간 세팅 : EC2 컴퓨터의 시간대를 한국으로 맞추는 명령어
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime 파이썬 (python3 → python) : python3 명령어를 python으로 사용할 수 있게 하는 명령어 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10 pip (pip3 → pip) pip3 설치 pip3 명령어를 pip으로 사용할 수 있게 하는 명령어
# pip3 설치 sudo apt-get update sudo apt-get install -y python3-pip # pip3 대신 pip 라고 입력하기 위한 명령어 sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
2. aws 포트 열어주기
aws 서버 환경을 모두 설정해주고, 파일질라를 이용해 Flask 서버(app.py)를 옮겨서 실행하면 웹 구동 준비가 완료된다.
하지만, AWS 서버에서 구동하는 웹페이지상에 접속하기 위해서는 포트번호를 열어주어야 접속할 수 있다.
(AWS 접속이 안되는 이유)
AWS 자체적인 보안이 있기 때문에 아무포트로 접속한다고 해도, 접속을 막는다.
AWS에서 접속가능한 포트번호를 설정해준 후에야 접속이 가능하다.
(AWS 포트 여는 방법)
요 런처 위저드 클릭
EC2 인스턴스에서 실행중인 인스턴스를 클릭해 보안그룹(Security Group)에 들어갑니다. 인바운드 규칙 편집을 클릭한 후 포트번호를 추가해줍니다.
이러면 접속 가능!
3. AWS MongoDB 연결하기
AWS 서버에 몽고디비를 설치합니다. 설치한 몽고디비의 아이디와 패스워드를 세팅해줍니다. 몽고디비를 외부에서도 열수있도록 보안을 열어줍니다. Robo3T를 이용해 AWS 서버의 DB에 접속합니다.
몽고디비 설치 - aws 서버에서
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list sudo apt-get update sudo apt-get install -y mongodb-org
몽고디비 접속 및 계정 생성
mongo # admin으로 계정 바꾸기 use admin; # 계정 생성하기 db.createUser({user: "test", pwd: "test", roles:["root"]}); # 나오기 exit # MongoDB 재시작 sudo service mongod restart
몽고디비 외부 접속 열기
몽고디비는 디폴트가 내부 접속만을 허용하기 때문에, 외부에서 접근이 가능하도록 작업해야한다.
vim에 접속해서 수정
sudo vi /etc/mongod.conf # sudo: 관리자(SuperUser) 권한으로 다음을 실행 # => "관리자 권한으로 /etc 폴더 아래 mongod.conf 파일을 Vim으로 켜줘!"라는 뜻입니다
디폴트
수정
입려모드(i)로 수정하고 저장후 종료 (wq)
몽고디비 재시작 : sudo service mongod restart
Robo3T로 연결
새 커넥션 생성 후, 주소를 aws 서버 주소로 설정
설정해준 admin 계정으로 접속
파이썬에서 몽고디비 id, password로 접속
#pymongo 계정 접속 id:passwprd client = MongoClient('mongodb://test:test@localhost', 27017)
728x90
LIST
from http://thalals.tistory.com/120 by ccl(A) rewrite - 2021-09-16 23:26:39