CS & Network/컴퓨터 네트워크(Network)

[네트워크 network] Shared VPC란? (GCP Shared VPC)

현재 진행 중인 프로젝트는 GCP 환경에서 App Engine을 사용해서 운영이 되고 있습니다. 프로젝트는 GCP A Project와 GCP B Project가 동시에 운영이 되고 있는데요. B Project가 A Project의 Cloud sql을 공유해서 사용해야 하는 상황에 놓였습니다. 처음 계획은 A Project VPC Connector를 만들고 B Project에서 app.yaml 파일에 A Project의 VPC Connector를 사용하도록 설정해서 deploy 하기였는데요. 결론적으로는 실패했습니다. 이유는 여기 스택오버플로우에 나와있듯이 App Engine끼리 VPC Connector만을 이용해서 CloudSQL을 사용하는 방식은 지원하지 않기 때문이었죠. 삽질을 하다가 CTO님한테 다..

2022.07.31 게시됨

Back-end/Server & Cloud

[Server] Bastion Host란? (부제. GCP에서 Bastion 띄우기)

일반적으로 개발을 하면서 Cloud DB에 접근할 때는 바로 DB host로 연결해서 사용할 수도 있지만 일반적으로 prod레벨에서는 보안을 위해 DB를 띄워놓은 인스턴스가 들어있는 VPC 안을 Proxy서버를 통해서 접근하게 됩니다. 자 그렇다면 여기서 VPC안에 들어갈 때 사용되는 Proxy서버는 어떤 역할을 할까요? 이번 시간에 Proxy 서버역할을 하는 Bastion host에 대해 알아보려고 합니다. 0. Bastion host란? 먼저 Bastion은 직역해보면 군사, 요새에서 성 외곽을 보호하기 위해 돌출된 부분을 의미합니다. 따라서 Bastion host는 적을 가장 효과적으로 방어할 수 있는 host 겠구나.라고 생각해볼 수 있겠는데요. 말 그대로 컴퓨터 네트워크에서 적을 방어하기 위해서..

2022.07.29 게시됨

Back-end/Nest.js

[Nest.js] jwt를 사용한 @UseGuard 구현, NestJs Guard 란?

NestJs를 사용한 프로젝트 내용을 간단하게 정리해보면 GCP IAP를 사용해서 회사 내의 Admin Application들의 접근하는 계정들을 관리하고, 각각 Admin Application 내에서의 권한들을 수정 및 추가, 그리고 모든 변경들을 로깅을 할 수 있는 Application(Admin의 Admin?)을 개발하고 있습니다. 여기 프로젝트에서 가장 중요한 부분이라고 할 수 있는 '권한'이라는 단어가 나오는데요. NestJs에서 권한들을 어떻게 받아와서 권한에 따라 요청을 보냈을 때 응답 값을 각각 다르게 보내줄 수 있는지에 대한 방법을 이번 시간에 알아보려고 합니다. 0. NestJS에서의 Guard NestJS 공식문서를 참고해보면 Guard란 특정 상황들(permissions, roles..

2022.06.15 게시됨

Back-end/Server & Cloud

[Server] pub/sub 이란?

최근 회사에서 MSA로 마이그레이션을 진행하고 있습니다. 거의 대부분은 MSA로 프로젝트들이 설계되어 있죠. MSA에 대해서는 이 블로그에서 아주 간단명료하게 설명되어 있으니 모르시는 분들은 한 번 보고 오시는 걸 추천드립니다! 0. pub/sub을 알기 전, 메세지 큐(Message Queue) 란? MSA구조에서는 하나하나의 애플리케이션끼리 통신을 해야 하거나 한 API에서 다른 API로 데이터를 넘겨야 하는 순간들이 생기게 됩니다. 여기서 메세지 큐가 등장하는데요. 메세지 큐(Message Queue)는 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나로, 메세지 지향 미들웨어(Message Oriented Middleware: MOM)를 구현한 시스템을 의미합니다. 메..

2022.06.09 게시됨