전체 글

어차피 이 세상은 아만보
· Study/CI&CD
최근에 작업하고 있는 프로젝트에 API용 django가 하나있다. 이 django를 프론트가 사용할 수 있도록 EC2에 호스팅을 하는 중이다. 개발 중간중간에 변경사항들을 매번 인스턴스에 접속해서 재시작해주는 과정이 번거로워 간단하게 Github Actions를 이용해 code가 push되면 그 내용을 반영시켜 바로 배포되도록 구성을 해보았다. 이번에는 django 프로젝트를 EC2 인스턴스에 배포하는 Github Actions 파이프라인을 구성해보도록 한다.EC2에 배포되는 django 서버는 Docker로 컨테이너화 시켜서 docker-compose를 이용해 배포하도록 한다. 이 글에서 다루는 전체적인 배포 파이프라인은 다음과 같다. AWS Credential 설정Github Actions를 실행하는..
23년 3월 소집해제와 동시에 복학해서 24년을 맞고, 예비군 통지서가 날라오게 되었다.24년은 학생예비군 소속으로 우리 단과대와 함께 장소는 수원화성오산과학화예비군훈련장으로 배정되었다.  훈련장 위치  소집 마감 시간은 9시로, 필자의 경우 단체 버스이동이 아닌 자차로 이동했다. 대략 8시 근처쯤 훈련소 근처에 다다라서 고속도로를 빠져나오면 무수히 많은 차들의 행렬이 대기중이기 때문에 최대한 여유있게 출발하는 것을 추천한다. 훈련소에 도착하면 입구 좌측으로 주차 타워가 위치한다. 면적도 넓고, 층수도 꽤 있어서 (4층?) 어지간하면 주차 공간에 문제될 경우는 없을 듯하다.  입장과 디지털 대시보드복장 갖추고 입장하면 바로 QR코드로 자가 진단을 진행하고, 입구에서 스마트폰 카메라 전/후면에 스티커를 붙..
· 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: ..
Omoknooni
Memorize