DevOps
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (인프라) Elastic Beanstalk를 활용한 배포
우선 간단히 Beanstalk에 대해 다시 되짚고 넘어가도록 하겠습니다. AWS Elastic Beanstalk특징 빠르고 간단하게 서버 구성 : 배포 과정을 Elasitc Beanstalk에서 처리하기 때문에 코드를 업로드하면 배포부터 EC2, 로드밸런싱, 오토 스케일링, 모니터링 설정을 Elastic Beanstalk 한곳에서 할 수 있고, 이후 과정을 Elastic Beanstalk가 자동으로 처리합니다 Elastic Beanstalk은 크게 Application(앱), Environment(환경)으로 이루어 집니다. 어떠한 앱과, 이 앱이 돌아가는 환경으로 크게 이루어 집니다. 또한 하나의 어플리케이션이 여러개의 환경을 가질 수 있습니다. 바로 실습을 통해서 알아보겠습니다. 실습 바로 ubuntu..
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (인프라) 코드 테스트 파이프라인 구축
이번시간에는 간단히 Django에서 테스팅 코드를 어떤식으로 짜는지 알아보겠습니다. 전에 Node.js에서 Jest로 테스트 코드를 목업한 것과 매우 비슷하게 짤 수 있었습니다. /order/user_order/tests.py from django.test import TestCase from .models import Order, Shop class ShopModelTest(TestCase): def test_sample(self): temp = True self.assertIs(temp, True) def test_sample2(self): temp = True self.assertIs(temp, True) def test_sample3(self): temp = True self.assertIs(te..
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - AWS CodePipeline을 활용한 CI CD개요
CI CD는 코드 작성 -> 빌드 -> 테스트 -> 릴리즈 -> 배포과정을 자동화 하는 과정이라고 했습니다. 당연히 100%자동화는 불가능 할 수도 있지만, 이를 최대한 쉽게 해보자는 취지입니다. 코드부터 빌드까지가 CI ( Continuous Integration )이고, 테스트 -> 배포과정을 CD (Continuous Deploy, Delivery)과정이라고 합니다. 이를 위해서 AWS Codebuild, CodeDeploy, Codepipleline을 활용하겠습니다. CI/CD in AWS 일단 맨처음에 개발자가 Git에 Master로 커밋을 한겁니다. 그럼 순간에 커밋이 되었다는 액션에 트리거가 되어서, Code Build라는 대로 들어가게 됩니다. CodeBuild는 Build -> Test작..
[ DevOps ] - AWS 기반 대규모 아키텍트 설계 - (인프라) 마이크로 아키텍처 개발 시 문제점들
처음 마이크로서비스 도입할 때 겪은 문제점들 우선 모놀로식을 배포할 때는 그냥 하나의 코드 뭉테기를 배포하면 끝이였습니다. 하지만 마이크로 서비스는 이를 하기 위해 상당히 복잡한 프로세스 + 오랜 시간이 필요하게 됩니다. 그리고 에러가 났을 때 Debugging하기가 매우 힘들어집니다. 왜냐하면 이미즐 업로드 하는 과정에서 에러가 났다고 해 봅시다. 그럼 이게 이미지 업로드 하는 서비스 내부의 코드 문제인지, 아님 다른 서비스와 소통할 때 발생하는 문제인지 알 수가 없게 됩니다. 그래서 디버깅을 해서 에러를 잡아내기 위해서는 수십개의 서비스의 로그파일을 확인해야 합니다. 그리고 너무 서비스가 거대해서 한 눈에 알아볼 수 없습니다. CI/CD 도입 CI/CD란 빌드 -> 테스팅 -> 배포의 모든 과정을 자..