본문 바로가기
반응형

Archive188

AWS EC2 를 사고 해야하는 일 정리 EC2를 몇번이나 대여해서 세팅하는지 한 과장좀 보태서 10번정도한거같은데 이제껏 공부한다 생각하고 매번했다. 한번한거가지고 자신만의 치트시트 만들어두고 따라하는거는 발전도, 얻는것도 없다고 생각했기 때문에 어느정도 익숙해질 무렵 또 많은 오류를 겪고나서 나만의 루트를 만들고자했다. EC2 환경설정하면서 많은 문제와 지식을 얻었다. 갑자기 ssh접속이 안된다던지, pem키라는 것, 리눅스 시스템, db폭파, 서버를돌리기위한 사양, docker, iptable, proxy ... 확실하게 정의를 내릴수있는 것들도있고 경험적으로 이해하고있는것들도 있다. 막상 저런 오류를 마주했을때는 공부도 공부지만 급급히 해결하기 바빠서 크게 많이 생각해보고 넘기진 못했던것들도 많다. 그래서 이 초기 세팅의 글을 시작으로 .. 2022. 5. 4.
디비 폭파사건 해결(해킹사건으로 종결) 아래 내용들은 해킹당한줄 모르고 열심히 삽질한 일기입니다 총 5번째 mariadb가 서버가 shut down 되었고, 다시 실행했을때는 데이터가 모두 날아갔었다. sequelize에 의심을 품고있었다. 그래서 sequelize의 sync도 하지않도록했지만 여전히그랬다. 이후엔 node프로젝트를 실행하는 방식을바꿨다. 기존에는 tsc 컴파일 -> build된 app.js 실행 이었는데, nodemon, ts-node, pm2 install typescript 를 통해서 별도의 컴파일명령어 실행없이 바로 컴파일후 실행되도록 했다. (혹시나..해서) 그리고 불안한 마음에 계속, 디비로그를 찾아보았다. 에러에 관련된 로그는 자동으로 수집되고있었다. Ubuntu 환경기준 /var/log/mysql/error.lo.. 2022. 4. 24.
결국한번 더터져버린 db & 삽질과 세팅의 모든것 정말 미칠노릇이지만, 이악물고 이전과같이 복구를 진행했고, 분명히 이건 sequelize에서 연결하는 부분에서 문제라고생각했다. 왜냐하면 이제껏 express, mariadb를 사용해오면서 단한번도 이런적이없었는데, sequelize를 도입한 이번에만 발생한 문제이기 때문에다. Sequelize 문제 sequelize에서는 db와 sync하는 부분에서 스키마,테이블,컬럼들을 분석하고 차이점이있다면 반영하기위해서 db를 수정한다. 너무 의심스러운 기능이다. 개발 커뮤니티에서 이부분에대한 문제를 겪은 사람이있는지 찾아봤고, 그 유명한 제로초님께서 답변해주셨다. sequelize에서는 sync하는 부분이 아래와같다. (alter는 그냥 optional이니 무시해도된다) await sequelize.sync({.. 2022. 4. 22.
원인모를 DB 폭파현상 서버는 잘돌아가는데 디비가 끊겼다 express 서버 + sequelizeORM을 사용해 mariadb 를 사용하고있다. 처음엔 도커를 이용해, node 컨테이너, db컨테이너 두개를 따로두었다. 일주일즘 지났을까.. 서버는 잘돌아가는데 db커넥션 오류가 떠서, 클라우드 서버에 들어가보니 디비 컨테이너가 중지되어있었다. 그래서 단순히 재실행해보니, 데이터는 모두 날아가고 없어졌다. 다행히 나는 Ctrl + s 중독자에, 백업에 미친사람이라 데이터는 그대로 import해올수있어서 다행이었지만 아찔했다. 두번째.. 폭파 또한 일주일즘 지난 오늘, 똑같이 디비가 날아갔다. 메모리가 1GB인 네이버 클라우드 플랫폼 무료서버를 이용하고있는데, 무료서버인와중에 express 서버 두개에 디비하나를 사용하고, .. 2022. 4. 21.
드디어 나도.. EC2 배포자동화 (Github Actions) 꿈에그리던... 프리랜서 활동을 하면서 가장많이 하는게 ssh 접속해서, 환경세팅하고, 배포하고, 유지보수하면서 코드최신화이다. 개발자의 덕목은 반복되는행위를 줄이는것이라했다. 이두희님이 하신말 중 가장 가슴깊이 와닿았던 말은 두번이상 반복된다면, 잘못된 것이다. 입니다. 이말이 왠진모르지만, 나의 개발 슬로건이 되었다. 그래서 변수든, 로직이든 반복된다면 함수, 클래스로 묶고, 재사용가능한 함수,컴포넌트를 만들기위해 고민을 하면서 개발한다. 코드재사용보다 귀찮은일이 수동배포이다. CI/CD, jenkins, github actions ... 등 배포자동화라는 말로 묶여 여러가지 용어들이 난무했지만, 이해가 잘되지 않았다. 그래서 항상 내가 공부하는 방법처럼, 이해가 되기까지의 경험을 쌓고, 필요성을 .. 2022. 4. 20.
EC2 환경에서 git pull 할때마다 해야하는 인증 정보 저장하기 한번 인증후 다음 명령어를 통해 인증정보를 저장한다. git config --global credential.helper store 저장된 인증정보 확인 cat ~/.git-credentials 역시 내가 같은 행위를 2번이상 반복했다면 해결책이 99프로는 있었다. 2022. 4. 17.
반응형