728x90 반응형 분류 전체보기115 [Cloud] 배포 - NCP : 자동으로 nginx 까지 이전 자동 실행 스크립트는 바로 Django 서버를 열어주는 부분까지였다. 새롭게 추가된 내용을 포함한 자동 실행 스크립트를 만들어 보자. 우선 다시 클라우드에서 서버를 새로 여는 과정을 되짚어보면 root 를 사용하지 않기 위해 유저를 생성해주고 설정하는 과정들이 있었다. 이 일련의 과정들을 빠르게 진행할 수 있게 init script 를 만들어 보자. 서버 항목에서 init script 로 들어가서 생성을 눌러준뒤 설정값들을 넣어주고 아래의 내용을 스크립트란에 넣어준다. #!/bin/bash NEW_USER_ID="유저아이디" PASSWORD="비밀번호" # user creations echo "Creating new user" useradd -s /bin/bash -d /home/$NEW_USER_.. Dev./Cloud 2023. 8. 5. [Cloud] 배포 - NCP : Nginx 설정파일 Nginx 설정파일 준비 Nginx 에서 웹 어플리케이션을 서비스 하려면, 해당 어플리케이션에 대한 설정이 있어야한다. Nignix 의 파일 구조에서 nginx 는 메인 설정 파일로 **/etc/nginx/nginx.conf**에 위치한다. sittes-available 은 사용가능한 사이트의 설정파일을 저장하고, sites-enabled 는 활성화된 설정 파일을 저장한다. 그리고 conf.d 는 추가파일을 저장할 수 있는 디렉토리이다. 클라이언트가 특정 URL 로 요청을 보내면 Nginx 가 해당 요청을 수신한다. 요청은 설정 파일에서 정의된 리스닝 포트로 들어온다. 위에서 설정한 gunicorn 설정은 Nginx 의 available 존재하지만 enable 쪽에 심볼릭 링크를 만들어 연결지으면 실제 .. Dev./Cloud 2023. 8. 4. [Cloud] 배포 - NCP : Nginx, gunicorn 실제로 웹 어플리케이션이 배포되는 과정에선 필요한 부분이 더 많다. 우선 지금 배포하려고 하는 django 프로젝트를 gunicorn 이라는 파이썬 기반 wsgi 에 연결해보자. django 서버에 gunicon 을 설치하여 WSGI (Web Server Gateway Interface) 인 gunicorn 에서 통신을 단순화하고 표준화하는 역할을 수행하게끔 설정한다. source venv/bin/activate cd Dev ... # 해당 app 경로로 가서 구니콘의 경우 파이썬 패키지에서 다운이 가능하다. pip install gunicorn 구니콘의 config 파일을 settings.py 파일이 있는 곳에 만들어준다. vi lion_app/gunicorn_config.py # bind 해서 800.. Dev./Cloud 2023. 8. 3. Django : 프로그램 구조 이해하기 Django 는 파이썬으로 웹프로그래밍을 할 수 있는 아주 실용적인 프레임워크이다. 하지만 아무리 프레임워크라고 하더라도 개발자마다 회사마다 적용하는 프로그램의 구조자체는 다를 수 있다. 그 와중에 Django 에서 제공하는 기본적인 틀과 데이터가 움직이는 과정들을 살펴보자. Django 는 프로젝트 아래 애플리케이션들이 추가되는 형태를 가지고 있다. config 는 Django 로 프로젝트를 열어서 생성되는 기본적인 “틀”에 가깝다. “pybo” 는 틀 안에 생성된 서비스로 보면 된다. config - settings 내에서 우선 ALLOWED_HOSTS 에 IP 주소를 등록해서 CORS 접근이 가능하도록 설정하는게 좋다. config - urls 내에서 먼저 서비스에 사용할 URL 을 등록해 놓고 “.. Dev./Django & DRF 2023. 8. 2. [Cloud] 배포 - Shell Script : 자동실행 스크립트 가상환경에서 동작시키다보면 가끔 가상환경을 빠져나가서 다시 설정해줘야하는 경우가 생겼다. 그래서 자동 배포를 하면서 사용했던 방법으로 자동으로 환경을 조성하고 실행시켜주는 스크립트를 만들었다. 우선 지금 실행시킬 내용이 최신이 될 수있도록 pull 을 받고, 가상환경을 적용 시키는 과정으로 로직을 생각했다. #!/bin/bash APP_NAME=lion_app # git pull echo "Start to execute git pull" git pull # 가상환경 적용 (source) echo "Start activate venv" source venv/bin/activate # runserver echo "Start execute runserver command" python3 $APP_NAME/ma.. Dev./Docker 2023. 8. 2. [Cloud] 배포 - NCP : 자동 배포 수동으로 배포를 해보았으니, 자동으로 배포하는 과정을 한번 진행해보자. 위 일련의 과정들을 쉘 스크립트로 작성 (로컬쪽에 저장해두기) #!/bin/bash # git clone echo "Start to clone" git clone {.....} cd Dev_django_app # venv 설치 echo "Start to install venv" sudo apt-get update sudo apt install -y python3.8-venv # venv 구성 echo "Start to make venv" python3 -m venv venv # 가상환경 작동 echo "Start to activate venv" source venv/bin/activate # pip install echo "start.. Dev./Cloud 2023. 8. 1. [Cloud] 배포 - NCP : Django App 생성부터 배포 먼저 원격 저장소(github)를 만들어 준다. 이때, README.md 파일과 .gitignore (파이썬)파일을 같이 만들어주면 좋다. git repo 를 생성하고 로컬로 이동한다. 연결하고 싶은 위치의 경로에서 아래 명령어를 실행한다. git init git remote add origin {github 주소} git remote -v git pull origin main code . 이제 파이썬 가상환경 만들어주기 python3 -m venv venv python3 --version source venv/bin/activate which pip # 기대 출력값 # /Users/kimminhyeok/workspace/dev_django_app/venv/bin/pip # 가상 환경쪽에서 pip 를 가.. Dev./Cloud 2023. 7. 31. [Cloud] 시작 - NCP : VScode 로 원격 접속하기 터미널환경에서 계속 개발하는게 쉽지는 않다. 원격으로 VScode 를 이용해 개발환경을 구성하자. VScode 에서Remote - SSH 를 설치해준다. 이후 SSH host 를 새로 등록한다. 이때 터미널에서 SSH 프로토콜을 사용했던 명령어로 파일을 선택한다. 이후 connect 로 연결하면 ? 새롭게 vscode 가 열리면서 원격으로 해당 서버에 개발이 가능해진다. 터미널을 열어 이름을 수정해주면 복잡한 IP 주소를 쓰지 않고도 접속이 가능해진다. Dev./Cloud 2023. 7. 29. [Cloud] 시작 - NCP : Server 띄우기 root 계정은 더 이상 쓰지 않고 서브 계정으로만 진행한다. 혹시 모를 이슈와 보안 문제로 인해 겹쳐버리면 골치아파져 버리니까... 네이버 클라우드 서비스에서 Compute -> Server 로 가서 설정을 해준다. 2세대로 진행할 거고, 우분투로 만들어 준다. VPC (virtual Private Cloud) - 가상 네트워크같은 개념으로 앞으로 가상환경에 생성할 인스턴스들을 알맞에 묶어주는 네트워크 역할이다. subnet - VPC 안에 있는 네트워크 개념으로 Private - Public 형태로 구분 짓고 사용할 예정이다. 서버 스펙 - 스탠다드로 하자. 크레딧을 아껴야 하니까 요금제 - 앞으로 계속 사용할 예정이니 월 요금제로 한다. 네트워크 인터페이스 - 기본 설정으로 되어 있는 대로 만든다... Dev./Cloud 2023. 7. 28. [Cloud] 시작 - NCP : 권한 부여 클라우드, 가상 환경에 있는 인터페이스에 접속하기 위해서는 유저를 설정하고 그룹별로 권한을 설정해야하는 필요성이 있다. 한번 해보자. NCP 에서, Groups -> 정책 -> 개별권한추가 서버, 컨테이너, 쿠바네티스, Object, DB 의 권한을 준다. 실무에서는 알맞게 권한을 지정하겠지만 지금은 모든 권한을 매니저 권한으로 해본다. 추가로 하나의 서브계정을 더 생성해서 로그인 하게 되면 오른쪽 상단 프로필 -> 권한보기에서 부여된 내용들을 확인 가능하다. 다시 모든 권한이 있는 계정으로 들어가 policies 를 설정해보자 끝 Dev./Cloud 2023. 7. 27. [Cloud] 시작 - NCP : sub account 생성 이제 부터는 DevOps 에 관한 내용들을 진행하게 된다. Naver Cloud 에서 지원해주는 크래딧으로 클라우드 환경에 대한 이해를 도우려고 한다. 우선 root 계정으로 로그인 해서 (네이버 연동으로 했다.) Sub account 를 만들어 줄 예정이다. root 계정으로 진행하게 되면 보안상 문제가 발생했을 때 조치를 취하기 어렵다. 서브 계정에서 문제가 발생했을 경우 삭제해서 없애버리고 새로 셋팅하면 된다고 한다. 대시보드에서 서브 계정 로그인 접속키와 시간 설정등을 마무리해준다. 그 다음 Groups 로 넘어가서 root 계정 대신 모든 권한을 가진 서브 계정을 등록하기 위한 그룹을 설정해준다. 이제 그룹에 등록할 서브 계정을 만들자. Sub Accounts 로 넘어가서 서브 계정 생성을 누르.. Dev./Cloud 2023. 7. 26. Django : 장고에 대해서 2003 년 로렌스 저널-월드 신문을 만들던 웹 개발팀의 내부 프로젝트로 시작했다. 2005년 오픈소스 프로젝트로 공개됐다. 구글의 웹 애플리케이션 엔진에 장고가 사용되면서 인기를 얻었다. 제공하는 기능이 풍부하여 쉽고 빠른 웹 개발이 가능하다. 장고의 특징 MVC(Model - View - Controller) 패턴 기반 MVT(Model - View - Template) 객체 관계 매핑 자동으로 구성되는 관리자 화면 우아한(?) URL 설계 자체 템플릿 시스템 캐시 시스템 다국어 지원 풍부한 개발 환경 소스 변경 사항 자동 반영 MVT 패턴 MVT 패턴에 맞게 처리하는 과정 클라이언트로부터 요청을 받으면 URconf 를 이용하여 URL 을 분석 URL 분석 결과를 바탕으로 해당 URL 처리를 담당할 .. Dev./Django & DRF 2023. 7. 22. 이전 1 ··· 5 6 7 8 9 10 다음 728x90 반응형