ALB와 NLB를 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화 해보자

2022.01.28

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 ALB와 NLB를 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화 해보도록 하겠습니다.

목표

ALB와 NLB를 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화

구성도

준비

Route53

무료 도메인으로 AWS Route53에 도메인을 등록하고 AWS Certificate Manager로 SSL 인증서 설정해 보기

Amazon VPC 프라이빗 DNS 이름 도메인 확인 TXT 레코드

VPC

VPC명 CIDR
client-vpc 10.0.0.0/16
server-vpc 20.0.0.0/16

Route

Route명 VPC명
client-public-route client-vpc
server-public-route server-vpc
server-private-route server-vpc

Subnet

Subnet명 CIDR 가용영역 Route
client-public-subnet 10.0.0.0/24 ap-northeast-1c client-public-route
server-public-subnet 20.0.0.0/24 ap-northeast-1d server-public-route
server-private-subnet-1 20.0.1.0/24 ap-northeast-1d server-private-route
server-private-subnet-2 20.0.2.0/24 ap-northeast-1c server-private-route

Security Groups

alb-sg (VPC : server-vpc)

유형 프로토콜 포트 소스
HTTP TCP 80 0.0.0.0/0

ec2-sg (VPC : server-vpc)

유형 프로토콜 포트 소스
HTTP TCP 80 alb-sg

client-ec2 (VPC : client-vpc)

유형 프로토콜 포트 소스
HTTP SSH 22 my-ip

EC2

server-ec2-1 / server-ec2-1

OS 유형 VPC 서브넷 보안그룹
Amazone Linux2 t2.micro server-vpc server-private-subnet-1 ec2-sg
Amazone Linux2 t2.micro server-vpc server-private-subnet-2 ec2-sg

client-ec2

OS 유형 VPC 서브넷 보안그룹
Amazone Linux2 t2.micro client-vpc client-public-subnet client-ec2

#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html

대상그룹

alb-tg

EC2명
server-ec2-1
server-ec2-1

nlb-tg

ALB명
server-alb

nlb-tg은 아래의 ALB를 구축한 후 만들어 주세요!

ALB

ALB명 VPC 서브넷1 서브넷2 보안그룹 리스너 대상그룹
server-alb server-vpc server-private-subnet-1 server-private-subnet-2 alb-sg HTTP:80 test-tg

nlb-tg(타켓그룹)생성

대상 유형 선택에서 Aplication Load Balancer를 선택합니다.

대상 그룹 이름을 입력하시고 VPC는 ALB와 같은 server-vpc를 선택합니다.

NLB구축

로드 밸런서 이름을 입력합니다.

VPC는 ALB와 같은 server-vpc를 선택하고 매핑퍼블릭 서브넷을 선택합니다.

타겟 그룹을 위에서 만든 nlb-tg를 선택합니다.

엔드포인트 서비스

VPC화면에서 엔드포인트 서비스로 들어가서 엔드포인트 서비스 생성 버튼을 클릭합니다.

이름 을 입력합니다.

프라이빗 DNS 이름을 서비스에 연결을 체크 하시고 아래에 위에서 생성한 Route53도메인을 입력합니다.

작업 탭 에서 프라이빗 DNS 이름에 대한 도메인 소유권 확인을 클릭한 후 도메인 확인 상태가 verification이 되는 것을 확인 합니다.

엔드포인트

먼저 엔드포인트 서비스 화면에서 세부정보 탭 에서 서비스 이름을 복사합니다.

VPC화면에서 엔드포인트로 들어가서 엔드포인트 생성 버튼을 클릭합니다.

Name tag를 입력하고 기타 엔드포인트 서비스를 선택합니다.

Service name에 위서 복사한 서비스 이름을 붙여넣습니다. 그 후 VPC는 위에서 생성한 client-vpc를 선택합니다.

서브넷보안 그룹을 선택합니다.

엔드포인트 서비스 화면으로 돌아가서 엔드포인트 연결 탭의 작업 탭애서 엔드포인트 연결 요청 수락을 클릭합니다.

확인

위의 DNS names 둘중 하나를 복사합니다.

client-ec2에 접속하여 아래의 명령어를 입력하여 획인합니다.

dig +short DNS names
curl DNS names

마무리

이번 블로그에서는 ALB와 NLB를 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화 하는 방법에 대해 알아 보았습니다. 평소에 VPC간 프라이빗 통신이 필요하신 분들에게 도움이 되었으면 좋겠습니다. 이번 내용에서는 Route53생성 부터 레코드 등록등 힘든 부분이 많았습니다만 aws의 문서나 여러 블로그를 참고 하여 공부도 많이 되었고 해결 할 수 있었습니다.

참고 자료

Application Load Balancer-type Target Group for Network Load Balancer

인터페이스 엔드포인트에 대한 VPC 종단점 서비스 구성 생성

인터페이스 엔드포인트를 위한 VPC 엔드포인트 서비스

무료 도메인으로 AWS Route53에 도메인을 등록하고 AWS Certificate Manager로 SSL 인증서 설정해 보기

EndPoint Service를 이용해서 PrivateLink 구성 해보기

Application Load Balancer는 이제 네트워크 로드 밸런서와 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를 활성화합니다.