본문 바로가기

[Project] 프로젝트 삽질기56 (feat debug) 들어가며 여러분들은 만약 테스트 코드를 작성하지 않고 API를 개발한다면 API가 정상 동작하는지 어떻게 확인하시나요? 아마 서버를 직접 실행한 후, API를 여러 번 호출해 보면서 개발한 API가 정상적으로 동작하는지 확인해야 할 것입니다. 그 과정에서 로직 중간에 console.log 코드를 작성해서 실행하며 동작을 확인하기도 합니다. console.log 코드를 작성해서 디버깅을 하다가 우연히 운영 환경의 서버로 코드가 머지될 경우, 불필요한 로그 출력 코드가 추가되는 문제도 발생할 수 있습니다. 저는 이런 문제를 겪지 않기 위해 서버 개발을 할 때 디버거를 활용합니다. 디버거를 활용하면 console.log 코드로 확인하는 방식 보다 API 동작에 대한 문제를 깊게 파악할 수 있습니다. 주변을 둘..
[네트워크] Systems Manager 이해하기 들어가며 아키텍처를 설계하면서, 견고한 아키텍처를 설계하려면 어떻게 해야 할까 늘 고민하고 있습니다. 아키텍처의 네트워크 환경을 잘 구축하려면 어떻게 해야 할까 고민하던 중, VPC 개념에 대해 알 수 있었습니다. VPC에서 private subnet에 위치한 DB를 SSM을 활용하며 접근하기 위해 인프라 환경을 설정했는데요. SSM이란 무엇이며, 어떻게 SSM을 활용할 수 있는지에 대해 정리해야겠다고 생각했습니다. 그럼 지금부터 SSM에 대해 알아보겠습니다. SSM EC2에 SSH로 접근하려면, 키 페어를 활용해서 접근할 수 있는데요. 만약 SSH에 접근해야 하는 EC2가 늘어날수록, 관리해야 하는 키 페어가 많아질 수도 있습니다. 만약 하나의 키페어를 활용해서 접근한다 하더라도, 다른 개발자가 EC2..
[네트워크] NACL 및 보안그룹 이해하기 들어가며 아키텍처를 설계하면서, 견고한 아키텍처를 설계하려면 어떻게 해야 할까 늘 고민하고 있습니다. 아키텍처의 네트워크 환경을 잘 구축하려면 어떻게 해야 할까 고민하던 중, VPC 개념에 대해 알 수 있었습니다. 이번 기회에 VPC를 적용해서 더 나은 서버구조를 설계하고 싶었습니다. 아래 글은 유튜브 AWS 강의실의 보안 그룹과 AWS NACL에 대한 영상을 보고 정리한 내용이 적혀 있습니다. 자세하게 살펴보고 싶으신 분들은 영상을 참고해 주시면 됩니다. 이 글에서는 보안그룹과 NACL에 대해 알아보겠습니다. 보안 그룹 보안 그룹은 Network Access Control List(NACL)와 함께 인스턴스에 대한 인바운드 및 아운바운드 트래픽을 제어하는 가상 방화벽 역할을 합니다. 보안그룹에서는 기본..
[네트워크] NAT Gateway, Bastion Host 이해하기 들어가며 아키텍처를 설계하면서, 견고한 아키텍처를 설계하려면 어떻게 해야 할까 늘 고민하고 있습니다. 아키텍처의 네트워크 환경을 잘 구축하려면 어떻게 해야 할까 고민하던 중, VPC 개념에 대해 알 수 있었습니다. 이번 기회에 VPC를 적용해서 더 나은 서버구조를 설계하고 싶었습니다. 이 글에서는 NAT Gateway와 Bastion Host에 대해 알아보겠습니다. NAT Gateway와 Bastion Host NAT Gateway란 Amazon Virtual Private Cloud의 프라이빗 서브넷에 있는 인스턴스에서 인터넷에 쉽게 연결할 수 있도록 지원하는 가용성이 높은 AWS 관리형 서비스입니다. 만약 Private Subnet을 구성했다면, 서브넷 안에 EC2를 구성해서 사용할 수 있습니다. 이..
[네트워크] 인터넷 게이트웨이(IGW) 이해하기 들어가며 아키텍처를 설계하면서, 견고한 아키텍처를 설계하려면 어떻게 해야 할까 늘 고민하고 있습니다. 아키텍처의 네트워크 환경을 잘 구축하려면 어떻게 해야 할까 고민하던 중, VPC 개념에 대해 알 수 있었습니다. 이번 기회에 VPC를 적용해서 더 나은 서버구조를 설계하고 싶었습니다. 이 글에서는 인터넷 게이트웨이에 대해 알아보겠습니다. 인터넷 게이트웨이(IGW) Gateway란 다른 네트워크로 가기 위한 문으로, AWS의 Internel Gateway는 VPC에서 호스팅 하는 리소스와 인터넷 간의 통신을 가능하게 해주는 AWS 컴포넌트로서 쉽게 표현하면 VPC와 인터넷 간의 문 역할을 합니다. VPC는 기본적으로 인터넷과 격리된 사설 공간이기 때문에, 인터넷 통신이 가능한 공인 IP를 가지고 있더라도 ..
[네트워크] 라우팅테이블(Route Table) 이해하기 들어가며 아키텍처를 설계하면서, 견고한 아키텍처를 설계하려면 어떻게 해야 할까 늘 고민하고 있습니다. 아키텍처의 네트워크 환경을 잘 구축하려면 어떻게 해야 할까 고민하던 중, VPC 개념에 대해 알 수 있었습니다. 이번 기회에 VPC를 적용해서 더 나은 서버구조를 설계하고 싶었습니다. 이 글에서는 라우팅테이블에 대해 알아보겠습니다. Route Table Route는 경로를 뜻하고, Routing이란 경로를 설정하고 찾아가는 과정을 뜻합니다. AWS VPC에서 라우팅 테이블을 활용하면 라우팅을 설정할 수 있습니다. 라우팅 테이블은 서브넷 혹은 게이트웨이를 통해 네트워크 트래픽이 어디로 향하는지 알려주는 이정표입니다. 라우팅 테이블을 사용해서 네트워크 트래픽이 전달되는 위치를 제어합니다. 서브넷은 내부(VP..
[네트워크] Region, AZ, Subnet, CIDR 이해하기 들어가며 아키텍처를 설계하면서, 견고한 아키텍처를 설계하려면 어떻게 해야 할까 늘 고민하고 있습니다. 아키텍처의 네트워크 환경을 잘 구축하려면 어떻게 해야 할까 고민하던 중, VPC 개념에 대해 알 수 있었습니다. 이번 기회에 VPC를 적용해서 더 나은 서버구조를 설계하고 싶었습니다. 이 글에서는 Region, AZ, 서브넷에 대해 알아보겠습니다. Region과 AZ(Availability Zone) Region은 단어 뜻 그대로, 지역이라는 뜻입니다. AWS의 모든 서비스가 존재하는 물리적인 위치를 뜻합니다. 만약 대한민국에서 AWS 서비스를 사용한다면, 많은 분들이 ap-northeast-2 리전에서 서비스를 사용할 것입니다. AWS는 다양한 리전에서 서비스를 제공하고, 이런 리전 안에는 여러 개의 ..
[Project] 프로젝트 삽질기55 (feat firestore, bigQuery, functions) 들어가며 NestJS와 TypeORM을 활용하여 프로덕트를 만들고 있습니다. 제가 개발하고 있는 서비스에는 채팅 기능이 존재합니다. 유저가 서비스 내에서 채팅을 할 때 생성된 데이터는 Firebase의 Firestore에 저장하고 있습니다. 한 번은, 사용자들이 언제, 어느 시간대에 채팅을 하는지와 관련된 행동 데이터를 분석하고 싶었습니다. 데이터를 분석하려면 Firestore의 데이터를 모두 조회해야 했는데, 전체 데이터를 조회하는 과정이 상당히 번거로웠습니다. 만약 Firestore에 저장된 데이터를 BigQuery로 옮긴다면, 보다 빠르고 효율적으로 채팅 데이터를 분석할 수 있다고 판단했습니다. Firestore의 데이터를 BigQuery로 옮기는 과정에서 Cloud Functions를 사용했습니다..
[Project] 프로젝트 삽질기54 (feat 검색 로그 구축 4) 들어가며 저번 글에서 적재한 로그 데이터를 분석하기 위한 방식에 대해 알아봤습니다. 이번 글에서는 추출한 데이터를 시각화하는 방식에 대해 정리해보려 합니다. 바로 시작하겠습니다. 데이터 시각화 데이터 시각화는 위처럼 구성했습니다. Athena를 활용하여 데이터를 조회하고, 조회한 데이터를 QuickSight에서 시각화하는 방식을 구성했습니다. 그럼 QuickSight로 어떻게 데이터를 시각화하는지에 대해 알아보겠습니다. QuickSight QuickSight는 AWS에서 제공하는 serverless managed BI 상품입니다. 여기서 BI란, Business Intelligence의 줄임말로, 데이터를 통합하고 분석해서 기업 활동에 연관된 의사결정을 돕는 프로세스입니다. QuickSight를 사용하여..
[Project] 프로젝트 삽질기53 (feat 검색 로그 구축 3) 들어가며 저번 글에서 검색 로그 구축을 위한 AWS 환경 세팅 방식과 로그 적재 방식에 대해 알아봤습니다. 이번 글에서는 적재한 로그 데이터를 분석하기 위한 방식에 대해 정리해보려 합니다. 바로 시작하겠습니다. 데이터 분석 아키텍처 데이터 분석 아키텍처는 위처럼 구성했습니다. AWS Glue Crawler를 활용하여 데이터가 모여 있는 S3버킷에 저장된 로그의 스키마를 생성했습니다. 그 후 AWS Athena를 활용하여 Glue Crawler를 활용해서 카탈로그화 한 데이터를 SQL문을 활용하여 조회하는 과정을 구축했습니다. 그럼 Glue를 활용하여 스키마를 생성하고, Athena를 활용하여 데이터를 조회하는 과정을 어떻게 구현할 수 있는지에 대해 알아보겠습니다. Glue Glue는 AWS에 저장된 데이..