brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Nov 03. 2019

171. AWS ALB 설정, NLB 이해하기

미션

80 포트로 들어오면  1번 서버 접속하기

9000 포트로로 들어오면  2번 서버로 접속 하기



ELB의 하나인  ALB의 기초 설정 순서를  알아보자.


<1>  apache 설치된  ec2 서버 2대 만들기

<2>  ALB (Application Load Balancers)를 만들자.

<3>  Tagent Groups 설정하기

<4>  조건에 따라 접속하는 서버가 다르게 해 보자.

<5>  NLB를 통한 고정 IP 지원법

<6>  서버는 8080 사용하고 , LB에서는 80으로 접속해 사용되게 하기

<7> 삭제 순서




<1>  apache 설치된  ec2 서버 2대 만들기

EC2

아마존 리눅스로 설치한다.


OS  설치 시 apache 설치하기

EC2 > Advanced Details  > User data에 Apache 설치되도록 설정한다.

#! /bin/bash

yum update -y

yum install -y httpd

service httpd start

chkconfig httpd on





또는


AWS Marketplace에서 Apache 설치된  LAMP 버전을 구매해 사용하는 법도 있다.

여기서는 우분투이다.

계정

user : ubuntu





<2>   Load Balancers를 만들자.


1.  Create Load Balancer




2. ALB  선택





3. AZ는 2개 이상이어야 한다.


주의

ALB구성 시 AZ는 Public Subnet으로 지정해야 한다.  

ALB에서 AZ는  ALB를  놓는 위치는 지정하는 것이다.  

ALB(L4)는 공인 망에 있어야 하는 것이다.


Private Subnet으로 지정하면  서비스가 안된다.!!!


서버를  Private Subnet에 위치한다. 

서버는 사설 IP만 가지는 구성이다.




<3> Tagent Groups 설정하기


1

EC2  >  Target Group에서 해당 서버 2대를  Add to registered 해서 추가한다.





2. Monitoring에서  Healthy Hosts가   2대 인지 확인한다.




3. EC2 > Load Balancers >  DNS name 확인한다.

웹브라우저로 접속해 본다.





<4>  조건에 따라 접속하는 서버가 다르게 해 보자.


80 포트로 들어오면  1번 서버 접속하기

9000 포트로로 들어오면  2번 서버로 접속 하기

// 9000 포트에 대해 SecurityGroup에 허용을 추가해야 한다.


Target Group을 2개 만든다.

Tg-80

Tg-9000




tg-80


tg-9000




<5>  NLB를 통한 고정 IP 지원법


1

NLB를 두어 고정 IP를 사용 할 수 있다.

각 AZ-Subnet 당 1개의 Elastic IP 할당 가능.

해당 IP값은 불변


2

Client 요청이 백엔드에 전달될 때 Client IP 그대로 들어온다.

X-Forwarded-for 등의 부가 헤더 불필요


타켓을 인스턴스로 했을때 Client IP 그대로 들어온다.


구성)

사용자 ------------------- 서울 NLB , 인스턴스를 타겟으로  ---------------  서버   (사용자 IP찍힘)


사용자가 서버에 연결을 위해서는 ?

서버의 보안 그룹에서 사용자 IP를 보안그룹에서 허용해야 한다.



3

타켓을  다른리전 IP로  구성 했을때는 NLB IP가 서버에 찍힌다.  

이 경우는 소스 구분을 할수 없다.


구성) 

사용자 --------- 서울 NLB , 타켓을 미국 IP로 지정----------미국에 서버 (서버에 NLB IP가 찍힘)  

// 소스로 구분이 안되는 경우 임




참고  NLB

https://wisen.co.kr/pages/blog/blog-detail.html?idx=1926


https://www.bespinglobal.com/tech-blog-171019-aws-nlb/


참고

ALB는 도메인을 가진다. 

ALB는 고정 IP를 가질 수 없다.

만약 L4가  방화벽 허용 등으로 고정 IP를 가져야 한다면 다음과 같은 방법으로 관리할 수 있으나 권장은 하지 않는다.


https://aws.amazon.com/ko/blogs/korea/using-static-ip-addresses-for-application-load-balancers/




<6>   서버는 8080 사용하고 , LB에서는 80으로 접속해 사용되게 하기


1

Target Group에서 포트를 8080으로   수정하여 서버를  추가한다.



2

웹서버 포트 변경법


vi /etc/httpd/conf/httpd.conf


/usr/sbin/apachectl restart

httpd not running, trying to start


# ps -ef |grep httpd

root      2801     1  0 06:57 ?        00:00:00 /usr/sbin/httpd -k restart

apache    2802  2801  0 06:57 ?        00:00:00 /usr/sbin/httpd -k restart

apache    2803  2801  0 06:57 ?        00:00:00 /usr/sbin/httpd -k restart

apache    2804  2801  0 06:57 ?        00:00:00 /usr/sbin/httpd -k restart

apache    2805  2801  0 06:57 ?        00:00:00 /usr/sbin/httpd -k restart

apache    2806  2801  0 06:57 ?        00:00:00 /usr/sbin/httpd -k restart

apache    2807  2801  0 06:57 ?        00:00:00 /usr/sbin/httpd -k restart

apache    2808  2801  0 06:57 ?        00:00:00 /usr/sbin/httpd -k restart

apache    2809  2801  0 06:57 ?        00:00:00 /usr/sbin/httpd -k restart

root      2811  2773  0 06:57 pts/0    00:00:00 grep --color=auto httpd

[root@ip-10-180-105-146 ~]#



<7> 삭제 순서


1.

LB삭제


2. 

타깃 그룹 삭제




감사합니다.

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