[INTRO]


MSP 업무를 진행 중 외부(Public 망) Network Load Balancer를 사용중이며 내부(Private 망) Application Load Balancer 를 통해 HTTP 처리를 진행해야 하는 고객사가 있었습니다.

Application Load Balancer 특성상 IPv4 가 유동적으로 변하기 때문에 고정 IP 주소를 설정을 진행하게 되었습니다.


적용 고객사 및 적용 과정 및 Lambda 코드를 첨부합니다. 업무간 참고 부탁드립니다.


적용 고객사 

  • 5GX-POC

첨부 파일 

  • populate_NLB_TG_with_ALB.zip


[주요 내용]



사전 필요 사항


1. Network Load BalancerApplication Load Balancer 는 같은 가용영역에 위치 해야 합니다.

2. 필요 리소스 : IAM , S3 , Lambda, Network Load Balancer(Public 망), Application Load Balancer (Private 망), CloudWatch


S3 버킷 생성


ALB의 IP주소 등의 정보가 담길 Amazon S3 버킷을생성 합니다.



IAM 정책 생성


IAM 콘솔에서 Lamdba 함수가 필요로하는 권한들로 IAM 정책생성 합니다.




IAM 역할 생성


IAM 역할을 만들고 IAM 정책을 할당합니다.




Lambda 함수 생성


Lambda 함수를 생성 후 IAM 역할을 지정합니다. Python2.7로 실행환경을 세팅합니다.



런타임 설정 편집을 사용하여 핸들러 명을 populate_NLB_TG_with_ALB.lambda_handler로 변경합니다.



첨부 파일 내 populate_NLB_TG_with_ALB.zip 파일을 업로드 합니다.



Lambda 환경 변수를 설정합니다.



  • ALB_DNS_NAME : ALB의 전체 DNS이름
  • ALB_LISTENER : ALB의 리스너의 통신 포트
  • S3_BUCKET : Lambda 함수의 실행 간에 변경을 추적하기 위한 버킷(이전에 생성한 버킷명)
  • NLB_TG_ARN : NLB의 대상그룹의 ARN
  • MAX_LOOKUP_PER_INVOCATION : 실행 시 DNS 조회 최대 횟수. 기본 값은 50으로 설정
  • INVOCATIONS_BEFORE_DEREGISTRATION : IP 주소가 등록해지 되기 위해 필요한 실행 횟수. 기본 값은 3회로 설정
  • CW_METRIC_FLAG_IP_COUNT : IP주소 카운트를 위한 CloudWatch 지표 컨트롤 플래그. 기본 값은 ‘true’로 설정



CloudWatch Event 생성


CloudWatch Event를 만들어서  만든 Lambda함수를 트리거하게 합니다.



정상 트리거 등록 확인합니다.


S3 버킷내에 ALB IP 정상 등록 확인




CloudWatch 정상 지표 확인



감사합니다.