상세 컨텐츠

본문 제목

AWS EC2 서버 만들기(#ubuntu #apache #tomcat)

컴퓨터

by 잘못된 선택 2022. 2. 11. 00:06

본문

기업에서 개발한 프로그램을 서비스하기 위해서는 서버가 필요하고 서버가 수많은 클라이언트의 요청을 처리하기 위해서는 체계적으로 서버가 구성되어야 할 것이다.

 

이번에 공부하면서 얻게된 지식들을 요약해 본다면 다음과 같다.

우선 서버는 web server와 was(web application server)로 나뉘는데 web server는 클라이언트의 요청중에서 정적인 정보를 바로 처리해주는 역할을 하고 was는 동적인 정보를 처리해주는 역할을 한다고 볼 수 있다.

 

구조적으로 web server가 reverse proxy 역할을 하게되는데, 이 말은 모든 클라이언트 요청은 web server가 받게되고 필요에 따라서 뒤에 존재하는 수많은 was에 로드밸런싱 역할을 하게 된다는 의미이다. 이는 클라이언트의 요청에 의한 부하를 여러 서버로 분산시켜서 여러 서버가 효율적으로 일을 나눠서 할 수 있게 해준다. 또한 뒤에 있는 was의 ip 주소를 클라이언트가 알지 못하게 숨겨주면서 보안적으로도 좋다고 한다.

 

web server로 유명한 소프트웨어는 apache와 nginx가 있다. apache는 안정적이고 오랫동안 업데이트를 해온만큼 여러가지 기능이 있다는 장점이 있지만 클라이언트의 요청이 있을때마다 프로세스를 생성하는 방식(실제로는 미리 생성해놓고 배당하는 방식이라고함)으로 작업하여 과도한 클라이언트 요청을 처리하는데 있어서 적합하지 못하다고 한다. 이유는 프로세스를 생성하는 방식이다보니 메모리를 많이 사용하게되고 context switcing으로 인해 속도도 느리기 때문이다. nginx는 프로세스를 여러개 생성하지 않고 마스터 프로세스(cpu 코어 갯수만큼 존재)가 요청이 올때마다 이벤트를 발생시켜서 순차적으로 쓰레드를 생성하여 처리하는 방식이다. 이러한 방식은 프로세스를 적게 생성하기 때문에 클라이언트 요청이 많아져도 메모리 사용량을 적게 유지하면서 속도도 빠르다는 장점이 있다. 이러한 특징대로라면 큰 기업일수록 nginx가 필요로 하겠지만 나의 서버의 경우 apache가 적합하다고 생각했다.

 

was의 경우 주로 tomcat을 사용하는것 같고 따라서 apache-tomcat을 이용하여 서버를 만들어 보았다. 서버는 유명한 AWS(Amazon Web Service)를 사용하여 만들었다. AWS는 가입하면 1년간 무료라고하여 바로 가입하였고 AWS에서 만든 클라우드 서버인 EC2(elastic compute cloud)를 먼저 생성하였다. 내가 선택한 서버는 ubuntu 20.04이다. 이렇게 생성된 클라우드 서버는 ssh로 접속할 수 있다. ssh는 원격으로 다른 컴퓨터에 접속할 수 있는 보안이 가미된 프로토콜이라고할 수 있다. ssh로 접속하는 방법으로는 putty나 xshell이 유명하다고 하여 xshell을 설치하여 연결했는데 putty나 xshell는 GUI를 사용할 수 없기 때문에 윈도우를 사용해온 나에게 매우 불편하게 느껴졌다. 따라서 GUI를 쓸 수 있는 mobaxterm이라는 프로그램 설치해봤는데 매우 만족스러웠다. 특히 text파일을 수정하는데 매우 편리하다.

 

아파치나 톰캣을 설치하고 연동하는 방법은 구글에 많은 정보가 있기 때문에 어렵지 않게 할 수 있었다. 다음에는 웹서버에서 어떤 프로그램을 띄울지 구상해보기로 하자.

 

관련글 더보기

댓글 영역