Wecode/Session

Session-AWS, Sever(EC2),Database(RDS) 열고 이동하는 것 까지

청렴결백한 만능 재주꾼 2020. 6. 4. 15:19
반응형

기존 서버 운영환경

기존에는 하드웨어적으로 관리를 하고 관리하는 사람들이 있었다. 

서버 점검은 주기적인 이벤트이자 오프라인이 불가피했다.

 

 AWS는?

2006년 정식으로 서비스 출시하여 EC2 , S3(Simple Storage Service)등을 제공하기 시작.

현재는 전체 클라우드 사용자 중 40%이상의 점유율을 가지고 전세계 1위 클라우드 서비스로 자리 잡음.

 

클라우드 컴퓨팅 서비스는?

기존의 직접 서버를 구입해서 IDC에 넣고 관리하는 비용보다, 사용한 만큼의 비용만 지불하는 방식이 기업 입장에서 경제적으로 다가옴. 기존 호스팅 서비스와 다른점은 가상이지만, 독립적으로 인프라 각각의 요소를 제어 가능하고, 원하는 대로 구성해서 사용하는데 간편한 인터페이스를 제공해서 고객은 생산적인 부분에만 집중할 수 있게 됨.

 

주요 서비스로는 EC2(Elastic Compute Cloud), S3(Simple Storage Service), RDS(Amazon Relational Database Service)가 있다. 

 

EC2
보안그룹 간략 설명
RDS 간략 설명
S3 간략 설명
Route53 간략 설명

aws.amazon.com

 

Free로 한달에 750시간까지는 서버를 쓸 수 있다고 한다.

1단계 AMI 선택

Ubuntu 18.04로 서버 os를 선택한 후 

 

2단계 인스턴스 유형 선택

프리티어가 사용 가능한 걸로 

 

3단계 인스턴스 세부 정보 구성

퍼블릭 IP 자동 할당 : 서브넷 사용 설정(활성화)를 선택 한다.

종료 방식 : 끝내는 방법인데 종료(=컴퓨터 끄는 것)일 때 서버가 어떻게 될지를 결정해주는 것

종료방지 기능 활성화 : 체크해주면 됨

모니터링 : 하면 좋음 CloudWatch 상세 흐름을 알 수 있는 옵션인데 유료라 지금은 안함.

고급 세부 정보는 음 필요없는데 거의 devOps에게 필요한 것들임.

 

4단계 스토리지 추가

그냥 기본값으로 되어 있는 SSD함.

5단계 태그 추가

원하는 태그 추가 가능요

 

6단계 보안 그룹 구성

프론트는 http

백엔드는  사용자지정 TCP로 포트는 장고니까 8000하면되는데 난 8080ㅋ 위치무관하고

 

그리고 키체인 생성하고 키 페어 다운로드 한다음 인스턴스 시작하면 됨.

 

그리고 서버 접속, 관리는

 

일단 터미널로 가서

 

$chmod -R 400 basic_key.pem

으로 권한을 바꿔주고

 

$ll

으로 

권한이 이렇게 바뀐 것을 확인한다.

 

그리고

$ssh -i basic_key.pem ubuntu@10.313.123.123

 

이렇게 친다. ubuntu에는 운영체제를 넣어주고(아까 아마존 서버 만들때 선택했던), 그 뒤에 아이피는 아까 AWS에서 EC2 상태 확인할 때 IPv4 퍼블릭 IP을 그대로 붙여준다. 그리고 뭐라뭐라 뜨는데 yes눌러준다.

 

RDS를 따로 서비스 해서 데이터베이스를 옮긴다.

 

 

RDS 생성하기!

데이터베이스 생성하기 전에 

파라미터 그룹 생성부터 해야 한다.

설정 값, 변수 집합?을 설정하는 건데

RDS에 데이터가 생성될 건데 디테일한 것들을 설정할 수 있음.

파라미터 편집에 가서

Character_set을 검색한다.

거기에 뜨는 모든 것들을 utf8mb4로 지정해준다. (한글 외 이모티콘도 저장이 가능한 값임)

 

그 후 데이터베이스 생성

표준 생성 선택

많이 사용되는 엔진들

번외로 MySQL은 oracle에 인수됨. 그 이후 MySQL개발자가 MariaDB를 만듦.

 

그리고 프리 티어 선택 후

 

DB 인스턴스 식별자 잘 해서 만들면 됨!

 

아이디와 비밀번호만 생성해주고 나머지는 그냥 기본값으로 놔두면 됨

퍼블릭 액세스 가능을 예로 바꿔주고ㅁ

 

VPC 보안 그룹 생성해줌

 

 

프리티어 설명

 

 

 

 

만들어진 디비에 넣기

mysqldump -u root -p laka_db > laka_db.sql

: 덤프 빼는법!

그리고 거기 RDS에 내가 넣을 데이터베이스 create해줘놓은 다음에 

 

mysql -h endpoint -u root -p laka_db < laka_db.sql

:이렇게 하면 덤프가 들어간다. 

laka_db.sql을 만든 데이터베이스에 넣어줌.

 


 

EC2 RDS 연동하기~~

pem있는 곳에 가서 접속한다. 

$ ssh -i basic_key.pem ubuntu@3.333.333.333

 

 

파이썬을 설치해준다. 

https://docs.conda.io/en/latest/miniconda.html

 

Miniconda — Conda documentation

Miniconda Miniconda is a free minimal installer for conda. It is a small, bootstrap version of Anaconda that includes only conda, Python, the packages they depend on, and a small number of other useful packages, including pip, zlib and a few others. Use th

docs.conda.io

여기가서 파이썬 3.7 리눅스 64비트 짜리 주소복사해온다음에 

$ wget <주소 붙여넣기>

$chmod +x Miniconda3-latest~~~~~~파일이름[그냥 탭누르면 됨]

$./Miniconda3-latest탭

하면 설치가 되고 다 yes  해준다.

 

and then

$ source .bashrc

$ sudo apt-get update

$ sudo apt-get install gcc

$ sudo apt-get install libmysqlclient-dev

$ conda create -n project python=3.7

$ conda activate project        # 가상환경 실행

$ git clone http://~~~

$ pip install -r requirements.txt  #필요한 것들 설치해주고

$ pip freeze             #확인해주고 설치되었나

$ vi my_settings.py  - > manage.py있는곳에 설치해줌~그리고 로컬에 있는거를 그대로 넣어주고 Host와 필요한 것들 바꿔줌.

 

그리고 여기 그림에 나와있는 것 처럼 하면 백그라운드에서 서버가 계속 돌아가게 할 수 있다.

$ nohup gunicorn --bind=0.0.0.0:8080 [프로젝트앱이름].wsgi&

 

치면 돌아감

 

$ ps -ef | grep python

:치면 백그라운드에 잘 돌아가고 있는 것을 볼 수 있다. 

 

$ kill 18101  #  그리고 거기 에 있는 숫자들을 kill 하면 백그라운드에서 돌아가던 것을 끌 수 있다. 

 

 

 

끝!!

반응형