brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Mar 22. 2017

9.[AWS] 무료로 Apache Web 1대 구축하기

<0> 무료로 생성한  AWS서버 1대에 웹서버를 구축하자

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

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

<3> 서버에 apache설치한다.

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

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




<0> 무료로 생성한  AWS서버 1대에 웹서버를 구축하자


DNS를 통해 이중화 하도록 해보겠다.



무료 서버 1대 받는법은 앞에서 얘기되었다.

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









<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 설치하기



1) Yum으로 설치하기

yum install httpd -y 
/usr/sbin/httpd

ps -ef |grep httpd


vi /etc/httpd/conf/httpd.conf
cd /var/www/html
vi index.html


ps -ef |grep httpd
/usr/sbin/httpd stop
/usr/sbin/httpd -k restart



또는


소스 download 하고  컴파일해 설치하기 

1) download

#  yum install ftp


# cd /tmp

tmp # ftp  ftp.sayclub.co.kr   

: ftp

Password : <Enter>

ftp> cd  /pub/apache/httpd/

ftp> ha

ftp> bi

ftp> ls

ftp> mget  httpd-2.4.23.tar.gz

ftp> quit

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레코더 추가하여 이중화 한다.


웹서버를 2대로 만들었다.

DNS 레코더 등록해서 서버 1대 죽으면 일부 사용자는 접속이  안된다. 

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


서버 다운시 자동으로 서비스에서 빠지도록 설정을 하려면, 

ELB(L4)를 이용하거나 Route53 Falil-over설정을 하여야 한다.




감사합니다.

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