본문 바로가기

잡부생활

(27)
Python locust load test tool 보통 벤치마크는 간단히 ApacheBenchmark를 통해 Req 임계치, Latency 정도를 확인하거나, (ab -n 100 -c 5 -C "somecookie=rawr" http://google.com/) Jmeter, nGrinder(Java)와 같은 프로그램을 통해 더 많은 정보를 확인하거나(nGrinder는 안 써봄) 장점 1. GUI 환경 2. 필요 시 플러그인 사용 단점 1. GUI 환경 2. 필요 시 플러그인 사용 3. 환경 구성이 짜증남 4. 메모리 소모가 매우 큼 구성해놓은 Jmeter 클러스터 VM들은 다시 start 하기도 싫음... 뭔가 버벅이는 느낌.. 그러던 중 Python locust를 발견 Installation — Locust 0.12.2 documentation On ..
IT 미디어 그리고 클라우드 먼저 미디어의 사전적 의미를 알아보자. “어떤 작용을 한쪽에서 다른 쪽으로 전달하는 역할을 하는 것.” 그럼 IT에서 미디어란 무엇일까? 연속된 사진을 압축하고 네트워크를 통해 사용자에게 전달하는 일련의 작업이라고 말할 수 있다. 그럼 IT 트래픽에서 미디어가 차지하는 비중은 얼마나 될까? 과학기술정보통신부에 의하면 국내 분야별 모바일 트래픽 추이에서 동영상(미디어)이 차지하는 비율은 압도적으로 높다. 앞으로도 4K 등의 보급으로 미디어 트래픽이 급격하게 성장하리라 누구나 예상할 수 있다. IT 시장에서 트래픽은 곧 회사의 가치로 평가되기 때문에 미디어 플랫폼 회사의 가치는 시간이 지날수록 더욱 높아질 것이다. 화질 그럼 본론으로 IT 미디어의 워크플로를 알아보자. 처럼 IT 미디어의 워크플로를 보면, ..
CORS (simple, preflight request) https://developer.mozilla.org/ko/docs/Web/HTTP/CORS 교차 출처 리소스 공유 (CORS) 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행합니다. developer.mozilla.org https://nhj12311.tistory.com/69 CORS 처리 시 options는 왜 부르는거지?(Simple, Pre-flight) 이번에 별도 시스템을 개발하..
알리바바 클라우드(Alibaba cloud) CDN 분석 알리바바 클라우드 CDN에 대한 Basic Architecture 구성 가능 여부 및 AWS 와의 기능 비교 검토를 진행했다. - Basic Architecture Test 가장 일반적으로 사용되는 이미지, 비디오 스티리밍, 실시간 비디오 스트리밍 CDN에 대한 기본적인 기능을 알리클라우드 환경에서 검증을 진행했다. - Detailed Function Test 알리바바 클라우드 CDN에서 제공하는 기능들에 대해서 기술 검토를 진행했고, AWS CloudFront와의 비교 검증을 진행했다. 1. 이미지 캐싱 캐싱을 위한 가장 단순한 구성으로 CDN과 Storage 구성이다. 알리바바 환경에서는 아래와 같이 대체 구성이 가능하다. AWS CloudFront -> Alibaba Cloud CDN AWS S3 ..
도커컴포즈로 node.js 환경 구성하기 VScode를 이용해서 간단한 node 샘플 app.js을 생성한다. 먼저 node init을 통해 package.json을 생성한다. 사용하는 lib는 express, nodemon 이다. { "name": "nodeindocker", "version": "1.0.0", "description": "node express app in docker", "main": "app.js", "dependencies": {}, "devDependencies": { "express": "^4.17.1", "nodemon": "^1.19.4" }, "scripts": { "start": "node app.js" }, "author": "leedoing", "license": "ISC" } 샘플 node 서버 스크립트..
도커컴포즈로 워드프레스 구성하기 도커 컴포즈를 이용하여 워드프레스를 쉽게 구성할 수 있다. 먼저 환경변수를 생성한다. .env 파일 MYSQL_ROOT_PASSWORD=mysql_root MYSQL_USER=wp_user MYSQL_PASSWORD=wp_password 그리고 도커 컴포즈를 생성한다. docker-compose.yml version: '3.3' services: db: image: mysql:latest env_file: .env environment: - MYSQL_DATABASE=wordpress volumes: - dbdata:/var/lib/mysql command: --default-authentication-plugin=mysql_native_password wordpress: depends_on: - db ..
도커컴포즈로 Apache, PHP, MySQL 환경 구성하기 도커 컨테이너를 이용하여 로컬 APM 개발 환경을 구성해보자. /php/web_dev 경로에 Dockerfile을 저장한다. (파일명 Dockerfile) Dockerfile은 단순히 도커 컨테이너 이미지를 빌드해주는 파일이다. docker-compose의 경우 도커 컨테이너를 정의해주는 파일이다. 아래와 같이 Dockerfile은 php:7.3.3-apche 이미지를 빌드한다. FROM: 도커 이미지 선택 RUN: 도커 컨테이너 내에서 실행하는 커맨드 EXPOSE: 포트 바인딩 FROM php:7.3.3-apache RUN apt-get update && apt-get upgrade -y RUN docker-php-ext-install mysqli EXPOSE 80 docker-compose의 경우 아..
AD FS 이용해서 AWS SAML 2.0 연동하기 AD FS를 이용하여 AWS SAML 2.0 연동에 대해 설명한다. AD FS 구성이 되어 있다는 전제로 진행한다. 개요 - AD FS를 이용해 AD의 계정을 AWS Web Console 또는 CLI에서도 사용 가능하도록 설정한다. - AD FS에서 AD의 인증을 통해 AD의 c.value인 Group 값과 AWS IAM Role의 Name 값을 비교하여 1:1 매핑(Mapping) 시켜 동작한다. - 동작은 AD User Group의 접두사(AWS-) 뒤의 Name과 AWS IAM Role의 접두사(ADFS-) 뒤의 Name을 비교하여 동작한다. - AD FS는 AD 인증 후 User의 E-mail Address를 AWS Web Console에 전달한다. - AWS Web Console은 ADFS에서 ..
도커컴포즈로 리액트 환경 구성하기 도커 컨테이너를 이용해서 React App 개발 환경을 구성해보도록 하자. 리액트를 사용하기 위해서는 먼저 npx 라이브러리가 설치되어 있어야 한다. npm -i npx -g npx를 설치한 후에 아래 명령어를 통해 리액트를 로컬 환경에서 셋업할 수 있다. npx create-react-app movie_app 로컬 개발 환경을 구성했다면, 이제 Docker-compose.yml과 Dockerfile를 통해 도커 환경을 구성하자. 아래와 같이 Docker-compose.yml 파일을 생성한다. 마지막 CHOKIDAR_USEPOLLING=ture은 App이 수정되었을 경우 Reload이 가능하도록 하는 설정이다. 이거 찾느라 2시간을 삽질했다. version: '3.7' services: movie_app..
CSS flex, grid 정리 주로 사용하는 엘리먼트 div: 개행 처리(display: block) section: 개행 처리(display: block) a: 개행 X(display: inline) span: 개행 X(display: inline) display block은 크기 조절이 가능 inline은 크기 조절이 불가능 inline-block은 인라인과 블록 속성을 동시 display: flex flex는 container에 적용 flex-direction: row(기본), column flex-wrap: wrap(브라우저 스크롤에 따라 정렬) justify-content: flex-start(기본), flex-end, center, space-between, space-around (row 정렬) align-items: s..
XGBoost 파라미터 정리 XGboost 파라미터 정리 objective(default는 reg:linear) reg:linear: 시계열데이터 binary:logistic: 이진 분류 데이터 multi:softmax: Multi-class Classfication에 유리(e.g Iris) multi:softprob: softmax와 같지만 각 클래스에 대한 예상 확률을 반환 num_roud: 트레이닝 루프 early_stopping_rounds=10(오버피팅 발생 시 참고) Stopping. Best iteration: [36] validation_0-logloss:0.363641 validation_1-logloss:0.485134 High Bias의 경우 언더피팅 발생 High Variance의 경우 오버피팅 발생
Windows 10에서 Linux 사용하기 윈도우10 에서 Virtual Box 등 가상화 도구 없이 간단하게 리눅스를 사용할 수 있다. 로컬에서 쉘 스크립트 등 간단한 프로그래밍을 할 때 유용하다. 먼저 Microsoft Store에서 Linux를 검색한다. Linux를 검색하면 아래와 같이 Ubuntu부터 Debian 등 여러 리눅스 OS의 유틸리티 도구를 확인할 수 있다. Ubuntu 유틸리티를 설치하고 실행하면 아래와 같은 에러를 볼 수 있다. Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x8007019e The Windows Subsystem for Linux optional component is not enabled. Ple..
ES6, 7, 8 정리 [1] Variables 1. Var - var는 더이상 쓰지마라. - const를 써라. 대신 const의 하위 오브젝트 제어는 가능. - let도 지양 하지만 오브젝트를 변경해야 할 일이 있을 변수에는 사용. 그래도 웬만하면 const. 2. Hoisting / Block Scope - 지겨운 호이스팅 - const, let 사용 시 호이스팅에 트랩에서 빠져 나올 수 있음 3. Block Scope - f a{ f b{}} a에서 b의 object로 접근할 수 없고, b에서 a는 가능 - 당연히 if, for 등 {} 버블 내에서는 모두 적용 4. 정리 - const, let, hoisting, block scope를 기억해라. [2] Functions 1. Arrow Functions const n..
Babel 6/7 후아 이틀 삽질한 내용.... 1. Error: only one instance of babel-polyfill is allowed babel을 전역변수로 단 한 번의 정의만 가능하므로, 어딘가에 너는 babel-polyfill을 import 하고 있을 것이야.. 2. ReferenceError: regeneratorRuntime is not defined async function myFunc(){} -> const myFunc = async function(){} 3. Runtime Error 문제(.babelrc) @babel/transform-runtime 플러그인 추가 { "presets": [["@babel/preset-env"]], "plugins": [["@babel/transform-ru..
OpenVPN, OpenLDAP OpenVPN / OpenLDAP 둘 다 AWS AMI 사용 OpenVPN LDAP 설정(OpenLDAP uid / ADDS sAMAccountName) Organisational Unit -> Posix Group -> User Account 기본적으로 APP -> LDAP 구성 AWS 계정 연동을 위해서는 AD Connector 필요(Microsoft / OpenLDAP) Directory Service를 이용하여 Directory 관리 가능하나, LDAP Query를 지원하는 ADFS 등은 필요
Node Callback / Promise / async&await Callback 문제 예시 const posts = [{ title: "Post One" }, { title: "Post Two" }]; function getPosts() { setTimeout(() => { let output = ""; posts.forEach((post, index) => { output += post.title + "\n"; }); console.log(output); }, 1000); } function createPost(post) { setTimeout(() => { posts.push(post); }, 2000); } getPosts(); createPost({ title: "Post Three" }); Callback 해결 const posts = [{ title: "P..
Alibaba Cloud ECS 간단 사용기 중국 서비스 테스트를 위해 Alibaba Cloud를 이용하여 테스트용으로 VM 한 대를 사용할 계획이었으나, 결국 실패했다. Ali Cloud 사용 계획이 있는 분에겐 도움이 되기를 바라며 글을 남긴다. 내용은 기술이나 기능 뭐 그런게 아니라, 어떻게 알리클라우드를 이용해서 중국에 서비스를 할 수 있는지에 대한 설명이다. 준비할 라이센스? 아래는 Ali Cloud의 Web Console이며 지원하는 언어는 현재 영어, 중국어, 한국어가 있다. 특이점은 일본어가 없다. 반일 감정인가...리전은 있나? 항목을 보면 IaaS 이상의 여러 서비스를 제공한다. MongoDB가 있다는게 인상적이다. Web Console 및 서비스 네이밍이 직관적이다.Elastic Compute Service 선택, Ali에서는 ..
HTTP 헤더 모니터링 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114'use strict'const AWS = require('aws-sdk')AWS.config.region = 'ap-northeast-2'const CronJob = require('cron').CronJobconst sns = new AWS.SNS();const waterfall = req..
ffmpeg 활용 영상 모니터링 ffmpeg 체크 ./ffmpeg -i $URL -codec copy -t 0 -f null /dev/null FFmpeg Converting video and audio has never been so easy. $ ffmpeg -i input.mp4 output.avi News October 5th, 2019, Bright Lights FFmpeg has added a realtime bright flash removal filter to libavfilter. Note that this filter is not FDA approved, nor are we me www.ffmpeg.org 블랙 / 화이트 영상 감지 ./ffmpeg -i $URL -vframes 1 -an -s 720*400 -f mj..
Wowza 설정 관련 Wowza 가이드 문서http://www.wowza.cn/WowzaStreamingEngine_UsersGuide.pdf https://www.wowza.com/docs/how-to-configure-a-wowza-server-as-an-http-caching-originUI -> Edge 모드 적용 후 -> 아래 Config 설정(청크가 시퀀스하게) httpOriginMode on String Request 헤더에 따라 Response 헤더 변경(모듈을 만들지 않는 이상, 커스텀 헤더 조작은 메뉴얼하게만 가능) StreamNameAlias AddOnhttps://www.wowza.com/docs/how-to-get-the-streamnamealias-addon
AWS Windows2008 R2 Client NFS 설정 1. NFS Client 구성1-1. Server Manager -> Roles -> Add Roles -> File Services -> Services for Network FS1-2. Windows Firewall -> Inbound Rules -> File and Printer Sharing(모든 Name) -> Enable Rule 2. UID/GID regedit 설정2-1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default2-2. 두 DWORD 값을 추가 AnonymousUid, AnonymousGid2-3. 이 값을 공유 Linux 디렉토리의 소유자 UID/GID로 설정2-4. NFS 용 클라이언트 서비스를 ..
개발 javascript 디버깅 casperjs https://www.youtube.com/watch?v=RB-bpFEUxzo#t=1010.418172
IPv6, IPv4 통신 IPv6->IPv6 / IPv6->IPv4 / IPv4->IPv4 통신 정리https://winter.kics.or.kr/storage/paper/event/2015_winter2014/publish/14C-56.pdfhttp://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/enterprise-ipv6-solution/white_paper_c11-676278.html 국내 ISP IPv6 관련http://blog.naver.com/nackji80/220050318467 CloudFront: IPv6 Enable 설정Route53: AAAA Record 등록(DNS64 지원 X)
MySQL Hostname 기준 VPN 접근 시 문제 MySQL Hostname 기준 계정 설정은 Client IP의 역방향 DNS 질의를 통해 Hostname과 비교 VPN 연동 시 사설 IP에 대한 역방향 DNS 질의를 통해 사설 Hostname을 가져옴, 계정 설정한 Hostname과 달라서 Connection 에러 발생 따라서 계정은 사설 IP 기준 권장, Hostname을 써야 한다면 역방향 질의된 Hostname 설정이나 Local DNS 변경을 통해 가능
네트워크 상태 확인(mtr) 예시) mtr -r -c 10 -T -P 80 www.naver.commtr -r -c 10 -T -P 80 52.79.111.111-r : report, -c : count-T옵션은 icmp echo대신 tcp syn패킷을 보내는 것이다. syn 패킷이 데이터를 포함하지 않기 때문에, 패킷사이즈는 무시된다. -P옵션은 port 넘버 mtr이 설치(1) redhat계열(redhat, centos, amazon linux): yum install mtrmtr --version 0.85버전 이하라면 아래 명령어 실행.wget ftp://fr2.rpmfind.net/linux/centos/7.2.1511/os/x86_64/Packages/mtr-0.85-7.el7.x86_64.rpmrpm -Uvh mtr-0...
MySQL 모니터링 솔루션(오픈소스, Prometheus+Grafana) https://www.percona.com/blog/2016/02/29/graphing-mysql-performance-with-prometheus-and-grafana/
AWS goofys file system goofysgoofys -o allow_other --uid 500 --gid 500 leedoing-test /mnt