본문 바로가기

Networking

[실습] AWS ELB (Gateway 방식 Endpoint) 구성하기

반응형

안녕하세요 서후아빠입니다. ^_^

이번 세션은 Endpoint를 이용하여 vpcA에 위치하는 nlbA를 vpcB에 위치하는 nlbB와 연결하고, 결국은 nlbB에 연결되어 있는 ec2에 전달되는 구성입니다. 현실적으로 쓸지는 모르지만, 개인적으로 VPC간 ELB 연결을 어떻게 가능할까 궁금하여 고민을 하다가 만들어봤습니다.


구성도

vpcA의 nlbA로 서비스 요청이 오면 nlbB의 Endpoint를 거쳐 ec2로 전달되는 구성입니다. 
보시는 것처럼 여러번의 NAT가 발생하여 소스IP 추적은 어려울 것으로 판단됩니다.
소스 IP를 확인하고자 한다면 nlbA에서 발생하는 로그를 S3에 저장하여 확인하시면 됩니다.(https://sh-t.tistory.com/50 참조)

사전 작업

인프라 생성 : vpc, subnet, igw, routing table, ec2  등은 설명 생략합니다.

2022.07.02 - [Networking] - [실습] Amazon VPC 구성요소 생성하기

 

[실습] Amazon VPC 구성요소 생성하기

안녕하세요 서후아빠입니다. ^_^ 이번 세션은 VPC 관련 구성요소에 대해서 실습을 해보겠습니다. 구성도 1단계 : VPC 생성 VPC > Your VPCs > Create VPC 구분 VPC settings (VPC Only 방식) VPC settings (VPC a..

sh-t.tistory.com

※ priB-ec2-a, priB-ec2-c는 wordpress 설치하여 HTTP 준비

# WordPress로 인스턴스를 생성하거나 아래처럼 직접 WordPress(or 웹서비스)를 설치
sudo yum install httpd -y

cat /var/www/html/index.html
<html><body>hello World1</body></html>   // priB-ec2-a
<html><body>hello World2</body></html>   // priB-ec2-c  
sudo systemctl start httpd.service

# HTTP 서비스 Listen 상태 확인 
netstat -tupan | grep 80

1단계 : 대상 그룹 생성

EC2 > Target groups > Create a target group

구분 Specify group details Target registration
NLB 경우 Choose the target type : instance
target group name : nlbB-tg
Protocol(Version):Port : TCP:80
VPC : vpcB
health check protocol : TCP
available instances : priB-ec2-a, priB-ec2-c
Ports for selected instances : 80 (Include as pending below)
 ※ 포트 상태 정상 확인

2단계 : 로드 밸런서 생성

EC2 > Load balancer > Create a load balancer

구분 basic configuration network mapping security group listeners and routing
NLB 경우 load balancer name : nlbB
system : internal
VPC : vpcB 
Subnet : priB-sn-a, priB-sn-c
- Protocol:Port : TCP:80
Forward to : nlbB-tg

3단계 : 상태 체크 결과 확인

EC2 > Target groups > nlbB-tg > Targets (tab) > Health status “healthy

4단계 : Endpoint 서비스 및 Enpoint 생성

VPC > Endpoint services > Create endpoint service

구분 Name Load balancer type Available load balancers
내용 nlbB-ep-svc gateway nlbB
Acceptance required : 엔드포인트 생성시 엔드포인트와 연결되는 엔드포인트 서비스에서 수락을 해주어야 엔드포인트가 활성화되게 하는 기능으로 귀찮으면 체크 해제하면 자동 수락됩니다.

Endpoint 서비스는 ALB로는 생성되지 않기 때문에 NLB로 진행합니다.

VPC > Endpoint services > nlbB-ep-svc > Endpoint connections > Endpoint service 선택 > Actions > Accept endpoint connection request > Accept

VPC > Endpoint services > nlbB-ep-svc > Details (tab) > Service name 확인 (ex : com.amazonaws.vpce.ap-northeast-2.vpce-svc-06e2134183abddfbc)

VPC > Endpoints > Create endpoint

구분 Endpoint settings Service settings VPC
1 Name : nlbB-ep-a1
Service category : Other endpoint services
com.amazonaws.vpce.ap-northeast-2.vpce-svc-06e2134183abddfbc > Verify service > Service name verified VPC : vpcA
Subnet : pubA-sn-a
2 Name : nlbB-ep-c1
Service category : Other endpoint services
com.amazonaws.vpce.ap-northeast-2.vpce-svc-06e2134183abddfbc > Verify service > Service name verified VPC : vpcA
Subnet : pubA-sn-c

5단계 : 대상 그룹 생성

EC2 > Target groups > Create a target group

구분 Specify group details Target registration
NLB 경우 Choose the target type : IP addresses
target group name : nlbA-tg
Protocol(Version):Port : TCP:80
VPC : vpcA
health check protocol : TCP
available instances : nlbB-ep-a1의 IP, nlbB-ep-c1의 IP
Ports for selected instances : 80 (Include as pending below)
 ※ 포트 상태 정상 확인

6단계 : 로드 밸런서 생성

EC2 > Load balancer > 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

7단계 : 상태 체크 결과 및 접속 도메인 확인

EC2 > Target groups > nlbA-tg > Targets (tab) > Health status “healthy

EC2 > Load balancer > nlbA > Description (tab) : DNS name 확인

8단계 : 부하분산 테스트

브라우져에서 7단계에서 확인한 nlbA 도메인으로 HTTP 접속

반응형