전체 글

어차피 이 세상은 아만보
· ToyProject
이번 프로젝트에서 API 부분은 Django와 drf(djangorestframework)를 사용해서 구현하기로 했다.우선 사용자로부터 비디오파일을 업로드받아 이를 Bucket에 저장하고, 저장됨과 동시에 Model 처리 서버로 하여금 처리작업을 시작하도록 파이프라인을 구성했다. 그 뒤로 Model 처리 결과 중 RISK 탐지내역을 클라이언트에 프레임 별로 처리되는 즉시 전송을 해주어야한다. 아무래도 주제가 CCTV 관제의 보조 도구이므로 실시간성이 무엇보다도 중요하게 다가왔다.이를 위해서는 RISK 탐지 내역의 Streaming API의 구현이 필요했다. Streaming의 구현에서 주로 언급되는 기술로는 폴링과 웹 소켓이 있다. 이외에도 SSE(Server-Sent Event)기법이 있다.이 기술들 ..
· Study/Server
졸업 캡스톤 프로젝트에서 사용해보기 위해 라즈베리파이 4B 모델을 구하게 되었다.그리고 이 라즈베리파이에 카메라 모듈도 연결해 영상 스트림을 생성해야했었다.이번에는 라즈베리파이의 초기 설정과 카메라 모듈까지 연결하는 과정을 알아보도록 한다. 라즈베리파이 초기 설정먼저 제품 박스를 열면 손바닥 크기도 채 안되는 사이즈의 메인보드 기판이 나오게 된다.번외로 라즈베리파이 4B의 단자 구성은 아래와 같다.USB 2.0 포트 X 2USB 3.0 포트 X 2기가비트 이더넷 포트micro HDMI 포트 X 2USB-C 파워 포트 먼저 파이에 들어갈 OS를 설치해주어야 한다.기본적으로 파이는 SD카드를 스토리지로 삼는다. SD카드 슬롯은 좌측 (USB 포트 반대편) 하단에 위치한다. ..
· Cloud/IaC
지난 3-tier VPC 구축에 이어서, 이번에는 Application단(EC2, ALB 등)을 설계해보도록 한다. 아키텍쳐 구성도 Terraform 코드 작성 Application 단에서 생성할 리소스는 크게 다음과 같다. 인스턴스 4개 보안그룹 키 페어 ALB 2개 (외부, 내부) 대상그룹 2개 (외부, 내부) 먼저 Application 모듈의 변수들을 구성한다. Application 단에서 사용될 외부 변수들에는 주로 vpc 관련의 것이 있다. 인스턴스를 생성할 때 사용될 vpc_id나 배치될 서브넷의 id 값이 여기에 해당된다. 이외에도 ami의 id값이나 미리 생성해둔 security group의 id 같은 리소스도 변수로 불러와서 사용할 수도 있을 것이다. variable "vpc_id" {}..
· Cloud/AWS
작년 여름 Solutions Architect Associate를 취득한 뒤, 이번에는 Security Specialty에 도전을 해보았다. 원래는 이후 AWS 자격증에 도전할 생각은 딱히 없었다. 그나마 Associate 다음 단계인 아키텍트 Professional을 생각해보는 정도였다. 앞서 Associate 취득에 대한 Benefit으로 다음 Certified 응시 금액 50% 할인권을 줬기에 안쓰기도 뭔가 아깝다는 생각도 들고, 이왕 도전하는 김에 관련 업무를 진행해봤던 Security 쪽으로 해보자라는 생각이 들어서 신청하게 되었다. 결과적으로는 굉장히 널널하게 합격할 수 있었다. 관련 업무를 진행해봐서 그런지, 아니면 AWS 지식이 조금 늘어서 그런 것인지는 몰라도 개인적으로는 SAA보다 쉽게..
· Security
OAST Out-of-band Application Security Testing의 약자로, Out-Of-Band를 이용해 취약점 테스팅을 진행하는 것을 의미한다. Out-of-Band(이하 OOB)란 Victim 서버에서 Outbound 방향으로 향하는 TCP/UDP/ICMP request를 생성하는 공격 기법 중 하나이다. 이러한 Request를 통해 Victim의 데이터를 유출하는 등의 공격을 진행할 수 있다. 보통 Blind 계열 공격이나 SSRF, RCE와 같은 취약점을 검증하기 위해 사용하는 방법들이 각각 어느정도 존재한다. 이러한 Blind 계열의 테스팅에서는 주로 HTTP 요청이 발생하는 Payload를 작성하는 편이였다. 하지만, HTTP의 Outbound가 차단된 내부 환경인 경우, 이..
· Cloud
Prometheus 공식 문서에 따르면 Prometheus에서 Alert는 크게 2가지 컴포넌트로 구성되어있다.Alert Rule : PromQL을 기반으로 정의하는 알람이 발생할 규칙AlertManager : 수신받은 Alert를 다양한 서비스에 notify를 수행오늘은 Prometheus의 Alert 아키텍쳐를 알아보도록 한다. Alerting RulePrometheus 쿼리문(PromQL)을 바탕으로 정의하는 알람 조건, 조건에 맞아 알람이 발생하면 연결된 외부 서비스로 알람을 전달하게 된다.Prometheus에서 Alert Rule을 선언하는 방법으로 Prometheus 웹 GUI 상에서 선언해주는 방법과 설정파일을 작성하는 방법이 존재한다.groups:- name: example rules: ..
· Study/K8s
이번에는 Public Cloud의 Kubernetes 서비스와 로드밸런서 서비스의 연동을 진행해본다.Naver Cloud Platform(이하 NCP)의 Kubernetes 서비스, NKS를 이용해볼 것이며 로드밸런서에 SSL 인증서까지 연결하는 과정까지 진행해보도록 한다. 사용된 예제 ALB Ingress Controller 활용 예제 guide.ncloud-docs.com NKS 클러스터 생성NKS에 클러스터를 생성하고, 이 클러스터에 접속해서 작업하기 위해 몇가지 선행작업이 필요하다. 1. ncp-iam-authenticator 설치 및 설정NKS의 API를 호출하기 위해 IAM 인증이 필요하다. 이를 위해 ncp-iam-authenticator를 다운받아야한다. ncp-iam-authenticat..
· Study/K8s
앞서 알아보았던 Service 중 외부 요청을 처리하기 위한 것에는 NodePort가 있었다. NodePort는 클러스터 내의 모든 노드에 특정 포트를 오픈시켜 외부로부터 접근할 수 있도록 하는 서비스이다. 이러한 방식으로 클러스터 내부 네트워크로 접근하는 방식에는 사실 몇가지 애로사항이 존재한다. 포트 사용 문제 NodePort는 각 서비스별로 하나의 포트를 고정으로 사용한다. NodePort 기본 정의에 따라 30000~32767 사이의 포트만 지정해줄 수 있다. SSL 인증서 사용 불가 이러한 애로사항을 해결해주기 위해 LoadBalancer 서비스를 사용할 수 있다. 하지만 LoadBalancer는 Public Cloud에 많이 의존하게 되는 것부터 노출시킬 서비스에 대해 각각 IP주소를 가진다는..
Omoknooni
Memorize