저희가 지금 Nginx(로드밸런서 겸 웹서버) 1개, 애플리케이션 서버 2개, Redis 1개, PostgreSQL 서버 1개, Object Stroage 1개를 생각중인데 생각보다 인스턴스 비용이 비싸서 고민중에 있습니다. 최소사양으로 해도 인스턴스 하나당 한달에 8만원정도 나오는데 어떤식으로 인프라 설계를 해야할지 조언을 구하고 싶습니다.
유눅스-멘토님
인스턴스 비용 얼마받았음? 인스턴스 한대 비용이 왜케 비쌈? 아아 램 8기가 짜리시군요. 한국리전은 그게 최소 사양이시군요. aws 인스턴스 예시를 보여드리죠. node는 한대 띄우는데 많은 비용이 안들기 때문에 micro같은거를 여러개 띄움.
제 생각에는 말이죠. 어플리케이션 서버를 도커를 사용하였는가? → 엔진엑스랑 합쳐놓았음
제생각에는 말이죠. 서버 인프라라는 것은 트래픽 규모에 따라 바꾸는 경우가 많단다. 서버 하나에 몰아넣는 경우가 많단다. 일반 데스크 탑 수준이면 충분함. → 8만원 나오는 인스턴스? 너무 과분하다. 성능이 좋지 않은 서버를 써보려무나. 성능 테스트를 할 때 느린부분이 있어야 개선하는데 좋지 않겠니? 제일 구데기인걸로 여러개 띄워보렴. (micro-g1 추천!) 도커 컨테이너로 다띄워버리면 분리된 환경이라고 생각 쌉가능. 하나에 싹다 몰아넣고 해보거나 제일 구데기인거 여러개 띄우는거 추천.
또는 인스턴스 한 대에서 docker 여러 대 띄우는 식으로 여러 개 인스턴스(서버) 띄우는 느낌을 줄 수 있음.
db는여? → 하나에 다 때려놓아도 충분할 거란다.
이대로 가다간 다 죽어~ 다 파산해~
호오 그정도면 충분할 듯 합니다.
CI/CD 자동화가 거의 처음인데, 어디서부터 어디까지 자동화해야할까요?
CI는 린터 / 테스트 등을 돌리는 것까지 포함임
프론트만 배포하고 싶다면 태그로 분기를 쳐서 배포하는 식으로 할 수도 있단다. 이게 현업이란다.
서버 관리에서 인스턴스 하나 만들때마다 접근할 팀원들 계정 생성하고 키 등록하는 작업도 자동화하나요? 아니면 수동으로 직접 하는게 맞는건가요?
키 등록 하나로 해놓고, 그거로 사골 우려먹듯이 다 우려먹음
pem키를 여러개 만들면 상당히 곤란데스
모노레포에서 배포를 분리해야하는데 현재 main브랜치에 액션을 추가해서 배포 자동화를 생각하고있습니다. 이렇게 하면 프론트엔드만 병합돼도 서버도 재시작될텐데 어떤식으로 해야 잘 할 수 있을까요?
import { IsEmail, IsNotEmpty, IsString, MinLength } from 'class-validator';
export class CreateUserDto {
@IsEmail()
email: string;
@IsString()
@IsNotEmpty()
nickname: string;
@IsString()
@MinLength(8)
password: string;
}
현재 회원가입까지 구현한 상태입니다.
입력된 정보를 검증하는 과정에서 class-validator를 사용해 검증하는 것이 좋을지, 따로 검증하는 로직을 만드는 것이 좋은지 여쭤보고 싶습니다.
중복 로직 잡는 것 : controller, service layer에서 잡는 게 맞다. 이런 건 외부 모듈(DB 등)에 의존적인 부분이기 때문에 DTO에서 볼 부분이 아니다.
우리의 정책 = 비즈니스 로직
로그인을 구현하는 과정에서 다음과 같은 구조를 찾게 되었습니다. 여기서 mvc 패턴외에도 middleware, guard 등을 모두 다 사용하는 것이 좋을지 아니면 필요한 부분들만을 추출해서 사용하는 것이 좋은지 여쭤보고 싶습니다.
미들웨어, 가드 : 처음엔 안 써도 된다고 생각합니다. 근데 이왕 학습하시는 거라면, 해봐도 좋습니다. spring에서는 spring security 등의 이름으로 권한이나 인증을 관리. Nest에선 가드를 사용.
‘인증’은 비즈니스 로직(Controller, Service, Repository)과 결이 달라. 그래서 나온 게 Guard라는 놈임. 필요성을 못 느끼면 안 해도 된다. 그냥 없이 한 번 해보고 별로이다 싶으면 그때 Guard 도전해보기