본문 바로가기

Dev53

구글 클라우드 상태 확인(GoogleHC) 때문에 서버가 터지다. 갑자기 서버가 10분 정도의 주기로 계속 재생성되는 현상이 발생했습니다. 오토 스케일링이나 상태 확인(Health Check) 설정이 잘못된건지 살펴보아, 드디어 1주일만에 원인을 알아냈습니다. 원인 구글 클라우드 부하 분산(로드 밸런서)는 안정성을 위해서 한 개가 아니라 여러개가 돌아갑니다. 그런데 이번에 구글이 뭔 업데이트를 한 건지는 몰라도 갑자기 부하 분산 땜빵 서버가 엄청나게 늘어나서 서버가 터져버린 것이죠.마인리스트는 상태 확인시 메인 페이지에서 상태 확인을 하는데 하는데 메인 페이지를 1초에 평균 4번에 가까울 정도로 상태 확인을 하다가 (여러개의 로드 벨런서가 상태 확인을 병렬적으로 하다보니까) 타이밍이 맞아서 수십개의 로드벨런서가 동시에 서버에 접속하고 CPU가 폭발하여 502 오류를 내.. 2018. 4. 28.
Let's Encrypt DNS TXT로 발급받기 무료로 SSL을 제공하는 Let's Encrpyt. 발급을 위해선 certbot이라는걸 설치한 후 도메인 인증 절차를 걸쳐서 발급해야 합니다. 이 방식을 ACME 챌린지라 부르는듯. 여튼 기본값은 웹서버를 열거나 웹에 특정 내용이 들어가 있는 특정 파일명을 가진 파일을 만들어서 인증하는 방식인데, 제가 쓰고 있는 Google Cloud Load Balancer에서 버킷 만들어서 인증을 시도하니 "ACME HTTP challenges are not supported"라는 괴랄한 오류가 뜹니다.HTTP 방식 말고 좀 쉬운 방법을 찾아보던 중 DNS TXT를 이용할 수 있는 방법이 존재하더군요.sudo certbot certonly --manual -d 쉼표로구분된도메인들 --preferred-challeng.. 2018. 2. 24.
정규식으로 이메일이나 도메인 쓸때 주의사항 위 사진을 봅시다. 언뜻 보기에는 아무 문제가 없어 보이죠. 하지만 정규식에서는 모든 문자열을 "."으로 표현합니다. 즉, 도메인 주소를 저렇게 .을 붙여 쓰게 되면 "iwinvhelperaiwinv.net"이라는 도메인도 해당되게 됩니다. 우측도 마찬가지죠. 이메일 주소인데 "asdasdasd@baracom"로 해도 일치하게 돼 버립니다.뭐 사소한 것일수도 있겠지만, 이런 사소한 점 하나로 사이트의 보안이 뚫려버릴수도 있습니다. 진짜 "."을 인식시키고 싶다면 앞에 역슬래시(키보드에서 원화)를 입력해주면 됩니다. "ryush00\.tistory\.com"처럼 입력하시면 됩니다. 2018. 2. 13.
은는이가(ununiga) gem, 레일즈에서의 i18n 조사 처리 한글이 정말 잘 만든 언어이긴 하지만, 프로그래밍할 때는 항상 골치거리에요. 많은 라이브러리들이 영어를 기반으로 만들어진 바람에 한국어로 번역할 때 "(이)가"처럼 엄청 부자연스러운 부분이 생기거든요. 예를 들자면 "말똥이(이)가 블로그에 글(을)를 쓰고 있습니다"처럼 말이죠. 이름 뒤에 "님"자를 붙여서 "말똥이님이" 처럼 처리하는 방법도 있겠지만, 몽키패치일 뿐이에요. 루비 온 레일즈에서도 마찬가지입니다. "(이)가"를 넣자니 부자연스럽고 난감하죠. 그럴때 이 gem을 사용하면 됩니다. 설치하기 rails 기반 i18n 기능에 통합시켜버리려면 아래 코드를 앱 실행 부분에 추가하시면 됩니다. (Initializer나 application.rb, environment config) I18n::Backen.. 2018. 1. 18.