반응형
안녕하세요 서후아빠입니다. ^_^
이번 세션은 AWS ELB 서비스 중에서 ALB, NLB에 대해서 간단히 실습을 해보겠습니다.
구성도
가용영역 2개(AZ-A-, AZ-C)이므로 가용영역별 ELB Interface가 자동 생성됩니다. priA-ec2-a/c가 인터넷으로 요청하는 서비스가 없는 경우 Nat Gateway(natA-a, natA-c)는 필요없습니다. |
사전 작업
인프라 생성 : vpc, subnet, igw, routing table, iam, ec2, CloudWatch의 로그 그룹 등
※ priA-ec2-a, priA-ec2-c는 wordpress 설치하여 HTTP 준비
# WordPress로 인스턴스를 생성하거나 아래처럼 직접 WordPress(or 웹서비스)를 설치
sudo yum install httpd -y
cat /var/www/html/index.html
<html><body>hello World1</body></html> // priA-ec2-a
<html><body>hello World2</body></html> // priA-ec2-c
sudo systemctl start httpd.service
# HTTP 서비스 Listen 상태 확인
netstat -tupan | grep 80
1단계 : 대상 그룹(Back end) 생성
EC2 > Target groups > Create a target group
구분 | Specify group details | Target registration | ||
NLB 경우 | Choose the target type : instance target group name : nlbA-tg Protocol(Version):Port : TCP:80 VPC : vpcA health check protocol : TCP |
available instances : priA-ec2-a, priA-ec2-c Ports for selected instances : 80 (Include as pending below) ※ 포트 상태 정상 확인 |
||
ALB 경우 | Choose the target type : instance target group name : albA-tg Protocol(Version):Port : HTTP(HTTP1):80 VPC : vpcA health check protocol, path : HTTP, / |
available instances : priA-ec2-a, priA-ec2-c Ports for selected instances : 80 (Include as pending below) ※ 포트 상태 정상 확인 |
2단계 : 로드 밸런서 생성
EC2 > Load balancers > Create a load balancer
구분 | basic configuration | network mapping | security group | listeners and routing |
NLB 경우 | load balancer name : nlbA system : internet-facing |
VPC : vpcA Subnet : pubA-sn-a, pubA-sn-c |
- | Protocol:Port : TCP:80 Forward to : nlbA-tg |
ALB 경우 | load balancer name : albA system : internet-facing |
VPC : vpcA Subnet : pubA-sn-a, pubA-sn-c |
출발지 : 0.0.0.0/0 HTTP, 80 허용 |
Protocol:Port : HTTP:80 Forward to : albA-tg |
ALB는 가용영역 2개 이상 선택 필수입니다. |
3단계 : 상태 체크 결과 및 접속 도메인 확인
EC2 > Target groups > nlbA-tg or albA-tg > Targets (tab) > Health status “healthy”
EC2 > Load balancers > nlbA or albA > Description (tab) : DNS name 확인
EC2에서 HTTP(TCP 80) 서비스가 Listen 상태임에도 불구하고 Health status "unhealty"인 경우 확인할 부분 - NLB는 EC2 보안그룹(Security group) 확인 : 출발지(0.0.0.0/0), 목적지 포트(TCP 80), 허용 - ALB는 EC2 보안그룹과 HTTP Path 확인 1) 보안그룹 : 출발지(10.0.1.0/24, 10.0.2.0/24), 목적지 포트(TCP 80), 허용 ※ ALB를 통과하는 패킷은 ALB 인터페이스로 SNAT 처리되므로 출발지는 pubA-sn-a/c의 IP로 바뀜 ※ 일반적으로는 2단계 ALB에 설정한 보안그룹을 출발지에 등록하여 ALB만 허용하도록 설정 2) ALB의 경우 Port + Path로 Health 체크를 하기 때문에 1단계에 설정한 '/'경로가 맞는지 확인 필요 EC2에 접속하여 명령어(ex : tcpdump -nei any port 80)로 ELB에서 Health check 패킷이 인입되는지 확인 |
4단계 : 부하분산 테스트
브라우져에서 3단계에서 확인한 nlbA or albA 도메인으로 HTTP 접속
기타 : HTTPS 통신
암호화 통신을 구성하는 경우는 ACM에 인증서를 등록한 후, 이를 ALB에 연결하는 작업이 필요합니다.
이는 https://sh-t.tistory.com/manage/newpost/49 참조하시기 바랍니다.
반응형
'Networking' 카테고리의 다른 글
[실습] Amazon ELB에서 부하분산 처리한 로그를 Amazon S3에 저장/확인하는 방법 알아보기 (0) | 2022.07.13 |
---|---|
[실습] Amazon ELB (ALB+NLB) 구성하기 (3) | 2022.07.13 |
[이론] AWS VPN 기본 개념 (0) | 2022.07.06 |
[이론] Amazon GWLB 구성 기본 개념 (1) | 2022.07.05 |
[실습] Amazon GWLB를 사용하여 Fortinet 방화벽 구성하기 (TGW, Split)-2편 (0) | 2022.07.03 |