brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Aug 09. 2018

43.서버 이중화하기,AMI,ELB


<1> 현황

<2>  문제점과  개선 방향.

<3> 개선 작업



<1> 현황

서버 1대로 운영중

물론 서버는 공인IP (EIP)로 연결되어 있습니다



<2>  문제점과  개선 방향.


1) 서버를 이중화 하고 싶다.

2) 기존 서버에 설치된 어플리케이션을 재설치하지 않고, 동일하게 이미지 떠서 증설하고 싶다.


개선후






<3> 개선 작업

- 복제 이미지 서버(AMI)를 만든다.
- L4(ELB)로 이중화 한다.


순서

1. 복제 이미지(AMI)를 만든다.

2. 복제이미지로 eng-web02서버를 만든다. (증설한다.)

3. 이중화를 위해 L4(ELB)를 사용한다.

4. DNS(Route53)을 이용해 L4(ELB)를 DNS로 지정한다.

5. 이제 서버 1대가 다운 되어도 서비스가 정상적으로 된다.


  

1. 복제 이미지(AMI)를 만든다.


1) 기존서버 어플리케이션 확인

- 10.0.0.31에 Apache 웹서버가 구축되어 있다.

- 아파치를 재 설치하지 않고, 이미지 떠서 동일하게 증설해보자.

10.0.0.31에 접속하여 웹서버 확인

[root@ip-10-0-0-31 ~]# ps -ef |grep httpd
root 2729 1 0 13:21 ? 00:00:00 /usr/local/apache/bin/httpd -k start
daemon 2730 2729 0 13:21 ? 00:00:00 /usr/local/apache/bin/httpd -k start
daemon 2731 2729 0 13:21 ? 00:00:00 /usr/local/apache/bin/httpd -k start
daemon 2732 2729 0 13:21 ? 00:00:00 /usr/local/apache/bin/httpd -k start
root 2815 2705 0 13:21 pts/0 00:00:00 grep --color=auto httpd



2) 기존 운영중인 서버에서 복제 이미지를 만든다.


[EC2] 클릭


eng-web01 서버에서  [오른마우스 클릭]

[Actions]에서  [Image] -> [Create Image]하여  이미지서버를 만든다


주의 :

서비스중인 서버의 경우 SSH 접속이 모두 끊어진다.

서비스에서 제외하고 이미지 서버를 만들도록 해야한다.

옵션으로  no reboot 옵션이 있다. 잠시 끊어지는 정도로 테스트후 사용하기 바란다.




이미지  이름을 적는다.

영어 웹서버 이미지 2018-0909-1 번째


이미지가 만들어진다

 




2. 복제이미지로 eng-web02서버를 만든다. (증설한다.)


만들어진 이미지로 eng-web02 서버를 만든다

 


보안그룹은 기존 보안그룹을 이용한다.  웹과 SSH , ICMP(Ping)을 허용하도록 해놓았다

서버 로그온을 위해 기존에 Key 사용한다






기존에 Public subnet으로 만든게  2A구역(AZ라 불리우며, IDC라 한다.)에 있다.

그래서 새로운 서브넷을 만들어 2C구역(다른 IDC)를 만든다.

그래서 L4를 서로다른 구역에 배치하여  구역전체가 장애났을때도 서비스가 되도록 하고자 한다.



서브넷 하나더  만들기



네임은 eng-vpc-web-az2 라고 만든다.  

영어 네트워크 웹쪽 2번째 영역

10.0.2.0/24 블럭으로 한다.



0.0



이미지로 서버를 2번째 영역인 [eng-vpc-web-az2C]  에 하나더  만들어 본다

이미지로 서버로 만들때, [Subnet]을  AZ-2C로  만든다.



2C AZ(IDC)에  eng-web03 서버가 만들어 졌다




3. 이중화를 위해 L4(ELB)를 사용한다.


 L4 설정과 타켓그룹   2가지 설정을 한다.



[Application Load Balancer]를 사용해본다



우선은 [HTTP]만 사용하도록한다

 

L4(ELB)설정을 한다 다른영역에 있는 서버 2대를 지정한다.

web01과 web03 서버 2대를 선택한다.


  

Add to registered를 눌러 그룹에 포함 시킨다.




4. DNS(Route53)을 이용해 L4(ELB)를 DNS로 지정한다.


기존 eng.serverchk.com의 ttl을 3초정도로 줄여놓는다.


Alias로 eng-web-elb1을 지정해  l4도메인이름을 매칭시킨다.


eng.serverchk.com 을 L4 (ELB  도메인)로 지정한다.




5. 이제 서비스가 잘되는지 확인해보자.


안된다 ~

이유를 찾아보자 ^^



새로운 서브넷에 대한 디폴트라우팅이 빠져있어 디폴트를  잡는다



모니터링 주기를 짧게 설정한다



L4 ELB에서 타켓 그룹에 서버들이 등록되어 있지 않은경우 추가한다

 


이제 정상적으로 2대가 분산이 된다.







테스트가 잘 안된면,

개별 서버에 대해 공인IP로 직접 접속해 잘되는지 확인해본다.


이미지로 만든서버는 apache데몬이 떠있지않다.




<정상적인 경우>



테스트

서버 1대가 다운 되어도 서비스가 정상적으로 된다.



참고 : AWS메뉴얼은 항상 변경된다.

필요한것에 대해 어떤걸 어떤 순서로 해야하는지는만  명확히 알고 있으면 빠르게 설정할수 있다.


복제서버로 서비스 하는 순서.

1. 복제 이미지(AMI)를 만든다.

2. 증설한다. 복제이미지로 eng-web02서버를 만든다.

3. 이중화를 위해 L4(ELB)를 사용한다.

4. DNS(Route53)을 이용해 L4(ELB)를 DNS로 지정한다.

5. 이제 서버 1대가 다운 되어도 서비스가 정상적으로 된다.



감사합니다.

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