DevOps
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Nginx Docker Build
프록시 프록시 서버란 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킵니다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부릅니다. 프록시 서버는 크게 포워드 프록시 서버, 리버스 프록시 서버로 나눠집니다. 그리고 리버스 프록시 서버를 설명하기 전에 프록시 서버에 대해 먼저 이해하려면 리버스 프록시 서버를 이해하는데 도움이 됩니다. 포워드 프록시 서버란? 간단히 우리가 흔히 말하는 '프록시 서버'란 포워드 프록시 서버를 의미합니다. 프록시 서버는 아래 그림처럼 클라이언트 앞에 놓여 있습니다. 다음 그림을 보면 클라이언트가 인터넷 웹서버에 요청을 보..
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - Docker Django Build
이제 docker로 django의 이미지를 만들고 run해보도록 하겠습니다. 먼저 이전에 했던 과정을 모두 다 진행해 보도록 하겠습니다. 간단히 리스트업 해보자면 ec2환경을 하나 만듭니다. ssh-keygen으로 deploy key와 ssh key를 만들어 줍니다. Django-Deploy를 cloning해 옵니다. requirements.txt에 uwsgi를 추가해 줍니다. docker for linux를 curl을 통해 설치해 줍니다. docker의 권한을 올려줍니다. ( + docker Version check ) 루트 파일에 Dockerfile을 만들어 주고 내용을 수정해 줍니다. docker build를 통해 이미지를 생성해 줍니다. image를 통해 container를 실행해 줍니다. 이 과..
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - (인프라) Docker 개요
Docker 개요 만약에 내가 개발하고 있던 환경에서는 잘 돌아갔지만, 배포 서버에서는 잘 돌아가지 않는 경우가 있을 수 있습니다. 그리고 하나의 서버 안 즉 EC2안에서 여러개의 프로그램이 돌아가게 할 수 있습니다. 위 그림에서 프로그램 3개가 유기적으로 연결되어 있지는 않습니다. 또한 각 프로그램의 환경을 따로 분리하고 싶다고 해 봅시다. 왜냐하면 프로그램1에서 깐 django 3.6버전이 프로그램2에는 영향을 미치게 하고 싶지 않을 수도 있기 때문이죠. 이러한 니즈에 의해 Docker가 사용됩니다. 위와 같은 문제점은 Docker가 아니더라도 가상환경으로 어느정도 해결할 수 있습니다. 위에서 django나 많은 의존성을 깔 때 python의 가상환경을 만들어 주었었던것과 비슷하게요. 하지만 엄청난 ..
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - (백엔드) Django Session 활용2
이제 로그인 폼과 화면에 대한 접근권한을 설정하는 법에 대해 알아보도록 하겠습니다. /fastcampus/user/urls.py from django.urls import path from user import views urlpatterns = [ path('user/', views.user, name="user"), path('login/', views.login, name="login"), ] /fastcampus/user/views.py from django.utils import timezone from django.shortcuts import render from django.http import HttpResponse, JsonResponse from user.serializers impo..