# nlb

# Network Load Balance (AWS)

*AWS의 NLB를 사용법을 간단하게 알려드리려고 합니다!

퍼블릭'만'을 사용하는것을 전제로 합니다.

그래서 이 방법은 엄격히 따지면 정석이 아님을 알려드립니다.

먼저 *VPC 설정부터 시작합니다.

AWS에서 VPC 서비스를 선택합니다.

# 1. VPC 생성

이름태그: 알아볼수있게 입력하세요 (리전-서비스이름-vpc)

IPv4 CIDR 블록: 172.16.0.0/16

나머지 기본값

# 2. 서브넷 생성

이름태그: 알아볼수있게 입력하세요 (리전-서비스이름-subnet)

VPC: 아까 생성한 VPC 선택

가용 영역: 하나를 선택합니다. 혹시 모르니 기억해두세요

IPv4 CIDR 블록: 172.16.0.0/24

# 3. 라우팅 테이블

이름태그: 알아볼수있게 입력하세요 (리전-서비스이름-rt)

VPC: 아까 생성한 VPC 선택

# 4. 인터넷 게이트웨이

인터넷 게이트 웨이 생성

이름태그: 알아볼수있게 입력하세요 (리전-서비스이름-igw)
생성된 igw를 아까 생성한 VPC에 연결

# 5. 라우팅 테이블 설정

아까 생성한 라우팅 테이블을 설정합니다.

해당 rt를 선택합니다.

서브넷 연결탭 => 서브넷 연결 편집 버튼 클릭

아까 생성한 서브넷에 체크하고 저장

라우팅 탭에서 라우팅 편집 버튼을 클릭합니다

라우팅 추가 버튼을 클릭

대상으로 먼저 0.0.0.0/0 입력

두번째 대상으로 Internet gateway 선택, 아까 생성한 igw 선택

# 6. 네트워크 ACL 확인

네트워크 ACL에서 해당 VPC가 연결된 네트워크 ACL을 선택하고 인바운드, 아웃바운드 규칙을 확인합니다.

여기서 규칙번호의 숫자가 낮은것이 우선적으로 적용됩니다

# Load Balancer

본격적인 AWS의 EC2 서비스에서 로드밸런서를 생성하고 설정해보겠습니다

# 1. 로드 밸런서 생성

로드밸런서메뉴에서 로드밸런서 생성 버튼 클릭

Network Load Balancer 선택

알아볼수있는 이름 입력 (리전-서비스이름-nlb)

체계: 인터넷 연결

리스너는 TLS만 우선 선택합니다

가용영역에서는 위에서 생성한 VPC를 선택하도록 합니다

그리고 아까 기억해뒀던 가용영역을 선택합니다. (어차피 과정을 따라했다면 그것밖에 없지만..)

IPv4 주소는 탄력적 IP(EIP)를 선택합니다. 없으면 생성.

실험차 생성해봤는데, EIP를 생성해도 탄력적 IP 선택이 불가능한데,

새로고침해야 선택할수있습니다..

두번째로 보안 설정 구성인데, 저는 유료 인증서가 없으므로, certbot를 사용합니다

certbot을 사용하면 letsencrypt인증서를 생성하고, 편하게 [IAM으로 인증서업로드] 과정을 진행할수있습니다

certbot에 대한 내용은 여기서 확인하세요

세번째는 라우팅 구성인데, 이건 앞으로 서브넷에 ec2를 생성하고 그 ec2에 연결할것이므로

대상유형에 ip를 지정하고 서브넷에 생성한 ec2들을 지정하면 됩니다.

예를들어 ec2의 첫번째 인스턴스의 3000번 포트를 사용하고싶다하면 해당 인스턴스 private ip와 포트를 작성해주면됩니다.

그리고 네번째 대상그룹인데, 여기서 이제 두번째, 세번째, ...인스턴스들을 추가해주면 됩니다.

L4 레벨에서 로드밸런싱을 해준다니 좋은 기능인것같습니다. 그래서 특히나 통합으로 인증서를 관리하는건

letsencrypt특성상 3개월마다 인증서 갱신을 확인하는 절차가 사라져서 편리합니다.