DevOps
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - (백엔드) Django Session 활용1
우선 Django로 User를 만들고 user를 확인하고 삽입할 수 있는 백엔드 앱을 추가해 보도록 하겠습니다. $python manage.py startapp user 를 해주고 기초적인 작업을 위한 틀을 구축해 주도록 하겠습니다. /fastcampus/user/models.py from django.db import models class User(models.Model): user_name = models.CharField(max_length=20) user_type = models.IntegerField() # 0: 사용자, 1: 사장님, 2: 배달 기사 일단 모델을 만들고 마이그레이션 해주겠습니다. $python manage.py makemigrations $python manage.py mig..
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 오토스케일링 설정 (AWS Autoscaling Group와 AMI)
오토스케일링 기존의 방법대로 EC2를 여러개 만들어서 ELB에 붙이는 방법이 있습니다. 근데 만약에 트레픽이 없는데, 놀고 있는 EC2가 생기게 되면 엄청난 자원낭비가 될 수 있습니다. 그래서 트레픽에 따라서 인스턴스를 늘리고 줄일 수 있는 오토스케일러를 사용하면 좋습니다. 이는 ELB에 연결된 EC2를 늘렸다가 줄이는 역할을 하는 겁니다. 유저가 적을 때는 비용을 아끼고, 유저가 많을 때는 서버 과부화를 막습니다. 그리고 서버를 늘리는 기준도 오토스케일러를 만들 떄 설정할 수 있습니다. 만약에 기본의 개수가 3개고 이들의 CPU 점유율이 50%가 넘어가면 1개를 추가하고 추가했는데도 50%를 넘어가면 1개를 추가하는 방식으로 설정할 수 있습니다. CPU외에도 다양한 것을 활용할 수 있습니다. 이를 만들..
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 어플리케이션 구동 (Nginx, Gunicorn, Supervisor)
기존의 EC2를 여러개 만들고 이들에게 ELB가 트레픽을 분산시켜주는 과정에서 가장 큰 불편한점? 이라고 하면 당연히 EC2인스턴스를 5개면 5개 10개면 10개, 100개면 100개를 일일히 다 만들어 주어야 했다는 점입니다. 당연히 이를 AMI즉 이미지를 만들어서 그 안의 파일들과 그 환경을 통해 새로운 인스턴스를 만들 수 있었습니다. 하지만 배포를 하고 python manage.py runserver 0.0.0.0:8000을 계속 해주어야 했고, 이를 100개 다 일일히 해주는 일이란 너무 불편하지 않을 수 없습니다. 그런데 웹서버 요즘 유명한 NginX같은 것은 그냥 파일형태로 저장되면 이 자체가 그냥 웹으로 보여지는 것이라고 보면 됩니다. 그래서 Nginx, Gunicorn, Supervisor..
[ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - AWS CloudFront 생성 및 캐싱 설정
실습 우선 AWS CloudFront를 배포하기 전에, origin을 ELB로 하겠습니다. 우선 원본 도메인인 origin을 이전에 만들었던 ELB로 설정해 주었습니다. 그리고 모든 엣지 로케이션에서 사용하도록 했습니다. 이는 가격과 연동되어 있어서, 나중에 바로 실습하고 지워버릴 겁니다. 다음으로는 이제 Route53에 들어가셔서 호스팅영역 수정을 진행해 주어야 합니다. 그 이유는 저기 A 레코드를 보시면 기존에 ELB와 연결되어 있음을 보실 수 있습니다. 이제는 ELB가 아닌 Cloud Front와 연결 시켜주어야 합니다. 그리고 위에서 설정 못한 cloud front의 대체 도메인 이름인 CNAME을 추가해 주어야 하는 과정을 수반해야 합니다. 그리고 SSL인증서는 이전에 발급한 인증서가 먹히지 않..