728x90 반응형 Cloud71 [Cloud] 배포 - Docker : Dockerfile Dockerfile 은 Docker 를 사용하여 컨테이너 이미지를 빌드하는데 사용되는 파일이다. FROM ubuntu:22.04 LABEL likelion.web.backendauthor="Ivan Kim " RUN apt-get update RUN apt-get install -y nginx RUN echo "\\ndaemon off;" >> /etc/nginx/nginx.conf RUN chown -R www-data:www-data /var/lib/nginx VOLUME [ "/data", "/etc/nginx/sites-enabled", "/var/log/nginx" ] WORKDIR /etc/nginx CMD [ "nginx" ] EXPOSE 80 EXPOSE 443 FROM ubuntu:22... Dev./Docker 2023. 8. 6. [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. [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. 이전 1 ··· 3 4 5 6 다음 728x90 반응형