본문 바로가기

OPS(Infra)4

[AWS] EC2에서 사용하는 채팅 서비스(socket.js / sockJs 등등)에 대해서(EC2에서 채팅 서버가 끊기는 현상) 로컬에서 chat server를 구현했을 때는 아주 잘 돌아갔다. 그런데 EC2에 서버를 올리니 chat 서버에 접속하고 아무 동작을 하지 않고 60초가 지나니 자동으로 접속이 끊어지는 것이었다... 확인을 해보니 일반적인 spring socket에서는 heartbeat를 check 하는 기능이 없어서, SockJS를 쓰거나 STOMP를 써야 한다는 것이었다. 그래서 원래 Websocket SERVER(JAVA) 쪽에서는 이렇게 되어 있었고, Client 쪽에는 이렇게 되어있었다.(주석을 풀어야 한다) 하지만 저렇게 하면 EC2에서 계속 끊겼다. 그래서 heartbeat 혹은 ping pong 시스템을 만들고 싶었는데, heart beat는 보통 client에서 주기적으로 신호를 보내게 작성하는 것이 아.. 2022. 11. 15.
[AWS] ec2 멈춤 현상(docker나 기타 등등의 백그라운드 프로그램 사용 시) 테스트 환경에서 테스트를 다 해보고, 운영체제가 리눅스로 되어있는 ec2 서버에 docker container(mysql)를 생성 하니, 갑자기 리눅스가 뻑나기 시작하는 것이다. 사실 처음에는 프로젝트 빌드타이밍에 뻑이나서 '아니 빌드하는데 이렇게 오래걸려?' 하면서 무한 대기를 했었는데, 그 이후에 서버가 멈춰서 아예 아무것도 쳐지지 않는 것이였다. 그래서 서버를 재시작 하고, 위에 화면(aws의 ec2 대시보드에서 하실 수 있습니다.) 에서 중지를 누르고 기다리면 되는데, 안 꺼져서 한번 더 누르면 강제중지가 있어서 강제 중지를 했다. (인스턴스는 중지와 시작이 기본입니다. 종료 누르면 서버에 쌓아 놓으신거 다 날라가요.) (어차피 test니까 한번 날리고 또 해보는것도 좋을듯 ㅎㅎ) 아 그리고, 재.. 2022. 11. 9.
[Tomcat] Tomcat에 port가 다른 서버들을 올릴때 요새는 docker로 서버를 말아서 올리는 경우가 많은데, 예전에는 gradle과 같은 빌드 툴로 프로젝트를 jar나 war 파일로 만든 다음에 (gradle일 경우 해당 프로젝트 폴더에 가서 ./gradlew bootwar 입력하면 해당 폴더의 build/lib 안으로 저장된다.) 해당 서버의 tomcat이 설치된 곳에 복사해 놓아서 하는 경우들이 대부분 이였다. 일단, tomcat이 설치된 폴더 webapps에 해당 파일을 가져다 놓으면 되는데, webapps안에 들어있는 기본 파일들을 다 삭제하고, tomcat 경로의 conf의 server.xml에서 context path를 설정 해주면 된다. (설정을 안하면, '홈페이지주소:포트/' 뒤에 매핑되는 식으로 된다.) -> 아닐수도 있음... 그래서 .. 2022. 11. 9.
[AWS] AWS free tier 과금?! 갑자기 한 통의 이메일이 날라왔다. 현재 서버가 아마존 프리티어에 올려서 돌리고 있는데, 26GB나 썼다는거다. 그래서 응? 뭐지 30기가 받은 것 중에 26기가를 썼다고? 서버에다가? 라고 생각하면서 서버 사이즈를 보니 3.3기가 밖에 안 썼는데, 26GB나 썻다고? 라고 생각 될 수 밖에 없다. 뭐 https 설정 하면서, 이것 저것 설정 해놓긴 했는데 Route 53에서 나가는 Hosted Zones 설정에 $0.5를 제외하곤 돈이 나갈 거라고 생각하지 않았는데, 갑자기 왜 날라 왔을까 고민을 하고 있었다. 그래서 열심히 구글링 해 본 결과... 저 용량이랑 EBS(Elastic Block Storage)는 상관이 없는 것이다. 저 용량은 애초에 object storage에 대한 용량이고 EBS는 .. 2022. 9. 28.