목록2020/03/07 (6)
훈훈훈
이번에는 python 코드를 이용하여 데이터베이스에 csv파일을 넣는 방법을 작성하려고한다. 이번 글에서는 생성한 앱에서 City 라는 클래스를 임포트 후 해당 테이블에 데이터를 넣는 작업을 위한 코드를 작성하였다. 아래 코드를 사용하면 데이터는 물론 foreign key 까지 모두 넣을 수 있다. 단, foreign key에 데이터를 넣기 위해서는 테이블 칼럼명에 "_id"를 붙여줘야 넣을 수 있다. import csv import os import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "[ProjectName].settings") django.setup() from [AppName].models import City CSV_PATH = '/..
이번에 프로젝트를 진행하면서 REST API를 만들어 backend 서버를 AWS를 사용하여 배포하게되었다. 처음에는 로컬 환경에서 진행하듯이 python manage.py runserver 명령어를 사용하였지만, 터미널 종료 후에 서버도 같이 종료되는 현상이 발생하였다. 만약 실제 서비스를 제공하고 있다면 서버가 다운되는 현상은 기업 입장에서 매우 큰 크리티컬일 수 밖에 없다. 따라서 다음과 같은 조건을 만족 시켜야 한다. # Django 배포 조건 1. Terminal 이 종료되어도 서버는 24/365 유지되어야한다. 2. Request 혹은 Response 시 로그가 남아야한다. 이제 아래와 같은 배포 방법을 소개하려고 한다. # 배포 방법 1. gunicorn - gunicorn 이란 ? pyth..
# 글을 쓴 계기 - 프로젝트 진행 중 지인의 RDS에 저장된 Scheme가 랜섬웨어에 감염되었다는 소식을 듣게 된다 ........ # 원인 1. Security Group 상에서 any open 정책 2. 아주 간단한 password 사용 그렇기 때문에 해커가 간단하게 RDS서버에 접근하지 않았나 싶다 .. # 대응 방안 1. MySQL Default Port 변경 RDS 생성 시 Default Port가 3306으로 설정되어있다. 따라서 RDS서버에는 3306포트가 오픈되어 있다는 점은 예상하기 쉽다. 따라서 AWS Console에서 포트를 하는 것이 좋다. 필자는 15001 포트로 변경하였다. 참고로 MySQL Default Port를 번경하였다면, my_settings.py에 등록된 Port도 ..
1. EC2 인스턴스에 mysqlclient 모듈 설치 Django에서 mysql을 연동하기 위해서는 mysqlcinent 모듈이 필요하다. 로컬환경에서는 pip 로 바로 설치가 가능하지만, EC2 인스턴스에서는 gcc 및 libmysqlclient-dev 설치가 선행되어야한다. 이 두개가 설치 되었다면, git에서 받은 파일에 첨부된 requirement.txt 파일에 있는 리스트들을 그대로 설치하거나, pip install mysqlclient를 진행해주면 된다. sudo apt install gcc sudo apt install libmysqlclient-dev /*conda 가상환경에서 */ pip install -r requirement.txt 2. my_settings 생성 및 설정 보통 gi..
1. Key.pem file 권한 설정 파일 소유자 읽기 권한으로 설정 chmod -R 400 [KEY_NAME.pem] 2. EC2 인스턴스 접속 ssh -i [KEY_NAME] ubuntu@[EC2.IP] 3. Mini conda install conda env 상에서 Django server를 실행 시키기 위해 Mini conda install 필요 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh chmod -R 755 Miniconda3-latest-Linux-x86_64.sh ./Miniconda3-latest-Linux-x86_64.sh 4. conda 가상 환경 생성 #파이썬3 버전의 환경만들기 conda ..
1. Console 접속 AWS에 로그인 후, 콘솔에 접속하여 EC2 서비스 항목으로 이동하여 인스턴스 시작을 클릭한다. 2. AMI(Amazon Machine Image) 선택 원하는 OS 종류를 선택할 수 있다. 필자는 서버 배포 목적이기 때문에 Ubuntu를 선택하였다. 3. AMI 스팩 설정 AMI에 설치될 OS의 스팩을 설정할 수 있다. 4. 세부 정보 설정 인스턴스 개수, 네트워크 등에 대한 항목을 설정 할 수 있다. 고급 세부 정보에는 사용자 데이터 항목에 원하는 스크립트를 입력하면 인스턴스가 실행될 때 자동으로 스크립트가 실행되게 할 수 있다. 4. 스토리지 설정 AMI 스토리지 항목에 대해 설정이 가능하다. 5. 태그 설정 태그를 설정할 수 있으며, 태그는 인스턴스를 식별하는데 사용되며,..