Author Archives: HYEONG HWAN, MUN

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/ 미분류/ 40 comments

이 글을 통해 Ubuntu 22.04 LTS 운영체제에서 APM 웹서버를 구축하는 방법에 대해 알아보도록 하겠습니다. 주의 : 이 글을 통해 설치되는 PHP 8.1 은 구문이 많이 엄격합니다! 당신의 소프트웨어가 PHP 8.1을 지원하는지 알 수 없다면, 18.04 버전이나 20.04 버전으로 구축하는것을 권장합니다. LINK : 20.04 LTS 에서 Apache PHP MySQL 설치 방법 LINK : 18.04 LTS 에서 Apache PHP MySQL 설치 방법 일반 사업체 및 실무 서비스에서 사용할 수 있는 안정적인 구축 방법을 설명 하겠습니다. * 리눅스 명령어 환경으로 접속하는 방법을 모른다면 이 글로 이동하세요. 리눅스 명령어 환경으로 원격 접속하는 방법 : 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 글로 이동하세요. *…

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…

서비스에 적절한 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/ 미분류/ 39 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 입력을 강요했고,…

Amazon RDS 지정 시간 복구(PITR) 사용하기

HYEONG HWAN, MUN/ 10월 23, 2020/ 미분류/ 0 comments

글을 틈틈히 작성/수정중입니다. 이 글에서는 RDS 특정 시점 복구(PITR)의 원리 및 수행하는 방법에 대해 설명하도록 하겠습니다.   특정 시점 복구(PITR)가 필요한 이유 PITR은 Point in Time Recovery 의 약자입니다. 한글로 번역하자면 시점(Point in time) 복구(Recovery)라는 의미입니다. 치명적인 서비스 장애는 예고를 하지 않고 일어나고 피해가 크기 때문에, 이 상황에 대한 대비책을 마련해 두어야 합니다. PITR은 예기치 않은 장애를 예방하는 것이 목적이 아니고, 장애가 일어났을때 효율적으로 대처하기 위한 것이 목적입니다. 위험 관리 전략의 RMMM (https://blog.lael.be/post/205 또는 자세한 내용은 구글 참조)의 Management 에 해당하는 것으로 위험이 이미 일어났으며 이 때의 처리 방법에 대해 논의해야 합니다.   서비스 장애가 발생 했을 경우 대처 방법 시스템 서비스 엔지니어(SE)는 장애가 발생했을 경우, RPO(복원시점목표), RTO(복원시간목표)를 결정하고 내부에 통보해야 합니다. 예를 들어서, 1시간마다 백업하는 시스템에서, 10:30에 장애가 발생했다면, “30분전에 백업한 데이터로…

아이패드 프로 유심 활성화하기 (데이터쉐어링)

HYEONG HWAN, MUN/ 10월 18, 2020/ 미분류/ 3 comments

  드디어 샀습니다! 아이패드 프로! Apple 2020년 iPad Pro 12.9 4세대 !! 제 블로그 주제와는 맞지 않지만, 다른분께도 도움이 될 듯하여, 글을 작성합니다.   통신사에 데이터쉐어링이라고, 휴대폰 데이터를 나눠 쓸 수 있게 해주는 서비스가 있습니다. 이용료는 무료(0원)입니다. 유심을 신청하고 공기계 여러곳에 넣어서 테스트해 보았습니다.   데이터 쉐어링 메인 회선의 기본제공 데이터를 나누어 쓰는 무료 요금제. 폰 데이터 쉐어링과 패드형 데이터 쉐어링이 있다.   Baseband Processor 무선 통신을 위한 전화기 모듈. 모든 휴대폰, 아이패드를 제외한 태플릿 폰에 포함되어 있다.   USIM (유심) 가입자 식별 도구. 유심시리얼번호(ICCID) + 가입자번호(IMSI) 로 구성된다.   문제의 상황 셀룰러 네트워크는 통화가 되는 휴대폰 네트워크와, 안되는 통신용 네트워크가 있음. 아이패드에는 Baseband Processor 가 없어서, 휴대통신장치 인식이 잘 안된다. 즉, 다음의 경우가 발생한다. 공 유심(new usim) -> 아이패드 …