EC2와 웹서버
EC2의 인스턴스는 한대의 독립적인 컴퓨터에 해당하기 때문에 컴퓨터로 할 수 있는 일이라면 EC2를 이용해서 무엇이든지 할 수 있다. 하지만 아마존 웹서비스는 웹서비스를 위해서 고안된 인프라 서비스이고, AWS에서 제공하는 서비스 중에 웹서버의 역할을 할 수 있는 상품은 EC2 밖에 없기 때문에 EC2의 가장 중요한 기능은 역시 웹서버라고 할 수 있다. 이번 시간에는 인스턴스에 웹서버를 설치하고, 웹서비스를 하는 방법에 대해서 알아본다. 운영체제는 Ubuntu, 웹서버는 Apache를 사용할 것이다. 웹서버에 대한 개념을 잘 모르겠다면 '웹서비스 만들기'편을 참고한다.
웹서버 설치
웹서버인 Apache를 설치하기 위해서는 우선 SSH를 이용해서 인스턴스에 접근해야 한다. 이 방법은 이전 수업인 인스턴스의 생성에 있다. 터미널에서 아래와 같이 입력한다.
sudo apt-get update;
이해를 돕기 위해서 그림을 첨부했다.
sudo apt-get install apache2;
이제 Apache 웹서버가 설치 됐다.
Security Group (방화벽)
웹서비스가 설치되면 웹페이지를 브라우저에게 서비스 할 준비가 된 것이다. 하지만, AWS EC2는 방화벽이라는 것을 기본적으로 제공하기 때문에 웹서비스를 하려면 방화벽의 설정을 변경해야 한다.
우선 인스턴스의 Security Group 이름을 알아야 한다. 인스턴스 목록 중에 Security Group 항목의 내용을 확인한다. 아래 데모에서는 Security Group이 quicklaunch-4로 되어있다.
이제 Security Group의 방화벽 설정을 변경해보자. 사이드 바에 Security Group 항목을 선택한다.
위의 그림을 참고하면서 순서대로 설정한다. 각각에 대한 설명은 아래와 같다.
3. 생성한 인스턴스의 목적은 웹서버이다. 웹서버는 HTTP라는 통신규약을 이용해서 웹페이지와 같은 정보를 브라우저에게 전송한다. 인스턴스는 인터넷에 연결되어 있기 때문에 다양한 방법으로 접속이 시도되는데 이 중에 HTTP를 허용하겠다는 의미다.
4. 컴퓨터를 방으로 비유하면 이 방으로 들어오는 여러개의 문이 있는데, 문에 따라서 대기하고 있는 프로그램들이 다르다. 이를테면 80번째 문은 웹서버가 대기하고 있고, 22번째 문은 SSH 서버가 대기하고 있다. 따라서 HTTP로 통신을 하려면 80번 포트를 열어놔야 한다. 각 프로그램별로 사용하는 포트의 번호는 정해져있다. (이 값은 변경 가능하다)
5. 인스턴스에 접속하는 클라이언트를 제한하는 기능이다. 만약 0.0.0.0/0으로 이 값을 지정하면 HTTP의 포트인 80번 포트로 접근하는 모든 컴퓨터를 허용하는 것이고, 74.125.128.113/32를 값으로 주면 IP가 74.125.128.113인 컴퓨터만 인스턴스에 접근이 가능하다. 이것을 CIDR(사이더)라고 하는데, 이 숫자를 지정하는 것에 따라서 접속을 허용하는 대역을 정의 할 수도 있다. 또 다른 Security Group의 접근을 허용할수도 있는데, Security Group은 sg-f0e985f1라는 형식을 가진 Security ID 값을 가지고 있다. 이 값을 입력하면 해당 Security Group에 속해있는 인스턴스의 접근이 허용 된다.
웹서버와 랑데뷰
인스턴스를 만들었고, 거기에 운영체제를 설치했다. 그리고 Apache를 설치한 후에 인스턴스에 접속 할 수 있도록 Security Group을 변경했다. 이제 실제로 웹서버에 접속해보자.
웹브라우저를 열고 주소 표시창에 인스턴스의 Public DNS을 입력하자. 그럼 아래와 같은 화면이 보여야 한다.