본문 바로가기

IT 실무155

AWS Lightsail(라이트세일) 로드밸런서 사이트 이중화에 대한 필요성이 느껴져 아마존 라이트세일에서 제공하는 로드밸런서를 살펴보았다. 세부 옵션을 보려면 하나를 생성해야 해서 월 18USD의 비용에도 불구하고 신청해보았다. 이와 같이 현재 라이트세일에 있는 인스턴스들을 손쉽게 연결할 수 있다. 그러나 로드밸런싱 규칙을 설정할 수 없다. 결론적으로 난 이 때문에 라이트세일 로드밸런서를 사용하지 않기로 했다. 메인서버를 주 서버로 하고 메인 서버에 문제가 있을 때만 standby 서버로 돌리려고 했는데 그런 설정을 할 수 가 없다. 무조건 균등 분산이고, Round Robin이나 IP Hashing이나 분산 규칙또한 설정할 수 없다. 아마존에서 제공하는 SSL인증서를 공짜로, 손쉽게 생성하고 연결할 수 있는데 로드밸런서의 큰 장점이자 주된 존재이유.. 2021. 7. 23.
웹서버 평균 CPU 사용률에 관한 고찰 평균 CPU 사용량 - 24시간 평균 약 6% - 10:00 ~ 22:00 평균 약 11% 평균 메모리 사용량 - 약 40% - 서버 재기동 시 20~30% 사이(garbage로 40%까지 점점 증가) 아주 일관된 request에 대한 처리만 담당하는 안정적인 업무를 수행하는 서버가 아니라면 이정도 수치 또한 위험하다. 일반적인 사용 환경에서는 안전하지만 일부 사용자들이 CGI쪽으로 일시에 몰린다던가 우연히 무거운 쿼리가 겹친다면 순식간에 CPU가 고갈되어 버릴 수도 있다. 2021. 3. 9.
[파이썬] NaN 제외하고 unique 값 얻기 파이썬(Python)에서 unique()를 사용하면 NaN이 포함된 유일값들이 array로 반환된다. 언뜻 생각하기에 뭔가 NaN을 포함시키지 않는 옵션이 있을 것 같고, NaN이 포함된 array에서 NaN을 쉽게 제거할 수 있을 것 같지만 의외로 까다롭다. 까다롭다는 게 복잡한 코드를 써야 한다는 건 아니지만, 머리속으로 유추하기 어렵고 검색은 통해야 하는 정도. 방법1. 애초에 NaN을 지우고 unique() 를 사용한다. 직관적이지만 불필요한 연산이 들어간다. 기존 데이터가 무겁지 않다면 이 방법도 괜찮다. labels = targetData.dropna().unique() 방법2. unique() 사용 후 NaN을 지운다. 아래와 같은 코드를 사용해야 한다. labels = targetData... 2020. 8. 2.
[파이썬] AxesSubplot 에서 bar(Rectangle) 추출하기 파이썬(Python)에서 바 그래프에서 바에 색깔을 입히거나 라벨링 등을 하려고 하려면 그래프를 구성하는 바를 반복문으로 돌려 처리하곤 한다. 예를 들면 아래와 같은 식이다. bars = plt.bar(index, dfdate) for rect in bars: height = rect.get_height() plt.text(rect.get_x() + rect.get_width()/2.0, height+20, '%d' % int(height), ha='center', va='bottom') plt.title("제목", fontsize=20) plt.show() 위의 예시에서 bars는 BarContainer이므로, 반복문을 통해 bar를 하나씩 뽑아낼 수 있다. 그런데 위의 예시와 달리, 그래프를 그리는 .. 2020. 8. 2.
[파이썬 트러블슈팅] TypeError: 'NoneType' object is not subscriptable(정렬 사용후) 에러 코드 # my_list를 정렬해 앞의 5개만 출력하고 싶다. my_list = my_list.sort() print(my_list[:5]) list.sort() 는 리스트를 변환 시킨 후 아무것도 반환하지 않는다. 그래서 sort의 반환값을 사용하려고 하면 에러가 발생하는 것이다. 아래와 같이 하면 에러를 발생시키지 않는다. sort() 한 결과를 기존 배열에 할당 시키는건 기존 배열을 지워버리는 것과 마찬가지다. 아래와 같이 하면 에러가 발생하지 않는다. 수정 코드 my_list.sort() print(my_list[:5]) 만약 원본 데이터인 my_list가 변경되는 것이 싫다면 아래와 같이 표현할 수도 있다. 수정 코드 print(sorted(my_list)[:5]) 2020. 8. 2.
[파이썬 트러블슈팅] TypeError: cannot perform reduce with flexible type 주로 숫자형 데이터가 아닌 대상으로 수치 연산을 시도할 경우에 발생한다. 언뜻 숫자 같아 보이는 데이터도 실제론 문자형인 경우가 있다. target_data = ['-214' '-153' '-58' ..., '36' '191' '-37'] 이런 경우 아래와 같이 변환해 주어야 한다. import numpy as np target_data.astype(np.int64) 2020. 8. 2.