[AWS] 아마존 EC2 에 apache 서버(proxy server) 구축

개요

아마존 AWS에 EC2 인스턴스를 생성하고 나서 이번에는 아파치 서버를 설치해보려 합니다. 
내부망 연결을 위한 포인트로 활용하기 위해 reverse proxy server 를 구축하려는 것입니다.
이 구성을 생각하고 시놀로지 역방향 프록시를 이용해 테스트를 해보니 원하는 결과물이 나오는 것을 확인했습니다.

그리고 ec2에 설치를 하게 되었는데 진행하면서도 vpn 없이 내부망에 연결을 하는게 과연 안전하가라는 의문을 계속 가지고 있지만 인프라에 대한 지식이 많지 않아서 주먹구구식으로 일단은 진행해보기로 했습니다.

 

 

 

아파치 설치

 

먼저 putty 로 ec2 인스턴스에 연결해준 뒤, 아파치를 설치해줍니다.

 

설치 명령어는 다음과 같습니다.

sudo yum install -y httpd

 

수퍼유저 권한으로 httpd 패키지를 설치하는 명령어입니다.

정상적으로 설치가 진행되면 아래와 같은 과정을 보게 되십니다.

 

 

 

Complete! 메시지를 보셨다면 정상적으로 설치가 진행되셨을 겁니다.

아파치 설치 경로는 /etc/httpd 아래에 있습니다.

 httpd -v 명령어로 버전을 확인해보니 2.4.56 으로 설치되었습니다.

 

[ec2-user@ip ~]$ sudo httpd -v
Server version: Apache/2.4.56 (Amazon Linux)
Server built:   Mar 15 2023 00:00:00

 

 

systemctl 명령어로 서비스를 시작할 수 있습니다. 서버 재기동시 자동으로 시작 될 수 있도록 서비스로 등록하는 작업도 해주셔야 합니다.

sudo systemctl enable httpd

 

start , stop, restart 를 이용해 서비스 시작, 종료, 그리고 재시작을 할 수 있습니다.

sudo systemctl start httpd
sudo systemctl stop httpd 
sudo systemctl restart httpd

 

이제 웹서버는 실행되었으니 ip를 입력해 웹서버에 접속이 되는지 확인해 봅니다.

기본으로 셋팅된 index 페이지에 작성된 It works! 가 출력되는 것을 확인할 수 있습니다. 이렇게 되면 아파치 서버가 정상적으로 설치되었고 정상적으로 실행된 것입니다.

 

 

 

 

전 처음에 접속이 안되었었는데 방화벽 이슈였습니다. 인바운드 규칙에 http 포트를 추가해주셔야 합니다.

아래처럼 추가하고 사용자는 0.0.0.0 전체로 잡아주셔야 합니다. https 도 필요한데 아파치 서버에 셋팅을 해주지 못했습니다.

 

 

이제 프록시 서버 설정을 진행해줍니다.

/etc/httpd/conf.d 경로에 proxy.conf 파일을 생성, 편집을 해줍니다.

 

아래 정보를 기입해줍니다. 

proxyRequests 는 off 로 해줍니다. on 으로 할 경우 포워드 프록시 설정이 되며, 리버스로 하기 위해서는 off 지정해주어야 합니다. 

<IfModule mod_proxy.c>
       proxyRequests Off
       <Proxy>
               Require all granted
       </Proxy>
       ProxyPass / http://naver.com/
       ProxyPassReverse / http://naver.com/
</IfModule>

 

이제 웹서버 호출 시 네이버로 접속되게 하는 프록시 서버가 생성되었습니다. 물론 저는 네이버 대신 내부망 IP 정보를 넣어두었으며 정상적으로 접속되는 것을 확인했습니다.

 

마무리

proxy server 셋팅을 위한 상세한 설명은 아래 공식사이트에서 확인이 가능하니 참고하세요

https://httpd.apache.org/docs/2.4/mod/mod_proxy.html

 

mod_proxy - Apache HTTP Server Version 2.4

Apache Module mod_proxy Summary Warning Do not enable proxying with ProxyRequests until you have secured your server. Open proxy servers are dangerous both to your network and to the Internet at large. mod_proxy and related modules implement a proxy/gatewa

httpd.apache.org