AWS EC2에 웹서버(Nginx )설치하고 구동하기

Tae Yeol Kim
6 min readAug 19, 2017

--

목표. Yum을 이용한 Nginx 설치 및 구동

AWS EC2에 웹서버인 Nginx를 설치해 보도록 하겠습니다.

AWS EC2 instance는 centos를 기반으로 하고 있고 centos는 RedHat Enterprise Linux AS를 기반으로 하는 리눅스 배포판 입니다.

즉, AWS EC2가 아니고 centos를 사용하셔도 본 포스트를 보고 nginx를 설치하여 웹서버를 구동하는것에 있어서 큰차이는 없습니다.

AWS EC2 instance를 설치 하시고 싶으신 분은

“Create AWS EC2 instance with Amazon LINUX” 를 참조하시고 오세요.

EC2 instance(이하 ec2)에 접근하여 “yum install nginx”를 입력합니다.

앗! 그러보고니 접속할때 ec2-user로 접근을 했네요. yum 명령어를 사용하기 위해선 root 권한이 필요 합니다. root 권한을 사용하기 위해 sudo 명령을 이용하기로 합니다.

“sudo yum install nginx” 라고 입력합니다.

nginx와 nginx를 구동하기 위해 필요한 파일들을 설치 할거냐고 물어 보네요.

“y”를 입력하여 설치를 진행 합니다.

참고로 현재 nginx의 Stable version는 1.12입니다. yum을 이용해 설치할 수 있는 파일은 1.10.3이라고 표기 되어 있네요. nginx를 구동하는데 크게 문제 없어 보이니 그대로 진행 합니다.

설치가 완료 되었네요.

nginx를 구동 합니다. “service nginx start”

이런! 또 잊어 먹었습니다. sudo 명령을 주는것을.. 포스트를 보는 분들은 이런 실수를 안 하시겠지요?

“sudo service nginx start”

늘 기분 좋은 OK 표시

정말 설치가 잘 되었는지 접속을 해볼까요?

이런! 사이트에 연결할 수 없음 이라고 나오네요.

nginx가 정상적으로 구동하고 있는지 확인해 봅니다.

“ps -ef | grep nginx”

master도 떠있고 worker도 떠있고, nginx는 정상적으로 구동중이네요

혹시 80포트로 구동되고 있는게 아닌건가? 포트 스캔도 해봅니다.

“sudo netstat -ntlp”

80포트는 열려 있고 nginx가 사용중이라고 표시가 되어 있네요. 그럼 문제가 뭐 일까요..? 혹시 netstat를 google에서 검색해 보신 분들은 답을 알수도 있을거 같네요.

눈치 채셨나요? 바로 방화벽 때문입니다.

보통 centos 6에서는 iptables을 centos 7 에서는 firewalld를 사용하여 방화벽 설정을 하여 사용 합니다.

하지만 ec2는 “Security Group”을 사용하여 접근 제어를 합니다.

ec2 security group을 설정하기 위해 ec2 웹콘솔로 접근하여 ec2 서비스를 선택합니다.

ec2를 클릭하면 하단 Description에 Security groups이 설정 되어 있습니다.

저의 경우엔 launch-wizard-2로 설정 되어 있네요. 옆에 view inbound rules를 눌러 볼게요.

저 설정을 보니 감이 오시나요? 네. 그렇습니다. 22번 tcp 포트만 접속 허용이 되어 있네요. 80번 포트는 접근을 허용하지 않네요.

그렇다면 80번 포트로 접근을 하기 위해 추가해 보도록 하겠습니다.

view inbound rules 좌측의 “lanuch-wizard-2”를 클릭합니다. 혹은 좌측 메뉴의 “Security Groups” 메뉴를 눌러 줍니다.

하단의 “Inbound” 탭을 누릅니다.

“Edit” 버튼을 눌러 줍니다.

이제 Rule을 추가해 볼까요? “Add Rule” 버튼을 클릭합니다.

Type을 선택하면 여러 타입이 보이지만 HTTP를선택합니다.

HTTP를 선택하면 자동으로 Port Range는 80으로 선택 됩니다. Source는 허용할 IP를 의미 합니다. 웹서버는 누구나 접속 가능하게 Anywhere로 설정 합니다. “0.0.0.0/0, ::/0”은 누구나 접속 가능함을 의미 합니다.

만약 SSH, HTTP 접속을 내 IP만 허용하고 싶다면 “My IP”로 선택하여 “Save”하시면 됩니다.

SSH(port 22)의경우 My IP로 세팅하는 것이 보안에 매우 유리합니다.

80포트 등록 완료

그럼 다시 웹브라우저에서 서버를 접속해 볼까요?

Welcome 페이지가 반갑게 우릴 맞이해 주네요.

“Yum을 이용한 Nginx 설치 및 구동” 끝!

--

--