반응형 DB6 Scylladb 설치 - Ubuntu 20.04 채팅 데이터를 Scylladb에 넣어야해서 ubuntu에 설치한 걸 기록하고자 한다. Server spec AWS EC2 t2.medium 포트포워딩 - 9042 Scylladb에서 권장하는 ubuntu 설치를 따라 진행했다. 패키지를 받을 수 있게 설정 sudo mkdir -p /etc/apt/keyrings sudo gpg --homedir /tmp --no-default-keyring --keyring /etc/apt/keyrings/scylladb.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys d0a112e067426ab2 sudo curl -L --output /etc/apt/sources.list.d/scylla.list http://d.. 2023. 1. 1. 채팅 영구저장 - RDB vs NoSQL 서론 현재 서비스에서 채팅을 저장할 때 In-memory Database이지만 영구저장이 가능한 Redis를 사용해서 저장을 하고있었다. 하지만 Redis는 데이터를 모두 메모리에 올리기 때문에 메모리의 크기보다 데이터가 많아지면 샤딩을 하거나, 다른 방법으로 scale up & out을 해줘야 한다. 서비스를 초기에 개발할 땐 메모리가 다 찰 정도의 채팅이면 웬만한 서비스 크기가 아니라면 곧바로 필요하지는 않다고 판단했고, Redis의 AOF와 RDB(snapshot) 를 같이 사용하여 데이터가 사라지지 않게 했었다. 현재는 서비스가 안정화 된 상태이고, 최근 며칠의 채팅 데이터만 캐싱해놓고 그 이전의 채팅을 영구저장하기위해 이 글을 포스트한다. 요구사항 채팅 데이터가 증식할 때 서비스에 문제가 없도록.. 2022. 12. 29. Ubuntu 20.04 - Redis 설치 패키지 업데이트 sudo apt update redis-server 설치 sudo apt install redis-server 설치를 하게되면 redis가 바로 실행되는데, 기본적으로 외부접속을 허용하지 않는다. 외부접속 허용 과정 vi /etc/redis/redis.conf bind 127.0.0.1 ::1 로 시작하는 부분을 찾고 0.0.0.0 ::1로 변경해준다. 파일을 저장한다 wq! redis-server service를 재시작해준다 sudo systemctl restart redis-server netstat 툴로 실제로 잘 수신하고 있는지 확인해준다. netstat -nap | grep 6379 잊지말고 6379 포트의 포트포워딩을 꼭 해주자! redis 최대메모리 구성 vi /etc/red.. 2022. 8. 23. MariaDB - Ubuntu 20.04(LTS) DB Replication -ec2 mmm(multi master manager) 서버 설정 CentOS 7 예제들만 있어서 Ubuntu로 만들고 사용법을 정리해놓는다. VPC 172.31.0.0 /16 본 글에서 구성한 Replication을 따라하기위해 필요한 서버 사설 ip : 본 글에서는 ec2의 네트워크 내부 ip라고 봐도 무방하다. (ifconfig 명령어로 eth0 의 inet을 확인하면 됨) 넷마스크에 대한 개념은 따로 설명하지 않겠다. Max scale(mariadb의 mmm monitor) 사설 ip - 172.31.38.159 db1 - master server-id 9 사설 ip -172.31.44.224 db2 - stand by master & slave server-id 10 사설 ip - 172.31.14.176 db3 - slave server-id 8 사설 ip .. 2022. 6. 28. Mariadb-15.1 user의 host 변경 - ALTER TABLE error mariadb에서 권한 같은걸 변경하고 싶을 때 UPDATE mysql.user SET Host='%' WHERE Host='localhost' AND User='username'; FLUSH PRIVILEGES; 이런식으로 하라는걸 많이 볼 수 있을 것이다. 하지만 이렇게 변경하려고 하면 에러코드로 ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them MariaDB [mysql]> UPDATE mysql.user SET Host='172.31.%.%' WHERE Host='172.31.0.%' AND.. 2022. 6. 26. nodejs - socket.io & mysql 끔찍한 에러 Error: read ECONNRESET at TCP.onStreamRead (node:internal/stream_base_commons:217:20) 2일동안이나 날 괴롭힌 끔찍한 에러를 만났다. 에러로그는 Error: read ECONNRESET at TCP.onStreamRead (node:internal/stream_base_commons:217:20) 처음에 로그를 보고 구글링했는데 답이 나오지않았다. 우리의 서비스는 채팅을 위한 socket.io 채팅방 목록 캐시 저장 서버인 redis 라이브스트리밍 RDB mysql 를 nodejs 서버에서 사용하고 있었다. 얼핏 에러로그를 보면 소켓이 문제구나 라고 생각이 들었고, 에러가 나타나는 상황도 너무 가지각색이었다. 문제해결 프로세스를 아무리 다시 되새기고 처음으로 돌아가려고 해도 에러가 나는 상황이 너무 가지각색이었다. 어찌저찌 찾은 저 에러코드에 대한 내용도 상대방이 TCP 연결을 끊은 경우에.. 2022. 6. 21. 이전 1 다음 반응형