Postgresql WAL(Write-Ahead Logging) 아카이브 및 풀 백업과 복구

데이터베이스는 하나의 서비스에 꼭 필요하며, 무결성과 지속 가능성이 깨지지 않도록 하는 게 원칙입니다. 그에 따라 철저한 백업 관리 및 정책이 당연시 요구됩니다. 이번 포스팅에서는 Postgresql 환경에서 WAL 파일을 아카이빙하고 해당 파일을 이용해서 백업, 마지막으로 복구까지 해보도록 하겠습니다. WAL(Write-Ahead Logging)파일이란? Write-Ahead Logging (WAL) is a standard method for ensuring data integrity. Briefly, WAL's central concept is that changes to data files (where tables and indexes reside) must be written only after..

패키지 관리자를 통해 NGINX 최신 버전(Mainline/Stable) 설치하기

아무런 조치 없이 리눅스의 패키지 관리자를 통해서 웹 서버인 NGINX를 설치하게 되면 자신이 원하는 버전을 설치하지 못할뿐더러, 현재 패키지 관리자에선 구 버전이 기본 설정되어 있습니다. 실제 운영환경에서 구 버전은 보안 문제든 기능 문제든 치명적으로 작용할 수 있습니다. 패키지 관리자를 업데이트해서 NGINX 최신 버전 및 원하는 버전을 설치해보도록 하겠습니다. NGINX의 버전 관리 일반적으로, 많이 알려진 버전은 단 두 가지인데요. Mainline 버전과 Stable 버전이 있습니다. 새로운 특징, 기능, 버그 패치 등은 Mainline 버전에서 작업하고 그 이후에, 새로운 기능이 추가되지 않고 버그 패치만 하는 게 Stable 버전입니다. 버전 선택에 관련해서 NGINX의 공식 입장은 다음과 같..

AWS RDS Automatic Minor Version Upgrade(AMVU) 이슈 해결하기

회사에서 RDS 서비스를 애용하고 있던 중에, 작년 12월 23일경에 AWS 팀으로부터 메일을 하나 받았습니다. 혹시나 운영하고 있는 리소스들이 문제가 생겼나 싶어서 급하게 확인을 했는데요. 지금 당장 생긴 문제는 아니었지만 확인을 안 했다면 꽤나 큰 문제가 있었을 텐데, 다행히도 미리 발견했습니다. Automatic Minor Version Upgrade(AMNU)란? 말 그대로, 마이너 버전을 자동으로 업그레이드 해주는 일종의 AWS RDS의 기능입니다. 물론, 업그레이드를 할 때는 다운타임이 발생하게 됩니다. 문제의 시작 Changes to Amazon RDS Automatic Minor Version Upgrade Behavior [AWS Account: 000000000] You are rece..

AWS 요금/비용 계산기

AWS를 이용해 다양한 서비스를 제공하고 있는 사람은 무조건 고려해야할 내용이 요금이다.게다가 AWS는 서비스도 워낙 다양하고, 지역(region)별로 같은 서비스 환경에서도 부과되는 요금이 다르기 때문에, 계산이 어렵다.또, 탄력적으로 요금을 부과해주는 방식이 많아서 체크해야할 부분이 굉장히 많다. 이럴 때, 다음 사이트를 참고해보자. http://calculator.s3.amazonaws.com/index.html?lng=ko_KR#/ 여기선 지역(region)과 제공 해주는 서비스별로 (최근에, AWS에서 업데이트를 자주 안 해줘서 전부는 없지만..) 요금을 확인해볼 수 있다. 가장 많이 사용되는 서비스인 EC2에 대한 요금을 확인해보도록 하겠다. 월별 청구서 견적을 $(달러)로 확인할 수 있다. ..

파워포인트 작성 시 유용한 사이트

프레젠테이션은 대게 글씨가 아닌, 그림 혹은 사진으로 이루어져 있다. 그렇기 때문에, 다음과 같은 사이트들이 많은 도움을 줄 수 있다. [아이콘]https://www.flaticon.com/=> 무료로 사용가능하지만, 일정 부분 유료이다. 또 같은 IP에 할당 되어있을 때 하루 최대 다운로드 받을 수 있는 횟수가 있다. 유선 네트워크를 사용한다면, 프록시를 무선 네트워크를 사용한다면 모바일 핫스팟 등을 이용해서 우회해서 사용하면 된다. 가장 좋았던 점은 아이콘을 자기가 원하는 색으로 다운로드 받을 수 있다는 점. [사진]https://unsplash.com/=> 고화질의 사진을 제공해준다.

rds timezone 변경하기

기존에 데이터베이스 환경에서는 db 내의 설정을 바꿔주는 형식이였고, aws를 사용하면서 rds를 이용한다면 파라미터 그룹을 통해 다양한 설정을 맞출 수 있다. 이번 포스팅에서는 timezone 을 중점으로 작성하도록 하겠다. 주의할 점은 default 파라미터 그룹에선 파라미터 값이 변경되지 않는다.새로운 파라미터 그룹을 만들 때 자신이 생성한 rds 데이터베이스와 버전이 같은 것을 선택하여 만들고 값을 변경해주자. 1. mysql 계열 (mysql, mariaDB, auroraDB)rds에 들어가서 파라미터 그룹 메뉴로 이동해서 다음 사진과 같이 파라미터 이름을 'time_zone' 으로 검색한다. 값을 허용된 값중에 선택하고 rds에서 파라미터 그룹을 편집해주고 리스타트 시켜주면 적용이 된다. 2...

Elastic IP(탄력적 IP) 할당 한계 및 요금 부과 방식

처음에 AWS 계정을 생성하고 나서, Elastic IP의 할당의 최대 한도는 5개이다.5개는 서버를 운영하면서는 너무 터무니없이 부족하기 때문에, 많이~ 늘려보도록 하겠다. 일단. aws에 접속하여 로그인을 해주고 support 메뉴에 들어간다. 그러면 내가 지난 과거에 support case 작성한 리스트가 나온다. (없으면 당연히 나오지 않는다.)create case로 aws에 거센 요청을 해보도록 하자. 한 화면에 담으려고 하니 글씨가 좀 작아졌다. 그리고 귀찮으면 사진처럼만 따라하면 된다. 우리는 service limit을 높일거니까 'Service Limit Increase' 에 체크를 해주자. 그리고 Limit Type엔 'Elastic IPs' 를 선택하고, Request1 항목엔 알아서 ..

ulimit 명령어로 시스템 자원 최대로 활용하기

최근에, 회사에서 채굴관련 웹 서버를 운영하는데 stratum 서버에 다수의 채굴기가 연결 되면서 서버 트래픽이 급격히 증가하면서 다운되는 현상이 있었다. 동시 접속자와 네트워크 트래픽이 증가하면 어떻게 처리를 할까 검색을 하던 중 ulimit 이라는 아주 최고의 설정을 발견했다. ulimit 이란?프로세스의 소켓 최대 개수를 늘려 자원 한도를 설정하는 명령어 라고 한다. ulimit -a 로 전체적인 설정 값들을 볼 수 있으며, ulimit -n 으로 현재 설정되어있는 ulimit 값을 볼 수 있습니다.(참고로, 우리가 원하는 정보는 ulimit -n 명령어로도 충분하다.) sudo vim /etc/security/limits.conf 에서 다음과 같이 설정해주면 된다. 맨 마지막 부분에 * - nof..

netcat(nc)를 이용해 포트 열기

얼마 전 회사에서 서버 포트를 열어달라는 요청을 받았다. 근데, 웹서버가 있는 것도 아니고 어떻게 포트만 달랑 열 수 있는 방법은 무엇인가? 처음엔 iptables 라는 명령어로 연신 포트 설정만 해댔다. 하고 나서 윈도우에서 telnet 으로 붙어보니 연결이 되지 않은 것을 확인했다. 검색결과, netcat(nc)를 사용하면 간단히 해결 될 문제 였다. netcat(nc) 란?Network connection 에서 raw-data read, write를 할수 있는 유틸리티 프로그램이다. 일반적으로는 UNIX의 cat과 비슷한 사용법을 가지고 있지만 cat이 파일에 쓰거나 읽듯이 nc는 network connection에 읽거나 쓴다. 이것은 스크립트와 병용하여 network에 대한 debugging, ..

[jquery]텍스트 입력 시 공백제거

123 text box : Colored by Color Scriptercs아주 간단한 input 박스의 text타입이다. 위에 박스에 onkeyup이라는 속성을 넣어주어 text 입력 혹은 paste 시에 공백을 바로바로 제거해주는 로직을 만들었다.function test에 this라는 object(객체)를 넘겨준다. 1234567 function test(obj){ var a = $('#text').val().replace(/ /gi, ''); $('#text').val(a); }Colored by Color Scriptercs function test는 object를 받고 변수 a는 text라는 id값을 가진 아이의 value 값을 replace(/ /gi, '') 를 통해 공백을 제거해준다.그리고..