brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 17. 2016

[AWS] 17. AWS무료서버로 Apache웹이중화



무료로 생성한  AWS서버 1대에 웹서버를  구축하고,  DNS를 통해 이중화 하도록 해보겠다.

변경전 - 웹서버 1대 사용중

변경후 - aws에 웹서버 1대추가



AWS서버 만드는법은 앞에서 얘기되었으므로 여기서는 만들어진 서버에 로그온하는 법부터 설명한다.


AWS에 웹서버 1대 추가하는법.

참고 무료서버 1대 받는법 : https://brunch.co.kr/@topasvga/17



웹서버 이중화 하기 요약

1. 서버에 로그인하기 - Putty를 이용해 서버 접속

2. 웹서버로 접속해야 하므로 보안부분에서 80포트를 허용한다.

3. 서버에 apache설치한다.

4. 고정공인 IP (Elastic IPs)를 할당 받는다.

5. 고정 공인IP를 DNS  A레코더로  추가 한다.




1. 서버에 로그인 하기


1) PuTTy 실행 ->  Putty Category - Connection - SSH - Auth - Browse 클릭 -  xxx11.ppk 파일을 읽어 로그인한다.


2) login as: ec2-user

Authenticating with public key "imported-openssh-key"

Last login: Sat Jul 16 01:40:43 2016 from x.x.x.x


       __|  __|_  )

       _|  (     /   Amazon Linux AMI

      ___|\___|___|


3) [ec2-user@ip-172-31-]$ sudo su -





2. 웹 서버이므로  네트웍&보안에서 80포트를 열어주기.


https://console.aws.amazon.com/


1) [NETWORK & SECURITY]  ->   [Secutiy Gtoups]  -> launcg-wizard-1  오른마우스 또는 Action -> Edit inbound rules -> HTTP TCP  80 any 0.0.0.0



2)  Public IPs를 확인하한다.

 [NETWORK & SECURITY]  ->   [Network Interfaces] -> Primary private IP 와  Public IPs 를 확인한다.




3. Apache download 와  컴파일하기


1) download

ftp가 없어 설치 #  yum install ftp*


apache 최신버전 확인 - 웹브라우져에서 http://ftp.neowiz.com/pub/apache/httpd/  접속


# cd /tmp

tmp # ftp  ftp.sayclub.co.kr   

Name (ftp.sayclub.co.kr:root):  ftp

Password : <Enter>


ftp> cd  /pub/apache/httpd/

ftp> ha

ftp> bi

ftp> ls

ftp> mget  httpd-2.4.23.tar.gz

ftp> quit


아니면 wget으로 다운로드한다.

# wget  http://ftp.neowiz.com/pub/apache/httpd/httpd-2.4.29.tar.gz


압출풀기  tmp]# tar  zxvf  httpd-2.4.23.tar.gz



2) 컴파일

tmp]# cd httpd-2.4.23



httpd-2.4.23]# yum install apr*

httpd-2.4.23]# yum install gcc

httpd-2.4.23]# yum install pcre*


httpd-2.4.23]# ./configure --prefix=/usr/local/apache     


httpd-2.4.23]# make ; make install



httpd-2.4.23]# cd /usr/local/apache/conf

conf]# vi httpd.conf


#ServerName www.example.com:80

ServerName www.example.com:80


httpd-2.4.23]# /usr/local/apache/bin/apachectl start


httpd-2.4.23]# ps -ef |grep httpd

root      2694     1  0 11:29 ?        00:00:00 /usr/local/apache/bin/httpd -k start

daemon    2695  2694  0 11:29 ?        00:00:00 /usr/local/apache/bi      



3) 웹브라우저로  Public IPs 로 접속 확인한다.


It works!  





4.  DNS에 매칭시키기 위해  고정 공인IP(Elastic IPs)를 할당하고 서버와 매칭한다.


https://console.aws.amazon.com/

1)고정  공인IP가 할당

 [NETWORK & SECURITY]  ->   [Elastic IPs] -> [Allocate New Address] ->  고정  공인IP가 할당된다.


 2) 고정 공인IP와 서버와 매칭

 [Action]- [Associate Address]  - 사설IP와 매칭한다.


매칭된 이후 Public IPs는 없어지고 ,  Elastic IPs(고정 공인IP)로 사용된다.



3) 웹브라우저로  고정 공인IP (Elastic IP)로 접속 확인한다.




다른 리눅스 서버에서  curl 명령어로도 확인가능하다.

# curl  http://52.78.x.x

<html><body><h1>It works! web 2</h1></body></html>



5.  DNS 서버에서  고정공인 IP (Elastic IP)를  A레코더 추가하여 이중화 한다.


이제 웹서버는 이중화 되었다.


이전처럼 서버 1대가 죽는다고 전체 서비스가 중지 되진 않는다


하지만, 서버 1대 죽으면 일부 사용자는 접속이  안된다.

DNS  A레코더로 이중화 되어 있는경우, 자동을 빠지지 않는다.


자동으로 빠지게 하려면  Aws route53의 Gslb가능을 사용하면 된다.


감사합니다.




다음은


18. AWS ROUTE53을 이용해 네임서버 이중화하기1  https://brunch.co.kr/@topasvga/19


감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari