ELB (NLB & ALB)
Update : 2021-03-15
Last updated
Was this helpful?
Update : 2021-03-15
Last updated
Was this helpful?
Elastic Load Balancing은 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP 주소, Lambda 함수와 같은 여러 대상에 자동으로 분산시킵니다. Elastic Load Balancing은 단일 가용 영역 또는 여러 가용 영역에서 다양한 애플리케이션 부하를 처리할 수 있습니다. Elastic Load Balancing이 제공하는 세 가지 로드 밸런서는 모두 애플리케이션의 내결함성에 필요한 고가용성, 자동 확장/축소, 강력한 보안을 갖추고 있습니다.
본 랩은 아래와 같은 구성을 통해 NLB와 ALB 구성을 통해 차이점과 구성 방식을 이해하기 위해 아래와 같이 구성합니다.
NLB 랩에서는 새로운 인스턴스 4개를 구성하여 TCP 포트 기반으로 Loadbalancing을 구성하며, ALB는 앞서 구성한 인스턴스를 활용합니다.
NLB와 ALB 구성이 차이 이해
NLB의 로드밸런싱 방식 구성과 이해
NLB EIP 할당
ALB의 로드밸런싱 방식 구성과 이해
NLB 시험용 인스턴스 4개를 구성합니다.
AMI - Amazon Linux 2
인스턴스 유형 - t2.micro
볼륨 유형 - gp3
보안그룹 (Security Group) - IMD-PUB-SG
네트워크 - IMD-VPC / 각 Public Subnet 별 2개 EC2 인스턴스 / 퍼블릭 IP 자동할당 활성화
사용자 데이터
보안그룹을 새로 작성합니다. (보안그룹 이름 - NLB-SG : 보안 정책은 22번, 80포트를 허용합니다.)
기존 키 페어 또는 새로운 키페어를 생성합니다.
먼저 NLB 고정 IP 부여를 위한 EIP를 생성합니다. (NLB는 ALB와 다르게 EIP부여가 가능합니다. 필수 조건은 아니므로 생략해도 됩니다.)
EIP 할당을 위한 Amazon IP 주소풀을 선택하여 고정 IP를 할당 받습니다. 2개의 서브넷에 할당하게 되므로 2번 반복해서 2개를 할당 받습니다.
2개를 할당 받으면 아래와 같이 2개의 EIP가 생성됩니다.
NLB 생성을 위해 로드밸런서 생성을 선택합니다.
EC2 대시보드 - 로드밸런싱 - 로드밸런서 - 로드밸런서 생성 선택 - Netwwork Load Balancer 선택
로드밸런서 유형을 NLB를 선택합니다.
로드밸런서 구성에서 이름을 선택하고, 체계는 인터넷 연결 (Public Subnet)을 선택합니다. Private 의 경우에는 내부를 선택하면 됩니다.
가용영역 및 서브넷을 선택합니다. 또한 IPv4 주소는 "탄력적 IP 선택"을 선택하고, 미리 할당해 놓은 EIP를 선택합니다.
리스너 및 라우팅에서 대상 그룹을 생성을 선택하고, 대상 그룹을 생성합니다. 생성이 완료되면 다시 생성된 대상 그룹을 찾아서 선택합니다.
대상 그룹 생성을 선택하면 아래와 같은 화면이 보입니다. 대상 유형 선택에서 인스턴스를 선택하고, 대상 그룹 이름을 선언합니다. 다음 단계를 선택합니다.
대상 그룹에 포함될 인스턴스를 등록하는 화면이 보이고, 여기에서 앞서 생성한 인스턴스 4개를 선택하고, "아래에 보류 중인 것으로 포함"을 선택하면 대상 그룹에 등록됩니다.
대상 그룹에 인스턴스들이 등록 된 것을 확인하고, 대상 그룹 생성을 선택합니다.
대상 그룹이 정상적으로 등록된 것을 확인합니다.
이제 다시 로드 밸런서 생성 단계로 전환해서 "생성한 대상그룹을 선택" 합니다. 태그에 키 "Name", 값 "IMD-NLB"를 입력하고, "로드밸런서 생성" 을 선택합니다.
NLB가 대상 그룹에 대한 Healthy 체크를 시작합니다. 대상 그룹 상태를 확인합니다.
교차영역 로드밸런싱을 활성화 합니다.
앞서 생성한 EC2 인스턴스(NLB 대상 그룹 인스턴스)에 SSH로 접속해서 아래 Script를 복사합니다.
NLB가 대상 그룹에 대한 Healthy 체크가 정상인지 확인합니다.
EC2 대시보드 - 로드 밸런싱 - 대상 그룹
NLB는 서로 다른 리전간의 LB를 속성 편집에서 구성해야 합니다. 비용은 ALB와 다르게 부과 됩니다.
NLB DNS Name 또는 EIP에 접속하여 결과를 확인합니다.
AWS 관리 콘솔에서 EC2 서비스를 선택합니다. "로드밸런싱"-"로드밸런서"를 선택합니다. 로드밸런서 유형은 ALB를 선택합니다.
1단계 로드밸런스 구성을 선택합니다. 로드밸런서 이름을 생성합니다. 리스너는 기본 HTTP , 80을 유지 합니다.
EC2 Computing LAB에서 생성한 보안그룹을 사용합니다. Public 보안 그룹을 사용합니다. 해당 보안그룹에는 80 포트가 허용되어 있어야 합니다
라우팅 대상 그룹 (Real Server)를 선택합니다. Real Server 들의 그룹을 정의하고 대상 유형은 인스턴스로 선택합니다. (PUBLIC-01,02)
상태 검사는 PUBLIC-01,02에 포함되어 있는 웹서비스 URL을 선택합니다. PUBLIC-01,02에는 "/var/www/html/ec2meta-webpage/index.php" 에서 웹서비스를 제공하고 있습니다. 해당 경로에 대해서 상태 검사를 수행합니다.
대상서버를 등록합니다. 대상서버는 Public Subnet-A,B에 할당된 서버입니다. (PUBLIC-01, PUBLIC-02) 등록 후 나머지 단계를 완료합니다.
생성된 ALB 의 상태를 확인하고, DNS A 레코드를 확인합니다.
대상서버가 "Healthy" 상태인지를 확인합니다.
ELB DNS A레코드 주소로 정상적으로 웹서비스가 제공되는 지 확인합니다. 앞서 ALB 정보에서 제공되는 DNS A 레코드를 복사해서 웹 브라우저 창에 붙여 넣고 확인합니다.
웹페이지를 Refresh 할 때 마다 페이지의 정보가 다르게 변경됩니다. 라운드로빈으로 로드밸런싱이 이뤄지기 때문입니다.
성공적으로 ELB 랩을 마치셨습니다.