NERD WORLD

EC2 인스턴스 생성, Nginx 설치 및 가동, Security Group 설정 본문

블로그 만들기

EC2 인스턴스 생성, Nginx 설치 및 가동, Security Group 설정

학부생7년차 2016. 3. 13. 00:51
1) AWS 계정 생성

우선 배포를 위한 머신이 필요했다. 새로운 구글 계정을 만들고, AWS에 가입할 계획이었다. 원래 사용중인 구글 계정에는 이미 연동된 EC2 인스턴스가 있었기 때문. 구글 계정을 만들 때 계정 이름에 하이픈('-')을 허용한다면 changhyun-blog@gmail.com 처럼 용도에 맞게 예쁘게 분류해볼 수 있을 것이다. 그러나 이를 허용하지 않으므로 changhyunblog@gmail.com 으로 만드는 것이 최선이었다.

2) Linux Instance 생성

Linux 가상 머신 시작 이라는 가이드를 따라 Amazon Linux AMI를 사용해보려다가 커맨드가 익숙치 않아서 (apt-get 이 안먹힌다던가) 포기했다. 예전에 만들어본 Ubuntu Server 14.04 LTS 인스턴스를 만들었다.

Launch 직전에 key pair를 만드는 과정에서 public keyprivate key의 개념이 나왔다. 서로 매칭되는 key pair를 만들어서 public key는 AWS가 가상 머신에 가지고 있고, private key는 유저가 가지고 있는가 보다. 유저가 SSH 프로토콜로 가상머신에 접속을 시도할 때, key pair를 확인해서 허용된 유저인지 확인하나보다.

기본 설정에서 변화없이 가상 머신을 Launch 하였다.

3) Instance 접속

가이드에서 우선 Git을 설치하라고 하여 설치했다. 컴퓨터 포맷 후에는 Git이 깔려져있지 않았다. 설치 과정에서 선택하는 항목들이 많았으나 우선 기본 설정으로 설치하였다.

설치한 후 Git BASH 에서 ssh 명령어를 입력하여, 인스턴스에 접속할 수 있었다. 이 과정에서 저장해놓은 public key 와 내 인스턴스의 public DNS 값이 필요하다.

ssh -i '.pem_파일이_있는_경로' ubuntu@public DNS

볼드체로 처리된 부분에 각자의 상황에 맞는 값을 입력하면 된다. 

4) Nginx 설치 및 실행

Nginx 공식 홈페이지의 가이드 문서를 참고하여 진행했다. 세세한 내용이 궁금한 경우에는 이를 직접 참고하면 될 것이다.

Ubuntu에서 각종 패키지 다운로드를 담당해주는 패키징 시스템이 apt 라고 이해했다. 이 apt를 이용해서 간단히 Nginx 를 설치할 수 있다. 이러한 apt 를 사용하는 방법은 Pre-built Package를 사용하는 방법이다. Sources 로 부터 직접 Compiling 하는 방법도 존재한다. 후자의 경우가 더 Flexibility 가 높다는 강점을 지닌다. 서드파티 모듈을 포함한 특정 모듈을 추가할 수 있으며, 가장 최신의 보안 패치를 적용할 수 있는 등의 장점을 지닌다.

어떤 개념을 처음 접할때, 가장 간단하게 파악하는 것을 선호하므로 apt 를 사용해서 pre-built package 를 설치하는 방법을 택했다. 링크된 문서의 Installing Ubuntu Packages 문단을 참고한다. default Ubuntu repository 를 사용하지 않고(이 경우에는 out-of-date의 Nginx 를 설치할 우려가 크다), Nginx repository 에서 다운로드 받는 방법을 택했다. 각 커맨드의 자세한 설명은 링크된 문서에 서술되어있다.

$ sudo wget http://nginx.org/keys/nginx_signing.key

$ sudo apt-key add nginx_signing.key

/etc/apt/sources.list 파일을 에디터로 열어서 하단에 내용을 추가한다.

$ sudo vim /etc/apt/sources.list

(하단에 아래 내용을 추가)

deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx

deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx

(저장)

trusty 부분은 사용하는 Ubuntu Server OS의 버전에 따라 달리 들어가는 codename 이다. 14.04 버전을 사용할 것이므로 trusty 를 적었다.

$ sudo apt-get remove nginx-common

$ sudo apt-get update

$ sudo apt-get install nginx

update를 하는 과정은 로컬 패키지 인덱스를 갱신하는 과정이라고 한다. 이를 통해서 apt-get 커맨드로 Nginx 를 포함한 최신 버전의 패키지를 다운로드 받을 수 있게 되는 것으로 보인다.

$ sudo nginx

(NGINX 가 실행된다)

$ curl -l 127.0.0.1

(로컬 호스트로 한번 Ping 을 날려서 확인해본다. 이를 통해 설치된 NGINX 버전을 확인 가능)

5) Security Group 설정

이제 AWS 가상 머신에 Nginx 웹 서버가 가동되었다. 그러므로 AWS 가상 머신의 public IP를 통해 브라우저로 우리의 웹 서버에 접속할 수 있다. 그전에 AWS 가상 머신이 브라우저를 통한 HTTP 프로토콜 접속을 허용해주도록 AWS 대쉬보드에서 Security Group 을 설정해야 한다.

위의 사진에 빨간색 펜으로 표시된 내용들을 주목하여 세팅하도록 하자. Edit 버튼을 누르면 SSH Type에 대한 rule이 설정되어있을 것이다. Launch Instance 과정에서 default로 설정된 내용이다. 덕분에 우리가 Git Bash에서 ssh 명령어로 AWS 가상 머신에 접속할 수 있었다. 하단의 Add Rule 버튼을 클릭해서 HTTP Type을 선택하면 TCP 프로토콜의 80번 포트로 자동 설정된다. Source는 사용자가 정할 수 있다. 특정 IP의 사용자만 웹 서버에 접속하기를 원한다면 설정하면 될 것이다. 내 목표는 블로그를 만드는 것이기 때문에 사용자를 가리지 않으므로 Anywhere 로 설정하였다.

6) Nginx 웹 서버 가동 확인

웹 브라우저에서 Public IP를 주소창에 입력하면 Nginx 웹 서버가 제공하는 기본 웹 페이지를 확인할 수 있다. 아래와 같이 나온다면 성공이다.

Comments