Category Archives: 미분류

AWS IVS 를 사용하여 Low Latency Live Streaming 구현하기

HYEONG HWAN, MUN/ 5월 10, 2022/ 미분류/ 0 comments

작성중.   솔루션즈 아키텍트 나 또한 AWS Solutions Architect 자격증을 취득하였기 때문에, SA라고 칭하도록 하겠다. SA는 클라우드 컴퓨팅이 도입되면서 나타난 포지션이다. Infra Structure 또한 Software Service 처럼 다루어지기 시작하면서, 이 서비스들을 사용해서 얼마나 잘 설계했느냐가 중요한 요점이 되었다. SA는 요구사항을 이해하고 서비스들을 설계하는 일을 하는 사람이다. 인프라는 단순히 서버 한대를 말하는 것이 아니다. CPU, RAM, DISK 를 넘어서, 네트워크 장비, 글로벌 통신망, 미디어 장비, 심지어 위와 같이 인공위성 또한 Infra 에 포함된다. 참고로 1분당 12000원을 내면 인공위성을 사용할 수 있다.  (사용처 : 일기예보, 항공뷰 등)   라이브 스트리밍 지금 이렇게 가볍게 블로그에 글을 쓸 수 있는 것은, 이미 다 구축하였고, 국내 대기업들 상대로 2년이상 무사히 운영중 이기 때문이다. COVID19이 터지기 두달 전에 개발완료 했었는데, 다행히(?) COVID19이 터지고, 비대면 수요가 엄청 증가하면서…

Ubuntu desktop 1일 사용 후기

HYEONG HWAN, MUN/ 5월 1, 2022/ 미분류/ 1 comments

아직도 소프트웨어 지원이 부족하네요. 사용하는데에, 개발자 정도의 지식수준이 필요합니다. 폰트 문제도 있습니다. 안되는걸 되게 할 수는 있는데, 너무 많은 고통이 필요합니다. 역시 컴퓨터는 mac 이 최고인것 같네요! 한줄 결론 : 괜히 이상한 짓 하지 말자.

Ubuntu 22.04 LTS 에서 웹서버(Apache + PHP + MySQL) 구성하기

HYEONG HWAN, MUN/ 4월 25, 2022/ 미분류/ 4 comments

이 글을 통해 Ubuntu 22.04 LTS 운영체제에서 APM 웹서버를 구축하는 방법에 대해 알아보도록 하겠습니다. 일반 사업체 및 실무 서비스에서 사용할 수 있는 안정적인 구축 방법을 설명 하겠습니다. * 리눅스 명령어 환경으로 접속하는 방법을 모른다면 이 글로 이동하세요. 리눅스 명령어 환경으로 원격 접속하는 방법 : https://blog.lael.be/post/7574 * 리눅스 설치 후 기초 원격접속 설정을 하려면 이 글로 이동하세요. 리눅스 서버 ssh 원격접속 설정하기 : https://blog.lael.be/post/7678 * VI 에디터(리눅스 편집기) 사용하는 방법 : https://blog.lael.be/post/7321 * Ubuntu 클라우드 서버호스팅을 찾는 중이라면 https://blog.lael.be/post/44 글로 이동하세요. * 서버에 파일을 업로드하고 싶다면 Filezilla 를 사용해보세요. https://filezilla-project.org/ * 유료 도메인을 구매 하려면 https://blog.lael.be/post/6357 글로 이동하세요. LTS 란 무엇인가? * LTS 버전이란? Long Term Support 의 약자입니다. Ubuntu Canonical Group에서 10년간의 패키지 유지보수, 업데이트를 제공합니다. 개별 소프트웨어의 버그나, 보안상의 문제가 생기면 (해당 소프트웨어의 Lifetime이 끝났을지라도) Ubuntu Canonical…

SSH 키, OpenSSH 키, 그리고 내 서버에 키를 사용해서 로그인하기

HYEONG HWAN, MUN/ 3월 30, 2022/ 미분류/ 0 comments

이 글을 통해 무심코 그냥 사용하고 있는, SSL, HTTPS, RSA, Public key 암호화 방식에 대해 알아보도록 하자. 공개 키와 개인 키 공개 키 인증은 암호 인증보다 더 안전합니다. 이것은 컴퓨터가 인터넷에서 노출되어 있는 경우 특히 중요합니다. 만약 암호 인증 만으로도 충분히 안전하다고 생각한다면 서버의 /var/log/auth.log 파일을 살펴보십시오. 공개 키 인증 방식의 요소는, 공개 키와 개인 키로 이루어져 있습니다. 각 키는 특별한 수학적 속성을 가진 엄청나게 큰 숫자입니다. 공개 키 알고리즘 표준 – RSA 방식 알아보기 Q) 221 = A * B 일 때, 각 A, B 는 무엇인가? A) 13 * 17 이처럼 2개의 매우 큰 소수(prime number)를 찾은 후 이것들을 곱한 값을 사용하는 방식이 RSA 암호화. Q) 2140324650240744961264423072839333563008614715144755017797754920881418023447140136643345519095804679610992851872470914587687396261921557363047454770520805119056493106687691590019759405693457452230589325976697471681738069364894699871578494975937497937 = A * B 일 때, 각 A, B 는 무엇인가?…

Ubuntu 22.04 LTS 에서의 기본 PHP 버전은 8.1.2 이군요.

HYEONG HWAN, MUN/ 3월 30, 2022/ 미분류/ 0 comments

웹서버 세팅 글을 작성하기 위해, OS패키지를 검토해보고 있는데, Ubuntu 22.04 LTS 에서의 기본 PHP 버전은 8.1.2 이군요. php 5.5.9 -> php 7.0 때의 변화보다 php 7.x -> php 8.0 때의 변화가 크기 때문에, php 소프트웨어들의 변화가 있을것 같네요. 유지보수 되지 않는 소프트웨어는 빠르게 사라질것 같습니다.   Backward Incompatible Changes https://www.php.net/manual/en/migration80.incompatible.php 를 보았는데, PHP개발자가 strict 하게 코딩하기를 바라는 마인드가 담겨있네요.   사용하시는 PHP소프트웨어가 8.1에서 잘 호환되는지 신중히 검토한 후 업데이트 하셔야 할 것 같습니다. 0 == “0” 은 여전히 계속 TRUE 를 리턴합니다. 0 == “” 는 TRUE 이었지만, 이제는 FALSE 를 리턴합니다.

AWS t3a, c5a, t4g, c6g 성능 비교

HYEONG HWAN, MUN/ 3월 15, 2022/ 미분류/ 0 comments

매우 heavy job 코드를 작성하였고, local docker 에서 개발 후, aws development 환경으로 올려서 테스트 했다. development 환경에서는 시간이 매우 오래 걸리더라. 시간이 오래 걸리는 원인은 처리하는 데이터 사이즈가 크기 때문이었다. 코드 자체는 간단한 것이라서, 코드상 최적화는 더 할 수 없는 상황이었다. 따라서 물리적인 해결방법을 하려고 생각하였고, aws instance family 별로 서버 환경을 다 구축하여, 동일한 코드로 성능 테스트를 해 보았다. 나는 RAM 이 4GB 인 서버를 매우 선호한다. 따라서 아래 Instance Size는 모두 4GB RAM 의 서버들이다. 현재 나는 ELB의 Path routing 기능을 사용하여, 경로별로 서버를 다르게 라우팅하여 고사양과 저사양 서버를 섞어서 사용 중이다.   m 은 사용한 peak memory 를 뜻한다. (단위 : MB) 1) t3a.medium 43.72 초 걸림.   2) c5a.large 28.93 초 걸림. 3) 나의 로컬…

tie breaker 의미

HYEONG HWAN, MUN/ 1월 27, 2022/ 미분류/ 0 comments

tie 의 뜻은 “무승부”. breaker 는 “파괴!” tie break, 타이브레이크는 무승부 파괴, 즉 승부를 정하는 규칙등을 뜻한다.   게임 및 스포츠 에서 타이 브레이커 또는 타이 브레이크 는 콘테스트 또는 일련의 콘테스트가 끝날 때 동점인 플레이어 또는 팀 중에서 승자를 결정하는 데 사용된다. 주로 게임이나 스포츠에서 사용하는 동률시 승부를 결정하는 규칙임.   거의 연장전 방식을 사용한다. 축구 : 연장전, 승부차기, 총 골득점 수 복싱 : 마지막 라운드가 KO없이 끝나면 3명의 심판이 승무패를 정한다. 레이싱 : 0.001초 단위로 분석한다.   서버 다루다가 Tie breaking Machine 이 나와서 찾아보았음. 또한 쿼리 다루다가 Tie breaking Query 가 나와서 찾아보았음.  

osquery 사용하기

HYEONG HWAN, MUN/ 1월 20, 2022/ 미분류/ 1 comments

모니터링 툴에서 제안이 있길래 검토해봄.   https://osquery.io/ 안정적인 오픈소스 무료 시스템 정보조회툴. SQLITE 의 확장 형태로 동작한다.   시스템의 많은 정보들을 TABLE 형태로 표시해준다. INSERT UPDATE 등의 SQL VERB 등도 지원해주나, 동작하는것은 오직 SELECT 뿐이다. 즉, 문법상으로 SQL 쿼리가 허용되나 SELECT 외의 것들은 handler 가 비어있다.   몇가지 설정을 통해 (Windows, Linux, Mac) OS 의 정보를 일정한 SQL을 사용하여 조회할 수 있음.   예시 : 시스템에서 현재 사용하고 있는 open_files 를 조회하고 싶을때 리눅스 native의 lsof 명령어를 사용해서 분석해도 된다. 하지만 상당한 노력이 필요하다. 이것을 osquery 로 사용하면 매우 간편하고 깔끔하게 살펴볼 수 있다. osquery> SELECT * FROM process_open_files;         osquery> select * from shell_history;     모든 서버에 배포하여, 중앙화된 관리를 하면 아래와 같은 모습이 됨.…

중앙 집중식 로깅 구현하기 – rsyslog

HYEONG HWAN, MUN/ 1월 13, 2022/ 미분류/ 0 comments

초고를 쓰고 틈틈이 다듬도록 하겠습니다. 현재는 trial and error 에 대해 적었음.   ubuntu 20.04 를 사용했음. Ubuntu 의 기본 System Log 는 /etc/rsyslog.d/50-default.conf 파일을 따른다. # vi /etc/rsyslog.d/50-default.conf   혹시나 기록하고 싶지만 주석(#)에 의해 막혀져 있는 것이 있다면 주석을 제거하고 # service rsyslog restart 혹시 현재 생성되지 않은 로그파일이 있다면, 그 파일은 기록할 내용이 있을때 생성된다. (빈 파일이 즉시 생성되지는 않음)     https://itragdoll.tistory.com/79 주로참고 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=skddms&logNo=221204436898 도움 https://ujuc.github.io/2018/03/01/rsyslog_-_templates/ 슈벌 문서 포맷팅 때문에 보기가 매우 불편한 글이다.       서버에서 vi rsyslog.conf   == syslog 의 표준포트는 514 번임. 과거에는 udp 514 이었는데 udp 자체가 un reliable 이어서, tcp 도 나오고 여럿 나온듯.   UDP, TCP, TLS or RELP You can send RFC-3164 and RFC-5424 compatible syslog to Logs…

뉴인 회사 소개 및 채용 안내

HYEONG HWAN, MUN/ 1월 5, 2022/ 미분류/ 2 comments

제가 다니고 있는 회사의 소개 및 채용 안내 입니다. 소개 상세 페이지  : https://newin.notion.site/5f55a39cc3ad46908eaf7f87eb049501 뉴인 회사 소개   2020 09 Newin Japan 일본 법인 설립(요코하마) 터치클래스, 교육부 주최 ‘제16회 에듀테크 콘테스트’ 솔루션 부문 최우수상 08 터치클래스, 일본 시즈오카현 이러닝 솔루션 보급 사업 시범 사업 솔루션 선정 07 뉴캠퍼스, 130개 고객사 돌파 02 NIPA 주관 ‘SW고성장클럽 200 예비고성장’ 2차년도 지원 기업 선정   2019 12 터치클래스, ATD 2019 Japan Summit 참가, 단독 부스 개설 및 세션 발표 05 터치클래스, 2019 ATD ICE 참가, 단독 부스 개설 및 세션 발표 04 NIPA 주관 ‘SW 고성장클럽 200 예비고성장’ 지원 기업 선정 03 nPlayer, Mac(OS X) 버전 출시   2018 12 nPlayer, 애플 앱스토어 올해의 인기 유료앱 17위(아이폰), 4위(아이패드) 선정 04 터치클래스, 자체 과정 노동법…

서비스에 적절한 IOPS 수치 계산 하기 – 디스크 성능 측정하기

HYEONG HWAN, MUN/ 1월 3, 2022/ 미분류/ 0 comments

이 글을 통해 IOPS 의 개념에 대해 알아보고, 나에게 필요한 IOPS 값을 추정해 보도록 하겠습니다. 글 고치는중   파일 복사에 대해 생각해보기 A 위치에서 B 위치로 파일을 복사할 경우, 그 복사의 결과는 다음과 같습니다. 파일을 10746개(92.46 GB)를 복사했습니다. 124초 걸림. (745 MB/s)     길게 쓰려고 했는데 짧은 내용만 적어봅니다.   sysbench –test=fileio –file-total-size=12G prepare sysbench fileio –file-total-size=12G –file-test-mode=rndrw –time=100 –max-requests=0 run   TEST CASE 1 : t3a.medium(2Core 4GB RAM), NVMe SSD,  100 IOPS 기록속도가 129MB/s 로 나왔다. 너무 높음. 4697 IOPS / s. 이고 약 15MB/s 처리를 한다. 예상치보다 너무 높아서 doc 를 살펴봄. https://aws.amazon.com/ko/blogs/aws/new-ssd-backed-elastic-block-storage/ https://aws.amazon.com/ko/blogs/aws/new-burst-balance-metric-for-ec2s-general-purpose-ssd-gp2-volumes/       여러가지 테스트해봤는데 일반적으로 다음의 비례식이 성립되더라.   100 = 129.26 MiB/sec   1000 IOPS = 8 MBPS 일반적으로 쓸만한 SSD(EVO…

ALB 타겟그룹 기능을 사용해서, ALB에 고정IP 할당하기

HYEONG HWAN, MUN/ 12월 13, 2021/ 미분류/ 0 comments

Floating ip (유동아이피) IP가 어떤 한 장치에 고정되어 있지 않고, IP 가 여러 장치에 번갈아가며 할당될 수 있다.   Auto scailing 장치를 교체하거나, 트래픽 처리량이 많거나, 유지보수를 할 때, 새 IP장치가 추가되고 -> health check 가 끝나면 -> 기존의 목표한 장치 및 IP 가 제거된다. 이 작업이 시작될 때 로드밸런서는 IP 가 2개 => 3개 => 2개 가 된다. 유연한 트래픽 처리를 위해서 스케일링이 가능한 로드밸런서에는 고정IP 할당이 안된다.   원래는 고정IP 할당이 안되었었는데, 네트워크 로드밸런서 라는 상품이 추가되었고, 이것은 IP 고정을 설정할 수 있더라. 그리고 Global Accelerator 라는 것으로도 고정IP 할당이 가능하다. NLB를 통한 고정IP 방식은 Zone 당 1개의 IP 를 사용한다. Global Accelerator 는 2개의 Unicast IP를 할당받는다.     Global Accelerator 가 세팅이 편하니 먼저 설명하겠음. 라우터…

[MYSQL] 왜 insert 에 실패해도 auto_increment 값이 증가할까?

HYEONG HWAN, MUN/ 11월 23, 2021/ 미분류/ 0 comments

https://stuffdrawers.tistory.com/11 https://dev.mysql.com/doc/refman/5.6/en/innodb-auto-increment-handling.html#innodb-auto-increment-lock-modes bulk insert시 필요한 row 보다 182% 더 많이 auto increment 를 할당받는다. -> 21.11.24 : 확인해 봤더니 bulk row 의 binary 값 대로 할당하더라. 예시 : truncated table 에서 insert ~ select 대상이 8192(이진수 10 0000 0000 0000) 이라면, mysql innodb_autoinc_lock_mode 가 1일 경우, 11 1111 1111 1111 (16383) 개를 할당한다-항상홀수.  (고속 insert를 위해서 그러는듯) 그래서 실행 결과는 8192 row inserted, next auto increment Number 는 16384 임(16383개 소모했으므로). Boundary Test 해봤음. 8191 row 대상으로 bulk insert 할 경우, 1 1111 1111 1111 (8191)이 할당되서, next auto increment Number 는 8192 임. (빈공간 전혀 없음) 따라서 빈공간은 0 ~ 99.99% 정도 생길 수 있다. 그런다고 innodb_autoinc_lock_mode 을 0 으로 바꿔서 인덱스 숫자 크기를 줄이기에는 성능저하가 너무크므로, auto increment…

Ubuntu 20.04 LTS 에서 웹서버(Apache + PHP + MySQL) 구성하기

HYEONG HWAN, MUN/ 11월 15, 2021/ 미분류/ 9 comments

이 글을 통해 Ubuntu 20.04 LTS 운영체제에서 APM 웹서버를 구축하는 방법에 대해 설명하도록 하겠습니다. 저는 Ubuntu 9.04 버전부터 10년 넘게 구축 방법을 작성/유지보수 하고 있으며, 그동안 많은분들이 참고해주셨고, 별 문제가 없었습니다. 일반 사업체 및 실무 서비스에서 사용할 수 있는 안정적인 구축 방법을 설명 하겠습니다. * 리눅스 명령어 환경으로 접속하는 방법을 모른다면 이 글로 이동하세요. 리눅스 명령어 환경으로 원격 접속하는 방법 : https://blog.lael.be/post/7574 * 리눅스 설치 후 기초 원격접속 설정을 하려면 이 글로 이동하세요. 리눅스 서버 ssh 원격접속 설정하기 : https://blog.lael.be/post/7678 * VI 에디터(리눅스 편집기) 사용하는 방법 : https://blog.lael.be/post/7321 * Ubuntu 클라우드 서버호스팅을 찾는 중이라면 https://blog.lael.be/post/44 글로 이동하세요. * 서버에 파일을 업로드하고 싶다면 Filezilla 를 사용해보세요. https://filezilla-project.org/ * 유료 도메인을 구매 하려면 https://blog.lael.be/post/6357 글로 이동하세요. 다음의 클라우드 호스팅에서 정상 동작을 확인함 – AWS EC2, Ubuntu Server 20.04 LTS (HVM),…

FIDO2 / WebAuthn 알아보기

HYEONG HWAN, MUN/ 10월 26, 2020/ 미분류/ 2 comments

최근 라엘이는 개인정보 보호와 익명화, 암호화, 보안 통신의 방법에 대해서 관심을 가지고 있으며, 이와 관련된 새로운 기술들에 대해 알아보고 있다. 이 글에서는 작년 2019년 3월 4일에 W3C 웹 표준으로 지정된 FIDO2 (WebAuthn)에 대해 알아보도록 하겠다. * 먼저 읽어보기 암호를 없애려는 Microsoft의 노력 빅뉴스: FIDO2/ WebAuthn이 후보 제안 상태에 도달! – https://www.microsoft.com/ko-kr/microsoft-365/blog/2018/04/12/big-news-in-our-drive-to-eliminate-passwords-fido2-webauthn-reaches-candidate-recommendation-status/ Microsoft Identity Division 프로그램 관리 부문 이사 Alex Simons 에 따르면, Microsoft는 Windows 10의 아주 초기 단계부터 암호를 없애기 위해 노력해 왔다고 한다. 또한, 암호 없는 미래는 빠르게 다가오고 있으며, Microsoft는 이러한 시대가 도래하기를 기대하고 있다고 한다.   용어의 뜻을 알아보도록 하자. FIDO 는 Fast IDentity Online 의 약자이며, 온라인 상의 빠르고 안전한 인증을 의미한다. (F + 아이도 = 파이도) 읽을 때는 페스트-아이덴티티-온라인 또는 파이도라고 부른다.   기존의 ID, Password 방식의 가입과 인증은 사용자에게 반복적인 ID, Password 입력을 강요했고,…