서버: 5개의 글
우리가 애플리케이션을 개발하면서 50명 정도의 이용 고객을 예상하고 서버를 구축했는데, 생각보다 인기가 많아져서 500명이 사용하는 애플리케이션이 되었다고 가정해보자. 이러한 경우 기존에 사용하던 서버로는 한계가 있다. 따라서 스케일 업과 스케일 아웃중 하나를 선택해서 인프라를 재구성 해야 한다. 스케일 업 vs 스케일 아웃 🔍스케일 업(Scale up) 스케일 업 이란, 우리가 현재 사용하고 있는 서버 자체의 성능을 증강시켜 처리 능력을 향상시키는 것으로, CPU 업그레이드 또는 RAM 추가 등으로 하드웨어 장비의 성능을 높이는 접근 방법이다. 스케일업은 비교적 접근하기도 쉽고, 실천하기도 쉬운 방법이다. 실제로 우리가 사용하는 컴퓨터가 느려졌다면 성능이 더 좋은 새로운 컴퓨터를 구매하는것이 가장 간편..
서버가 두 개 이상일 경우 발생하는 세션 불일치 문제 해결하기 지난번에 포스팅했던 서버를 확장하는 방법에서 scale out 방식으로 서버를 확장했을때 발생하는 문제점 중 하나인 세션 불일치 문제를 해결하기 위한 방법을 알아보자. 세션의 불일치가 무슨뜻일까? 단일 서버 환경에서는 session을 통한 로그인을 구현할때 session 불일치 문제를 신경쓸 필요가 없었다. 하지만 우리가 만든 프로젝트가 유명해져서 한대의 서버로 운영하는것이 불가능해졌다고 가정해보자. scale-out 방식을 사용해서 서버를 여러대로 늘렸을 때 발생하는 문제점중 하나가 바로 세션 불일치 문제다. 아래 그림들을 통해 무슨뜻인지 이해해보자. 먼저 3대의 서버중 서버1에서 로그인을 진행했다. 이 경우, 서버1에서는 해당 클라이언트의..
외부서버 접근확인을 위해서 보통 ping을 쳐보거나 바로 ssh로 붙어보는데 ping이나 ssh는 보안상 막아놓는 곳이 많기 때문에 텔넷(telnet)을 이용해 해당 포트(Port)가 통신 가능한지 확인하는게 좋다. (일하면서 헷갈렸던 부분인데 telnet은 서버간의 통신확인, 방화벽 확인을 하는것이지 telnet이 된다고 ssh연결이나 ping이 되는건 아님. 따로 막혀있을 수 있다.) telnet [IP 또는 도메인] [포트] telnet 123.123.123.123 1521 이런식으로 원격지 아이피와 포트를 입력하고 netstat을 통해 통신이 가능한지 확인할 수 있다. 내가 자주 사용하는 방식 1. 터미널을 두개 열어놓는다. 2. 한 쪽에서 telnet 123.123.123.123 1521입력 3..
들어가며 서버에서 작업을 하다보면 나의 로컬에 있는 데이터를 서버로 전송하거나, 서버에 있는 데이터를 내 로컬로 전송을 해야 하는 경우가 있습니다. 그럴때는 Ubuntu에서 제공하는 기본 커맨드인 scp를 사용하시면 됩니다. scp는 Security CoPy의 약자로 보안이 보장된 복사라고 할 수 있습니다. 보안이 보장 되었다는 말은 무엇이냐, 우리가 ssh를 통해 서버에 접속을 하면 22번 포트가 open이 되어 있어야 합니다. scp는 ssh와 동일한 포트를 사용하여 SSL기반의 세션 보안 프로토콜을 사용하기 때문에 기존에 사용하던 FTP와 다르게 보안측면에서 뛰어납니다. $ scp @: source_path : 내가 복사하고자 하는 파일이 경로를 입력합니다. username : 사용자 계정 아이디를..
들어가며 서버와 클라이언트 프로그래밍은 다양한 방법으로 할 수 있습니다. 그 net모듈을 사용하여 통신하는 서버 프로그래밍입니다. TCP/IP는 우리가 스타크래프트에서 네트워크 통신을 하며 게임을 해보았다면 익숙한 단어입니다. 아래 예제는 tcpserver.js와 tcpclient.js를 생성해 두개가 서로 데이터를 보내는 예제입니다. 최초 서버가 접속이 가능하도록 대기를 하고 있고, 클라이언트는 서버로 접속을 합니다. 접속된 connection을 통해 서로 데이터를 주고 받을 수 있습니다. 소스코드 소스코드는 tcpserver.js와 tcpclient.js로 구성되어 있습니다. tcpserver.js 서버를 생성하기 위해서 net의 모듈을 상용합니다. net.createServer를 통해 서버 객체를 ..