728x90
반응형

DevOps/AWS 33

[AWS] 모놀리식/마이크로서비스 아키텍처 장단점

모놀리식 아키텍처 - 일반적으로 많이 사용하고 있는 아키텍쳐 - 토이 프로젝트는 100% 모놀리식 아키텍쳐로 만든다 - 다양한 기능을 하나의 프로젝트에 모두 구현해두겠다 - A라는 기능에다가 B, C, D 기능을 계속 추가하면서 A를 건드리지 않았는데도 에러가 난다 (동감) - D라는 기능을 추가하면 A, B, C의 QA를 다시 해야한다 (동감) - 하나의 JS 프로젝트에서 특정 부분만 다른 언어(Python)으로 구현하고 싶을 때 어렵다 마이크로서비스 아키텍처 - 각각의 도커에서 개별적으로 배포한다 (독립성) - 거대한 서비스인 경우에 더욱 적합하다 - 처음에 셋팅할 때 복잡하다. 각각의 서비스간의 개별 통신도 설정해주어야 한다 - 맨 처음에 서비스를 출시할 때는 모놀리식으로 개발한 뒤, 지속적으로 발..

DevOps/AWS 2023.04.02

[AWS] CodeCommit & CodeDeploy

CodeCommit 이란? 암호화가 GitHub과 가장 큰 차이점이다 개발 팀장은 IAM 권한을 이용해서 다 쓸 수 있는데, 팀원들에게는 다른 권한을 줄 수도 있다. (서로 다른 권한 설정) CodeCommit 실습 1. IAM 유저를 먼저 설정해야 한다. 기존 정책 CodeCommitFullAccess을 갖고 있는 2. 방금 만든 IAM에 들어가서 보안 자격 증명에 들어가서 CodeCommit에 대한 HTTPS Git 자격 증명 생성해야한다. (다운로드) 3. EC2 하나를 만든다 4. 콘솔에서 sudo apt install awscli >> aws configure 5. CodeCommit에 들어가서 리포지토리를 생성한다. 6. git clone https://git-codecommit.us-east..

DevOps/AWS 2023.03.31

[AWS] Docker 개요와 ECS와 Fargate로 배포하기

Docker란? 개발서버(로컬, 맥북)에서 개발한 다음에 배포를 하는데 갑자기 잘 안될 수가 있다. 환경이나 버전이 동일하지 않아서.. 도커는 컨테이너 형태로 환경을 구분해준다. 도커는 이미지를 통해 같은 환경의 컨테이너를 무한히 생성할 수 있다 (AutoScaling) Docker Compose란? 각각 컨테이너별로 포트가 다르다 컨테이너별로 Dependency를 지정해줄 수 있다 ECR이란? Elastic Container Registry의 줄임말이 ECR이다 도커 이미지가 저장소에 저장이 되어 있으면 Registry에서 가져와서 도커를 만들수 있어서 저장소를 서버 외부에 두는 것이다 AWS가 있기 전에도 도커 자체에서 만들어둔 도커 레지스트리가 있었지만, 유사한 기능을 AWS ECR이 제공한다 < ..

DevOps/AWS 2023.03.31

[AWS] 오토스케일링 설정 (Autoscaling Group)

오토스케일링이란? 1000명 내외다 라고 하면 AutoScaling이나 ELB를 설정하는 것이 크게 의미가 없을 수 있다 시험기간에만 확 몰리는 서비스를 운영중이라 1만 ~ 2만명 정도 몰릴때가 있는데, 이 때에는 ELB나 AutoScaling을 적용하는 것이 의미가 있다 CPU나 GPU 사용 용량에 맞춰서 Autoscaling 룰을 설정할 수도 있다 오토스케일링 설정 프로세스 이미지 = 어떤 서버의 환경을 그대로 캡쳐해놓은 것 시작 템플릿 = 이미지에서 나아가서 서버 용량 같은 것, key pair, 보안 그룹, .., AWS에서 관장하는 셋팅까지 관장하는 것 이미지, 시작 템플릿 모두 서버를 찍어내기 위한 목적을 갖고 있는 것은 맞는데 시작 템플릿은 AWS에서만 사용하는 의미이다. AutoScalin..

DevOps/AWS 2023.03.30

[AWS] CloudFront의 역할과 사용해보기 (Route53와 ALB 사이에 추가)

CloudFront란???? CloudFront는 Cache + CDN (서브기능) 하는 AWS 서비스 기본적으로는 Cache 기능을 제공하는 서버라고 생각하면 된다. 자연스럽게 CDN 기능까지 보유하게 된 것이다. 기존 방식 대부분의 서비스들은 웹페이지를 준비해놨다가 오자마자 뿌려주는 형식이 아니라, 유저가 입력하는 정보에 따라서 서버가 뿌려줘야하는 HTML 파일이 달라진다. (따라서 대부분 동적으로 생성한다) 따라서 유저가 많아지면 서버 과부하가 걸리고 서버 비용이 많이 나갈 수 있다. 새로고침할 때마다 똑같은 연산을 계속해야하면 더더욱 ^^ 문제가 생긴다 Cache 준비된 데이터를 cache에 저장하고 그걸 그대로 뿌려준다 대체로 일정한 텀을 가지고 캐시 업데이트 기간을 둔다. 캐시 서버를 사용할 ..

DevOps/AWS 2023.03.30

[AWS] Route53에서 도메인등록하고 Certificate Manager에서 인증서 발급받고 https 설정하기

도메인 등록 절차 특정 ip 주소와 "fast-devops.com"을 연결하는 것 Route53을 통해서 도메인 등록 1. AWS 콘솔에서 Route53으로 들어간다 2. 왼쪽에 등록된 도메인 클릭 3. 도메인 등록 클릭 4. 등록하고 싶은 도메인을 적고 장바구니에 넣는다 5. 자동갱신 비활성화 누르고 주문 완료! 6. 등록을 하는데 3일 정도 걸릴 수 있다 ^^ Route53을 활용한 http 설정 Route53으로 도메인 등록을 했는데, 이것을 ALB와 연결시켜야 한다. 1. Route53에서 왼쪽에 호스팅 영역 선택 2. Route53에서 도메인을 사면 레코드를 자동으로 만들어 준다 3. 레코드 생성 선택 4. 레코드 이름 : null, 레코드 유형 : ipv4, 값 : ..

DevOps/AWS 2023.03.30

[AWS] 로드밸런서 (L4, L7)의 동작원리와 ALB 사용하기

로드밸런싱 ELB = Elastic Load Balancer 지금이야 유명하지 않으니까 한두명이 들어오겠지만, 클라이언트 수가 늘어났을 때 서버가 하나만 있으면 감당하기가 어렵다 t2.micro 서버로는... 1) 서버 자체의 용량을 올릴 수 있다 2) t2.micro 서버를 여러개 써서 트래픽을 분산시킬 수 있다 => 1번이 훨씬 비싸다. 저렴한거 여러개 쓰는게 비용대비 효과가 좋다 종류가 2가지가 있다 L4와 L7 요즘에는 L4보다는 L7을 많이 쓰고, L7을 Application Load Balancer라고 ALB라고 많이 부른다 스마트하게 분기해야하는 경우가 점점 더 많아지고 있다 Classic Load Balancer라고 부르기도 한다 ALB 사용하기 전에 대상 그룹 만..

DevOps/AWS 2023.03.30

[AWS] Django 개발 결과를 EC2에 배포하기

EC2 생성하기 Ubuntu를 활용해서 배포할 예정이다 putty로 해당 EC2로 들어가서 필요한 패키지 다운로드 sudo apt-get install build-essential # 파이썬 sudo apt-get install python3 깃헙으로 코드 파일 올리기 # 올리기 전에 아래와 같이 package.json 같은 파일 만들기 pip freeze >> requirements.txt Deploy Key 설정해주기 # putty terminal에 들어가서 ssh-keygen -t rsa 깃헙에 들어가서 Deploy Keys를 생성해준다 # 깃헙 계정에 등록하는 Deploy Key를 하나 더 생성한다 ssh-keygen -t rsa -C "sjsj0612@gmail.com" Git Clone gi..

DevOps/AWS 2023.03.30

[AWS] RDS 데이터베이스 구축하기

AWS RDS 이전 예시에서는 로컬에 있는 sqlite Database를 사용했었다 1. AWS 콘솔에서 RDS 들어간 다음에 데이터베이스 생성 2. MySQL 선택 3. 마스터 암호를 설정을 해야한다 4. 퍼블릭 액세스가 가능하도록 선택 5. 추가 구성 선택 : 초기 데이터베이스 이름 = project1 MySQL Client 다운 pip install mysqlclient Settings.py 수정 host는 RDS 데이터베이스 열어서 엔드포인트를 복붙해서 집어넣는다

DevOps/AWS 2023.03.30

[AWS] 도메인 주도 설계 Domain Driven Design (DDD)

관점이 너무 달라서 싸울 수밖에 없다 사업을 보는 관점이 너무나도 달라서 트러블이 생길 수밖에 없다. 그걸 조율하고 하소연 받고... ㅋㅋㅋ 잘 조율해서 일정 안에 해내게 하는 역할이 PM이다. 결과적으로 기획과 개발의 불일치가 발생할 수 있다 1. 서비스가 복잡하다 2. 관점이 다르다 해결 방법 DDD의 개념 자체가 대단한 것은 아니고 하나의 철학이라고 볼 수 있다. 커뮤니케이션과 협업을 잘 해야 한다. DDD의 2가지 종류 (전략적 설계, 전술적 설계)

DevOps/AWS 2023.03.29
728x90
반응형